如果您开始输入并按下 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