Создайте список доступных команд и что каждая из них делает

Существует ли в сети набор команд Linux с описаниями?

У меня есть список команд, которые я получил с помощью alt! с 1947 командами в списке. Я помещаю их в файл, но мне нужно написать, что делает каждая команда, используя команду whatis, а затем скопировать результат рядом с командой в текстовый документ.

Есть ли более простой способ создать этот список?

6
задан 26 August 2017 в 22:58

2 ответа

Если ваша цель - получить документ со списком выходных данных whatis для каждой системной команды на вашем компьютере, выполните:

find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis > command-encyclopedia.txt
  • , чтобы также захватить записи, для которых отсутствует вывод whatis , добавьте 2>&1 к этой команде
  • Чтобы поместить недокументированные записи в их собственный документ, добавьте 2> dark-commands.txt вместо

Фактически , чтобы быть правильной энциклопедией, вы захотите также отсортировать ее!

find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort > command-encyclopedia.txt

Еще лучше, сделайте ее интерактивной возможностью поиска (спасибо за предложение @Doogfar!):

find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort | less

Теперь используйте / для поиска вперед и ? для поиска назад или Ctrl + F / B пролистывать вперед и назад в своей энциклопедии.

Подсказка: если вы хотите сэкономить при наборе текста каждый раз, когда вам нужна командная энциклопедия, поместите ее в функцию оболочки, как описано в этого ответа .

0
ответ дан 26 August 2017 в 22:58

Перечисление всех возможных команд не очень полезно, но это можно сделать довольно просто.

Этот метод перечисляет обе команды, которые существуют как исполняемые файлы, и встроенные оболочки .

В оболочке bash (это то, что вы получаете, когда открываете окно терминала), вы можете сделать это с завершением bash. Введите which (включая пробел в конце) и дважды нажмите Tab .

Тогда вам будет предложено что-то вроде:

Display all 3734 possibilities? (y or n)

Нажмите y . Вы можете прокрутить список команд вниз, нажав Пробел . Нажмите q в любое время, чтобы покинуть список.

Этот способ просмотра списка неудобен, потому что вы можете двигаться только вниз по списку, а не вверх. Чтобы создать файл, содержащий список, запустите:

script ~/Desktop/command-list.txt

Это создаст список в файле с именем command-list.txt, расположенным на вашем рабочем столе. Вы можете изменить это соответственно. Если вы просто запустите

script

, он поместит его в файл с именем typescript в текущем каталоге.

Команда script записывает весь текст в Терминале. Поэтому после запуска script введите which (с пробелом, как и раньше), дважды введите Tab и нажмите y при появлении запроса.

Теперь прокрутите список вниз, удерживая клавишу пробела. Как только вы дойдете до конца списка, вы вернетесь к строке, где вы набираете команду which. Введите Ctrl + C , чтобы получить новую строку, затем запустите exit. Теперь script больше не записывает.

Чтобы просмотреть файл, откройте его в текстовом редакторе - в Lubuntu, Leafpad; в обычной Ubuntu, Gedit. (Эти редакторы установлены по умолчанию, но, конечно, вы можете установить и использовать любой текстовый редактор, который вам нравится.)

Когда вы его просматриваете, вы увидите недостатки, когда вас попросили More. Но это не должно мешать вашей способности читать файл, искать в нем команды или выполнять поиск в файле, чтобы найти определенную команду (или команды, содержащие определенный текст).

Если хотите, вы можете отфильтровать эти строки. Если файл ~/Desktop/command-list.txt, вы можете запустить:

grep -ve --More-- ~/Desktop/command-list.txt > ~/Desktop/command-list2.txt

Тогда command-list2.txt на рабочем столе не будет этих строк.

: будет первой командой в списке. Последняя указанная команда может отличаться в зависимости от системы (это зависит от того, какое программное обеспечение вы установили). В моей системе это zsyncmake, но у вас его может не быть, или у вас может быть команда, стоящая после нее в алфавитном порядке.

Если хотите, в текстовом редакторе вы можете вручную удалить текст перед первой командой и после последней команды. (Это всего лишь несколько строк в начале и в конце; удалить его вручную намного проще, чем если бы вам пришлось удалить все --More-- строк вручную.)

0
ответ дан 26 August 2017 в 22:58

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

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