whereis 命令详解#
whereis 命令是 Linux 系统中用于查找命令的可执行文件、源代码和手册页的命令,是文件操作中用于定位命令相关文件的重要命令之一。本文将从入门到无敌,详细介绍 whereis 命令的使用方法和技巧。
入门阶段#
基本用法#
whereis 命令的基本语法:
whereis [选项] 命令功能:查找指定命令的可执行文件、源代码和手册页。whereis 命令会在预定义的目录中搜索命令相关的文件。
常用示例#
查找命令的可执行文件、源代码和手册页:
whereis ls查找多个命令的相关文件:
whereis ls cp mv rm查找命令的可执行文件:
whereis -b ls查找命令的手册页:
whereis -m ls
中级阶段#
常用选项#
| 选项 | 说明 |
|---|---|
-b | 只查找可执行文件 |
-m | 只查找手册页 |
-s | 只查找源代码 |
-u | 查找不常见的条目 |
-l | 显示搜索的目录列表 |
-B 目录 | 只在指定的目录中查找可执行文件 |
-M 目录 | 只在指定的目录中查找手册页 |
-S 目录 | 只在指定的目录中查找源代码 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
组合使用示例#
只查找命令的可执行文件:
whereis -b ls只查找命令的手册页:
whereis -m ls只查找命令的源代码:
whereis -s ls显示搜索的目录列表:
whereis -l在指定的目录中查找可执行文件:
whereis -B /bin -b ls
高级阶段#
高级使用示例#
使用
whereis命令和find命令结合使用:# 查找命令的可执行文件 COMMAND_PATH=$(whereis -b ls | cut -d ' ' -f 2) # 查找该路径下的所有可执行文件 find "$(dirname "$COMMAND_PATH")" -type f -executable使用
whereis命令和grep命令结合使用:# 查找包含特定字符串的命令 whereis * | grep "ls"使用
whereis命令和sort命令结合使用:# 按照命令路径排序 whereis ls cp mv rm | sort使用
whereis命令和du命令结合使用:# 查看命令的可执行文件大小 whereis -b ls && du -h $(whereis -b ls | cut -d ' ' -f 2)使用
whereis命令和file命令结合使用:# 查看命令的可执行文件类型 whereis -b ls && file $(whereis -b ls | cut -d ' ' -f 2)
大师阶段#
复杂组合命令#
批量查找命令的相关文件:
# 批量查找命令 for cmd in ls cp mv rm cat touch mkdir rmdir; do echo "$cmd: $(whereis $cmd)" done使用
whereis命令创建命令信息脚本:# 创建脚本 cat > cmd_info.sh << 'EOF' #!/bin/bash echo "常用命令的信息:" for cmd in ls cp mv rm cat touch mkdir rmdir chmod chown; do echo "$cmd: $(whereis $cmd)" done EOF chmod +x cmd_info.sh使用
whereis命令和sed命令结合使用:# 查找命令并提取可执行文件路径 whereis ls | sed 's/ls: \([^ ]*\).*/\1/'使用
whereis命令和awk命令结合使用:# 查找命令并提取可执行文件路径 whereis ls | awk '{print $2}'使用
whereis命令和xargs命令结合使用:# 批量查找命令并执行 echo ls cp mv rm | xargs -n1 whereis
与其他命令结合使用#
与
ls命令结合使用:whereis -b ls && ls -la $(whereis -b ls | cut -d ' ' -f 2)与
file命令结合使用:whereis -b ls && file $(whereis -b ls | cut -d ' ' -f 2)与
stat命令结合使用:whereis -b ls && stat $(whereis -b ls | cut -d ' ' -f 2)与
md5sum命令结合使用:whereis -b ls && md5sum $(whereis -b ls | cut -d ' ' -f 2)与
which命令结合使用:whereis ls && which ls
无敌阶段#
自定义 whereis 命令别名#
为了提高工作效率,可以在 .bashrc 或 .bash_profile 文件中为 whereis 命令创建别名:
# 在 ~/.bashrc 文件中添加以下内容
alias whereis='whereis' # 默认行为
alias whereisb='whereis -b' # 只查找可执行文件
alias whereism='whereis -m' # 只查找手册页
alias whereiss='whereis -s' # 只查找源代码
alias whereisl='whereis -l' # 显示搜索的目录列表添加后,执行 source ~/.bashrc 使别名生效。
高级技巧#
使用
whereis命令查找命令的所有相关文件:# 查找命令的可执行文件、手册页和源代码 whereis ls使用
whereis命令和man命令结合使用:# 查找命令的手册页并查看 MAN_PATH=$(whereis -m ls | cut -d ' ' -f 2) if [ -n "$MAN_PATH" ]; then man ls fi使用
whereis命令和env命令结合使用:# 显示环境变量并查找命令 env | grep PATH && whereis ls使用
whereis命令和readlink命令结合使用:# 查找命令的真实路径 whereis -b ls && readlink -f $(whereis -b ls | cut -d ' ' -f 2)使用
whereis命令和find命令结合使用,查找命令的所有相关文件:# 查找命令的所有相关文件 COMMAND_NAME="ls" find / -name "*$COMMAND_NAME*" -type f 2>/dev/null | grep -E "($COMMAND_NAME$|/$COMMAND_NAME\.)"
性能优化#
使用
whereis命令的-b、-m或-s选项,只查找特定类型的文件:# 推荐:只查找可执行文件 whereis -b ls # 不推荐:查找所有类型的文件 whereis ls使用
whereis命令的-B、-M或-S选项,只在指定的目录中查找:# 推荐:只在指定的目录中查找 whereis -B /bin -b ls # 不推荐:在所有预定义的目录中查找 whereis -b ls避免在循环中频繁调用
whereis命令:# 推荐:保存 whereis 的结果 LS_PATH=$(whereis -b ls | cut -d ' ' -f 2) for i in {1..1000}; do $LS_PATH -la done # 不推荐:在循环中频繁调用 whereis for i in {1..1000}; do $(whereis -b ls | cut -d ' ' -f 2) -la done
总结#
whereis 命令是 Linux 系统中用于查找命令的可执行文件、源代码和手册页的重要命令,掌握其各种选项和使用技巧,可以帮助你更好地定位和使用命令。从入门到无敌,本文涵盖了 whereis 命令的所有重要用法,希望对你有所帮助。
常用选项总结#
| 选项 | 说明 |
|---|---|
-b | 只查找可执行文件 |
-m | 只查找手册页 |
-s | 只查找源代码 |
-l | 显示搜索的目录列表 |
-B 目录 | 只在指定的目录中查找可执行文件 |
-M 目录 | 只在指定的目录中查找手册页 |
-S 目录 | 只在指定的目录中查找源代码 |
最佳实践#
使用
-b、-m或-s选项:只查找特定类型的文件,使输出更简洁。使用
-B、-M或-S选项:只在指定的目录中查找,提高查找速度。结合其他命令使用:与
find、grep、sort等命令结合使用,可以实现更复杂的功能。批量处理:使用循环或
xargs命令批量处理命令,提高效率。保存查找结果:在需要多次使用同一个命令的路径时,保存
whereis命令的结果到变量中,避免重复调用。
通过不断练习和使用,你将能够熟练掌握 whereis 命令的各种技巧,成为 Linux 命令管理的高手。