
如果您開始鍵入並按 Tab 鍵,控制台會嘗試展開並顯示以您開始編寫的內容開頭的所有命令、函數和可執行腳本。
有沒有辦法查看名稱中任意位置鍵入的字串是哪些命令?不一定使用製表符補全,而是使用一些小函數或腳本。
我可能記得一個命令,font
它的名字中有,但不是在開頭。如何讓它顯示mkfontdir
以及所有其他的?
或者我可能有一個腳本,其名稱包含字體,但不在開頭(例如 my-fonts.py)。
答案1
我通常會執行這樣的查找指令
find / -executable -name '*'font 2>/dev/null
這會在我的計算機上產生以下結果
/usr/bin/showconsolefont
/usr/bin/gnome-thumbnail-font
/usr/bin/splitfont
/usr/bin/showfont
/usr/bin/grub-mkfont
/usr/share/doc/ttf-freefont
/usr/share/doc/fonts-horai-umefont
/usr/share/doc/ttf-umefont
/usr/share/groff/1.21/font
/usr/share/fonts/truetype/freefont
/usr/share/fonts/truetype/horai-umefont
/bin/setfont
雖然這個指令的結果會比較嚴格一些
find / -type f -perm +111 -name '*'font 2>/dev/null
退貨
/usr/bin/showconsolefont
/usr/bin/gnome-thumbnail-font
/usr/bin/splitfont
/usr/bin/showfont
/usr/bin/grub-mkfont
/bin/setfont
答案2
由於find
Doogfar 建議的命令需要很長時間才能運行,因此您可以添加一個 cronjob 來偶爾運行它,並將其發送到檔案:
find / -type f -perm +111 >~/.perm111 2>/dev/null &
然後在需要時快速使用 grep。
grep font ~/.perm111
答案3
我沒有 Ubuntu 機器,但此命令可在 OS X 和 OpenSUSE 上使用:
compgen -ac | grep someStringInCommandName
參考:https://stackoverflow.com/questions/948008/linux-command-to-list-all-available-commands-and-aliases