有没有列出类似命令的方法?
当您将命令名称写错时,bash通常会这样做:
septi@norbert:~$ good No command 'good' found, did you mean: Command 'gold' from package 'binutils' (main) Command 'gmod' from package 'gmod' (universe) Command 'goo' from package 'goo' (universe) Command 'god' from package 'god' (universe) Command 'geod' from package 'proj-bin' (universe) Command 'gord' from package 'scotch' (universe) good: command not found
或者有时这样做:
septi@norbert:~$ nftp No command 'nftp' found, but there are 23 similar ones nftp: command not found
有什么方法可以让bash为我展示这23个类似的命令吗? 并且,有没有办法显示类似的命令,包括那些尚未安装的命令,而不是运行应用程序,例如ftp
?
Bash使用命令/usr/lib/command-not-found
查找类似的命令。 这反过来使用Python的CommandNotFound
模块。
您在终端上看到的输出(本例中为stderr
)也是从该模块生成的。 在Ubuntu 14.04及更高版本上,该模块的位置是/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py
。 在第138行的函数CommandNotFound.print_spelling_suggestion(self, word, min_len=3, max_len=15)
对类似命令的数量设置了默认限制。您可以将max_len
值修改为30(使用sudo nano
或gksudo gedit
编辑此文件)。
很可能23个“相似”的命令对你来说不会比’goo’,’god’和’gord’更有用。 大多数bash’ers用来查找事物的小技巧是使用手册页,因为搜索是基于内容而不仅仅是名称。 例如,试试
man -k ftp
如果您发现可能或有趣的命令,请通过删除-k开关来查看手册页本身:
man sftp
man有它自己的手册页:
man man
现在您知道了为什么每当您安装新程序或应用程序时,它通常也会为您安装手册页。
哦,是的,要搜索你还没有安装的手册,你可能会喜欢这个在线人工网站中的一个 。