Linux命令在使用时支持通过按Tab键补全,但如果只记得命令后半部分呢?试着通过 which 、whatis或 whereis 命令(如 which *stat 、whatis *stat或者 whereis *stat)进行模糊检索,比较遗憾的是which、whatis和whereis命令都只是把“*”号当做普通字符处理,而不是通配符……
经过查阅资料,以下是几种可快速查找的常用方法。
1 使用Bash内置compgen命令查找
compgen是Bash内置命令,使用 compgen -c 可列出当前Shell中所有可用命令,然后再联合grep命令进行过滤。此方法最为简单快速,推荐使用。
# 查找以“stat”子字符串结尾的所有命令[fatalor@VM-12-10-centos ~]$ compgen -c | grep -E .*stat$
P1.使用Bash内置命令compgen快速查找命令
2 使用ls命令查找bin目录下的文件
Linux系统中绝大部分可执行文件都存放在各级bin目录下,通过ls+grep即可将符合要求的命令筛选出来。
# 查找所有bin目录下以“stat”子字符串结尾的文件[fatalor@VM-12-10-centos ~]$ ls /sbin /bin /usr/sbin /usr/bin | grep -E .*stat$
P2.使用ls+grep查找过滤所有bin目录下满足条件的文件
3 使用 apropos或man -k命令搜索命令描述
apropos或man -k 命令会去每个命令的描述信息或者帮助文档中搜索关键词,而不仅仅是命令名称本身。此方式虽然也能找到需要的命令,但输出内容过多,难于快速定位,仅作为上述2种方式均失败后的备用方法。
# 使用apropos命令查找各命令描述信息中的关键词[fatalor@VM-12-10-centos ~]$ apropos stat# 使用man命令查找各命令帮助文档中的关键词[fatalor@VM-12-10-centos ~]$ man -k stat
截图略。
以特定关键词为后缀的Linux命令家族除了stat外,还有info、mod、check/ck等等。你在日常工作中还遇到过哪些有趣的命令后缀?欢迎在评论区分享你的"私藏"哟。