Linux which命令的具体使用

(编辑:jimmy 日期: 2024/9/24 浏览:2)

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

  • which 查看可执行文件的位置。
  • whereis 查看文件的位置。
  • locate 配合数据库查看文件位置。
  • find 实际搜寻硬盘查询文件名称。

01. 命令概述

查找环境变量中的文件

which 命令用于查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找命令时需要遍历的目录。which 指令会在环境变量 $PATH 设置的目录里查找符合条件的文件。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

02. 命令格式

which [选项] 执行文件名 […]

03. 常用选项

查找环境变量中的文件

-a  查找全部内容,而非第一个文件
-n  <文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 
-p  <文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。 
-w  指定输出时栏位的宽度。 
-V  显示版本信息。

--version, -[vV] 显示版本信息并退出
--help 显示帮助信息并退出
--skip-dot 跳过 PATH 中以点开头的目录
--skip-tilde 跳过 PATH 中以波形符号开头的目录
--show-dot 不要在输出中将点扩展到当前目录
--show-tilde 为 HOME 目录(非根目录)输出波形
--tty-only 如果不在 tty 上,停止右边的处理选项
--all, -a 打印 PATH 中的所有匹配项,而不仅仅是第一个
--read-alias, -i 从 stdin 中读取别名列表
--skip-alias 忽略选项 --read-alias;不读 stdin
--read-functions 从 stdin 读取 shell 函数
--skip-functions 忽略选项 --read-functions;不读 stdin

04. 参考示例

4.1 显示命令的路径

[deng@localhost test]$ which bash
/usr/bin/bash

说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行文件!所以,不同的 PATH 配置内容所找到的命令可能不一样的。

4.2 显示命令的别名

[deng@localhost test]$ which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    /usr/bin/alias
    /usr/bin/which
[deng@localhost test]$ 

4.3 普通用户和root用户查找路径不同

普通用户查找的情形

[deng@localhost test]$ which pwd
/usr/bin/pwd

root用户查找的情形

[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# 

4.4 查找不到内建命令

[root@localhost ~]# which type
/usr/bin/which: no type in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]#

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?