whereis 命令详解#

whereis 命令是 Linux 系统中用于查找命令的可执行文件、源代码和手册页的命令,是文件操作中用于定位命令相关文件的重要命令之一。本文将从入门到无敌,详细介绍 whereis 命令的使用方法和技巧。

入门阶段#

基本用法#

whereis 命令的基本语法:

whereis [选项] 命令

功能:查找指定命令的可执行文件、源代码和手册页。whereis 命令会在预定义的目录中搜索命令相关的文件。

常用示例#

  1. 查找命令的可执行文件、源代码和手册页

    whereis ls
  2. 查找多个命令的相关文件

    whereis ls cp mv rm
  3. 查找命令的可执行文件

    whereis -b ls
  4. 查找命令的手册页

    whereis -m ls

中级阶段#

常用选项#

选项说明
-b只查找可执行文件
-m只查找手册页
-s只查找源代码
-u查找不常见的条目
-l显示搜索的目录列表
-B 目录只在指定的目录中查找可执行文件
-M 目录只在指定的目录中查找手册页
-S 目录只在指定的目录中查找源代码
--help显示帮助信息
--version显示版本信息

组合使用示例#

  1. 只查找命令的可执行文件

    whereis -b ls
  2. 只查找命令的手册页

    whereis -m ls
  3. 只查找命令的源代码

    whereis -s ls
  4. 显示搜索的目录列表

    whereis -l
  5. 在指定的目录中查找可执行文件

    whereis -B /bin -b ls

高级阶段#

高级使用示例#

  1. 使用 whereis 命令和 find 命令结合使用

    # 查找命令的可执行文件
    COMMAND_PATH=$(whereis -b ls | cut -d ' ' -f 2)
    # 查找该路径下的所有可执行文件
    find "$(dirname "$COMMAND_PATH")" -type f -executable
  2. 使用 whereis 命令和 grep 命令结合使用

    # 查找包含特定字符串的命令
    whereis * | grep "ls"
  3. 使用 whereis 命令和 sort 命令结合使用

    # 按照命令路径排序
    whereis ls cp mv rm | sort
  4. 使用 whereis 命令和 du 命令结合使用

    # 查看命令的可执行文件大小
    whereis -b ls && du -h $(whereis -b ls | cut -d ' ' -f 2)
  5. 使用 whereis 命令和 file 命令结合使用

    # 查看命令的可执行文件类型
    whereis -b ls && file $(whereis -b ls | cut -d ' ' -f 2)

大师阶段#

复杂组合命令#

  1. 批量查找命令的相关文件

    # 批量查找命令
    for cmd in ls cp mv rm cat touch mkdir rmdir; do
      echo "$cmd: $(whereis $cmd)"
    done
  2. 使用 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
  3. 使用 whereis 命令和 sed 命令结合使用

    # 查找命令并提取可执行文件路径
    whereis ls | sed 's/ls: \([^ ]*\).*/\1/'
  4. 使用 whereis 命令和 awk 命令结合使用

    # 查找命令并提取可执行文件路径
    whereis ls | awk '{print $2}'
  5. 使用 whereis 命令和 xargs 命令结合使用

    # 批量查找命令并执行
    echo ls cp mv rm | xargs -n1 whereis

与其他命令结合使用#

  1. ls 命令结合使用

    whereis -b ls && ls -la $(whereis -b ls | cut -d ' ' -f 2)
  2. file 命令结合使用

    whereis -b ls && file $(whereis -b ls | cut -d ' ' -f 2)
  3. stat 命令结合使用

    whereis -b ls && stat $(whereis -b ls | cut -d ' ' -f 2)
  4. md5sum 命令结合使用

    whereis -b ls && md5sum $(whereis -b ls | cut -d ' ' -f 2)
  5. 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 使别名生效。

高级技巧#

  1. 使用 whereis 命令查找命令的所有相关文件

    # 查找命令的可执行文件、手册页和源代码
    whereis ls
  2. 使用 whereis 命令和 man 命令结合使用

    # 查找命令的手册页并查看
    MAN_PATH=$(whereis -m ls | cut -d ' ' -f 2)
    if [ -n "$MAN_PATH" ]; then
      man ls
    fi
  3. 使用 whereis 命令和 env 命令结合使用

    # 显示环境变量并查找命令
    env | grep PATH && whereis ls
  4. 使用 whereis 命令和 readlink 命令结合使用

    # 查找命令的真实路径
    whereis -b ls && readlink -f $(whereis -b ls | cut -d ' ' -f 2)
  5. 使用 whereis 命令和 find 命令结合使用,查找命令的所有相关文件

    # 查找命令的所有相关文件
    COMMAND_NAME="ls"
    find / -name "*$COMMAND_NAME*" -type f 2>/dev/null | grep -E "($COMMAND_NAME$|/$COMMAND_NAME\.)"

性能优化#

  1. 使用 whereis 命令的 -b-m-s 选项,只查找特定类型的文件

    # 推荐:只查找可执行文件
    whereis -b ls
    
    # 不推荐:查找所有类型的文件
    whereis ls
  2. 使用 whereis 命令的 -B-M-S 选项,只在指定的目录中查找

    # 推荐:只在指定的目录中查找
    whereis -B /bin -b ls
    
    # 不推荐:在所有预定义的目录中查找
    whereis -b ls
  3. 避免在循环中频繁调用 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 目录只在指定的目录中查找源代码

最佳实践#

  1. 使用 -b-m-s 选项:只查找特定类型的文件,使输出更简洁。

  2. 使用 -B-M-S 选项:只在指定的目录中查找,提高查找速度。

  3. 结合其他命令使用:与 findgrepsort 等命令结合使用,可以实现更复杂的功能。

  4. 批量处理:使用循环或 xargs 命令批量处理命令,提高效率。

  5. 保存查找结果:在需要多次使用同一个命令的路径时,保存 whereis 命令的结果到变量中,避免重复调用。

通过不断练习和使用,你将能够熟练掌握 whereis 命令的各种技巧,成为 Linux 命令管理的高手。