Как получить список всех команд, доступных для Ubuntu?


22

Я хочу начать использовать терминал чаще, но я не знаю, какие команды мне доступны. Есть ли способ перечислить все различные команды, которые я могу использовать?

Ответы:


25

Первый метод

NB : Спасибо @Rmano. Этот метод не работает с zshоболочкой.

Простая команда:

ls ${PATH//:/ }

Это перечислит все команды в вашей $PATHпеременной окружения.

Чтобы сохранить результат в файле, вы можете перенаправить вывод в файл.

ls ${PATH//:/ } > mycommands.txt

Обратите внимание, что это вернет ошибку, если какие-либо имена каталогов в ваших $PATHпробелах. В этом случае используйте это вместо:

while read -d ':' dir; do echo "$dir"; done <<<$PATH

Второй метод

Также вы можете использовать:

compgen -c | sort -u > commands && less commands

Третий метод

Другой метод - двойной Tabщелчок.

Четвертый метод

Другой метод с использованием findкоманды:

find {,/usr}/{,s}bin -printf '%f\n\0'

Обратите внимание на то, что первая команда работает, bashно не zshработает, по умолчанию разделение слов отключено. refining-linux.org/archives/38/...
Rmano

11

Если вы используете bash, который является оболочкой по умолчанию во всех официальных версиях Ubuntu, запустите, compgen -cчтобы увидеть доступные команды, включая псевдонимы.


Это только Bash?
Брайам

1
Даже команды для графических программ включены. Так что если вы это сделаете compgen -c | grep thunarи у вас установлен файловый менеджер Thunar, вы увидите команды, связанные с Thunar.

1
Ммм ... это не работает в Debian. Какой пакет обеспечивает это?
Брайам

2
@Rinzwind это объясняет, я использую zsh.
Брайам

1
@ vasa1: Может ли этот ответ быть более общим? Я имею в виду, что это только решение для bash, но, как отметил Брайам, оно не работает для zsh ... Если возможно, не могли бы вы расширить ответ, чтобы удовлетворить большую аудиторию - очевидно, только если вы знаете ответ :-)
Адитья

4

Откройте терминал Ctrl+ Alt+ tи выполните эту команду:

whatis `compgen -c` | more 

Это перечислит все команды и простое описание каждой команды.

Если вы хотите сохранить список, вы можете перенаправить результат в выходной файл

whatis `compgen -c` > listOfCommands.txt

Итак, почему я использовал команду whatis. Команда man whatisдает:

На каждой странице справочника есть краткое описание.
whatis выполняет поиск по именам страниц справочника и отображает описания страниц справочника для любого подходящего имени.

так что простыми словами whatisприведите генерала. описание каждой команды


+1 для дополнительной информации. whatis `compgen -c` | sort> listOfCommands.txt поможет перейти в список сортировки.
Саурав Кумар

Еще одна полезная команда: apropos <keyword>поиск всех команд и их краткое описание и отображение результатов
Aloso

3

Откройте терминал и Tabдважды нажмите клавишу.


1
-1 потому что это не стандартно.
Лоренцо Анкора

@LorenzoAncora, почему это не стандартно? Разве не все Ubuntu имеют автодополнение с двойным Tab в качестве стандартного поведения?
dadexix86

2
По умолчанию! = Стандарт: в будущем, возможно, у нас будет консоль, которая не поддерживает этот механизм, потому что он не стандартный; Более того, стандарт TAB может выполнять другую функцию. Стандартной процедурой является перечисление содержимого «bin», поскольку оно является частью официального стандарта FHS, и любая система Linux / Unix имеет этот каталог. Правильная функциональность (и способность сообщества помогать пользователям) Ubuntu обеспечивается соблюдением стандартов.
Лоренцо Анкора

Хорошо, спасибо за объяснение :) Я думал, что стандартное поведение двойной вкладки в Ubuntu должно было перечислить содержимое PATH :)
dadexix86

@LorenzoAncora Перечисление содержимого любого одного каталога не будет отображаться где-либо рядом со всеми исполняемыми командами. При перечислении содержимого всех каталогов PATH не будут отображаться встроенные оболочки без соответствующего исполняемого файла (например, cd). Двойное нажатие клавиши Tab преодолевает оба эти серьезных ограничения. Если бы кто-то спросил, как показать все команды в произвольной системе GNU / Linux, можно утверждать, что завершение Tab не является адекватным решением. Конечно, в будущем в Ubuntu все может измениться, но вероятность того, что завершение вкладки в интерактивной оболочке по умолчанию исчезнет, ​​ничтожна.
Элия ​​Каган,

2

Список команд сильно зависит от того, что вы установили, но есть списки, чтобы перечислить все команды. Следующие работы на большинстве борновоподобных оболочек:

  1. Нажмите Tabдважды.
  2. Используйте, findчтобы найти все исполняемые файлы:

    find / -perm +x
    
  3. Перечислите все файлы в каталогах бинарных файлов (может быть неполным):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    

1

Откройте окно терминала (терминал GNOME в порядке, также настроенный xTerm).
Ваши варианты:

  • Нажав TABклавишу («-> <-») дважды, вы выполните любую команду в консоли и, если строка пуста, вы получите номер и имена всех доступных команд . Обратите внимание, что это может занять некоторое время и может перечислить полуадминистративные утилиты. ПРИМЕЧАНИЕ: это не стандарт, для «перекрестного» просмотра посмотрите другие варианты.

  • Используйте man -k NAMEдля поиска команды (или ее части) и man COMMANDполучения руководства для этой команды. Не все команды имеют системное руководство; чтение человека перед использованием любой административной утилиты всегда хорошая идея; Доверьтесь мне.

  • Используйте Midnight Commander ( mc), чтобы иметь хороший консольный (curses) графический интерфейс для управления системой и файловой системой. Возможно, вам придется установить его из вашего менеджера пакетов. Не волнуйся; это безопасное и чрезвычайно распространенное программное обеспечение.
    ПРИМЕЧАНИЕ: это сделано для случаев, когда у вас есть путаница или трудности в использовании файловой системы.

  • Используйте, ls /bin | moreчтобы знать все существующие административные исполняемые файлы ; ls /sbin | moreдля общих административных исполняемых файлов .

  • Используйте, ls /usr/sbin | moreчтобы знать все пользовательские исполняемые файлы ; ls /usr/sbin | moreдаст очень большой список пользовательских исполняемых файлов и библиотек .
    ПРИМЕЧАНИЕ. Если объем выходных данных moreпревышает одну страницу (на весь экран), вам придется прокрутить py, нажав «Page Up» и «Page Down» или пробел.
    Вы можете использовать COMMAND | grep TEXTдля фильтрации вывода.

Если у вас есть дополнительные вопросы, прокомментируйте здесь и не забудьте поставить галочку рядом с ответом, если я вам помог.
Приятного опыта.


Как правило, большинство исполняемых файлов /usr/bin, о которых вы здесь не упоминали. Также есть /sbin, который содержит исполняемые файлы, часто используемые для системного администрирования, такие как usermodи ifconfig. И во многих системах есть и другие двоичные каталоги, например, /usr/gamesи /usr/local/bin. См. Стандарт иерархии файловой системы и man 7 hier. Вы можете расширить это, чтобы упомянуть важные каталоги для исполняемых файлов, кроме /binи /usr/sbin.
Элия ​​Каган,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.