一、查看所有可用命令的方法
- 列出所有外部命令(二進制文件)
外部命令通常存放在系統路徑(如 /bin, /usr/bin, /sbin, /usr/sbin)中:
bash
ls /bin /usr/bin /sbin /usr/sbin # 直接列出命令目錄(結果較長,可配合分頁工具)
ls /bin /usr/bin | more # 分頁查看(按空格翻頁) - 列出 Shell 內置命令
Bash 內置命令(如 cd, echo, source 等):
bash
help -d # 顯示所有內置命令(簡潔列表)
compgen -b # 列出所有內置命令(更詳細) - 列出所有別名
用戶自定義或系統預設的命令別名:
bash
alias # 列出所有別名(如 alias ll=‘ls -l’) - 使用 compgen 命令(Bash 專用)
生成所有可用命令(包括內置命令、外部命令和別名):
bash
compgen -c # 列出所有命令(按字母排序)
compgen -c | less # 分頁查看 - 查看系統路徑下的所有命令
通過環境變量 $PATH 查看命令搜索路徑,并列出所有文件:
bash
echo $PATH # 查看路徑(多個路徑用冒號分隔,如 /usr/local/bin:/usr/bin:/bin)
for dir in $(echo $PATH | tr ‘:’ ’ '); do ls $dir; done # 遍歷路徑并列出命令
二、常用過濾和搜索技巧 - 搜索特定命令
bash
which <命令> # 查找命令路徑(如 which ls)
whereis <命令> # 查找命令及相關文件(二進制、手冊、源代碼)
type <命令> # 查看命令類型(內置/外部/別名,如 type cd) - 模糊搜索命令
bash
compgen -c | grep <關鍵詞> # 搜索包含關鍵詞的命令(如 compgen -c | grep ‘tar’)
ls /usr/bin | grep <關鍵詞> # 搜索特定目錄下的命令
三、示例:常用命令組合
查看所有外部命令(分頁顯示):
bash
ls /bin /usr/bin | sort | less
列出內置命令并過濾(如查找含 echo 的命令):
bash
help -d | grep echo
查看所有別名(自定義命令):
bash
alias
生成完整命令列表(含路徑):
bash
find /bin /usr/bin -maxdepth 1 -executable -type f # 查找所有可執行文件
四、注意事項
權限問題:
部分目錄(如 /sbin, /usr/sbin)需要管理員權限才能訪問,普通用戶可能看不到全部命令。
命令重復:
不同目錄下可能有同名命令(如 /bin/ls 和 /usr/bin/ls 通常是同一個文件)。
動態命令:
某些命令(如腳本)可能存放在用戶自定義路徑(如 ~/.local/bin),需包含在 $PATH 中。
五、總結:快速獲取命令列表
需求 命令示例 說明
所有外部命令 ls /bin /usr/bin 基礎命令和用戶命令
所有內置命令 help -d 或 compgen -b Bash 內置功能(如 cd, source)
所有別名 alias 用戶或系統定義的快捷方式
搜索特定命令 which <命令> 或 whereis <命令> 定位命令路徑
完整命令列表(含路徑) find /bin /usr/bin -executable -type f 適合腳本批量處理
六、擴展:命令類型說明
內置命令(Built-in Commands):
直接編譯到 Shell 中的命令(如 cd, exit),執行效率高,無獨立文件。
外部命令(External Commands):
獨立的二進制文件或腳本(如 /bin/ls, /usr/bin/apt),存放在文件系統中。
別名(Aliases):
用戶自定義的快捷方式(如 alias ll=‘ls -l’),通過 alias 命令管理。
函數(Functions):
用戶定義的 Shell 函數(類似腳本),通過 type 命令區分(如 type myfunc)。
通過以上方法,你可以全面查看當前 Linux 系統中可用的命令。實際操作中,結合 grep、sort、less 等工具可更高效地過濾和瀏覽結果。如果需要某個命令的詳細用法,隨時用 man <命令> 或 <命令> --help 查看文檔! 🐧