Linux系统之which命令的基本使用
【摘要】 Linux系统之which命令的基本使用
一、which命令介绍
which
命令是Linux和Unix系统中的一个非常实用的工具,它用来查找并显示给定命令的完整路径。这对于确定哪个版本的程序将被执行或确认某个命令是否在系统的PATH环境变量中可用特别有用。
二、which命令的使用帮助
2.1 which命令的基本语法
在命令行终端中,我们使用
--help
查询which命令的基本帮助信息。
[root@RockyLinux-server001 ~]# which --help
Usage: /usr/bin/which [options] [--] COMMAND [...]
Write the full path of COMMAND(s) to standard output.
--version, -[vV] Print version and exit successfully.
--help, Print this help and exit successfully.
--skip-dot Skip directories in PATH that start with a dot.
--skip-tilde Skip directories in PATH that start with a tilde.
--show-dot Don't expand a dot to current directory in output.
--show-tilde Output a tilde for HOME directory for non-root.
--tty-only Stop processing options on the right if not on tty.
--all, -a Print all matches in PATH, not just the first
--read-alias, -i Read list of aliases from stdin.
--skip-alias Ignore option --read-alias; don't read stdin.
--read-functions Read shell functions from stdin.
--skip-functions Ignore option --read-functions; don't read stdin.
Recommended use is to write the output of (alias; declare -f) to standard
input, so that which can show aliases and shell functions. See which(1) for
examples.
If the options --read-alias and/or --read-functions are specified then the
output can be a full alias or function definition, optionally followed by
the full path of each command used inside of those.
Report bugs to <which-bugs@gnu.org>.
2.2 which命令的帮助解释
选项 | 描述 |
---|---|
--version , -v , -V |
显示版本信息并成功退出。 |
--help |
显示帮助信息并退出。 |
--skip-dot |
跳过PATH中以点(. )开头的目录。 |
--skip-tilde |
跳过PATH中以波浪号(~ )开头的目录。 |
--show-dot |
不要在输出中将点(. )扩展为当前目录。 |
--show-tilde |
对于非root用户,在输出中使用波浪号表示家目录。 |
--tty-only |
如果不在TTY上,则停止处理右侧的选项。 |
--all , -a |
打印PATH中的所有匹配项,而不仅仅是第一个。 |
--read-alias , -i |
从标准输入读取别名列表。 |
--skip-alias |
忽略--read-alias 选项;不读取标准输入。 |
--read-functions |
从标准输入读取shell函数。 |
--skip-functions |
忽略--read-functions 选项;不读取标准输入。 |
三、which命令的基本使用
3.1 检查实践环境
- 检查操作系统版本
[root@RockyLinux-server001 ~]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.4 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.4"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.4 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.4"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.4"
- 检查内核版本
[root@RockyLinux-server001 ~]# uname -r
5.14.0-427.13.1.el9_4.x86_64
3.2查找一个命令的可执行文件位置
这条命令会输出ls命令所在的完整路径,例如:/usr/bin/ls。
which
命令依据用户配置的 PATH 环境变量中的目录来搜索可执行文件。因此,不同的 PATH 配置会导致找到的命令位置不同。
[root@RockyLinux-server001 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
3.3 检查某程序是否安装
如果你想知道你的系统上是否安装了某个特定的软件包,如果返回了路径,则表示已安装;如果没有任何输出,则可能意味着该命令未被找到(即没有安装)。
[root@RockyLinux-server001 ~]# which tree
/usr/bin/tree
3.4 命令目录简介
- /bin: 包含系统启动和运行所必需的基本命令,这些命令对所有用户都可用。
- /sbin: 包含系统管理员使用的系统二进制文件,主要用于系统管理和维护任务。
- /usr/bin: 包含大部分用户级别的命令和应用程序,是
/bin
的扩展,提供更多的非核心命令。 - /usr/sbin: 类似于
/sbin
,但包含更多用户级的系统管理命令,用于扩展/sbin
的功能。
四、注意事项
- 命令查找范围有限:which命令主要在环境变量$PATH所设定的路径中查找可执行文件,不会查找没有添加到环境变量路径中的命令。
- 只查找可执行文件:它仅用于查找可以直接执行的二进制文件、脚本等,对于配置文件、库文件等非可执行文件无法查找。
- 返回第一个匹配结果:当多个同名可执行文件在$PATH的不同目录下存在时,which命令只会返回它在环境变量路径中找到的第一个匹配的文件路径。
- 别名优先显示:如果对命令设置了别名,which命令会优先显示别名对应的文件路径,而不是原始命令的路径。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)