Есть ли способ перечислить похожие команды?

Когда вы пишете неправильное имя команды, 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?

7
задан 8 October 2012 в 06:03

3 ответа

Вполне вероятно, что 23 «похожие» команды не будут для вас более полезными, чем «goo», «god» и «gord». Небольшая хитрость, которую большинство bash'еров используют для поиска вещей, заключается в использовании man-страниц, поскольку поиск основан на содержании, а не только по имени. Например, попробуйте

man -k ftp

. Если вы находите вероятную или интересную команду, посмотрите на страницу руководства, сбросив ключ -k:

man sftp

man имеет свою собственную страницу руководства:

man man

Теперь вы знаете, почему всякий раз, когда вы устанавливаете новую программу или приложение, она очень часто устанавливает для вас также справочную страницу.

Ах, да, для поиска на страницах руководства или на тех страницах, которые вы еще не установили, вам может понравиться один из многих онлайн-сайтов, посвященных мужчинам, например , этот .

0
ответ дан 8 October 2012 в 06:03

Bash использует команду /usr/lib/command-not-found для поиска похожих команд. Это, в свою очередь, использует модуль Python CommandNotFound.

Выход, который вы видите на терминале (в данном случае stderr), также генерируется из этого модуля. Расположение этого модуля - /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py, в Ubuntu 14.04 и выше. В функции CommandNotFound.print_spelling_suggestion(self, word, min_len=3, max_len=15) в строке 138 установлено ограничение по умолчанию для числа подобных команд. Вы можете изменить значение max_len на 30 (используйте sudo nano или gksudo gedit для редактирования этого файла).

0
ответ дан 8 October 2012 в 06:03
python3  -m pdb /usr/lib/command-not-found xdiff
import CommandNotFound
b CommandNotFound.CommandNotFound.print_spelling_suggestion
r
max_len = 30
c

No command 'xdiff' found, did you mean:
 Command 'rdiff' from package 'rdiff' (universe)
 Command 'xzdiff' from package 'xz-utils' (main)
 Command 'idiff' from package 'openimageio-tools' (universe)
 Command 'hdiff' from package 'hdf4-tools' (universe)
 Command 'pdiff' from package 'a2ps' (universe)
 Command 'xxdiff' from package 'xxdiff' (universe)
 Command 'adiff' from package 'atool' (universe)
 Command 'wdiff' from package 'wdiff' (main)
 Command 'xbiff' from package 'x11-apps' (main)
 Command 'zdiff' from package 'zutils' (universe)
 Command 'zdiff' from package 'gzip' (main)
 Command 'diff' from package 'diffutils' (main)
 Command 'cdiff' from package 'colordiff' (universe)
 Command 'vdiff' from package 'atfs' (universe)
 Command 'sdiff' from package 'diffutils' (main)
 Command 'ndiff' from package 'ndiff' (main)
xdiff: command not found

Из www.creative-telcom-solutions.de

-1
ответ дан 17 October 2019 в 14:28

Другие вопросы по тегам:

Похожие вопросы: