Як отримати список усіх команд, доступних для 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щоб переглянути доступні команди, включаючи псевдоніми.


Це тільки баш?
Брайам

1
Навіть команди для програм на основі gui включені. Тож якщо у вас є 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дайте загальне. опис кожної команди


+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 забезпечується дотриманням стандартів.
Лоренцо Анкора

Добре, дякую за пояснення :) Я подумав, що стандартним поведінкою подвійної Tab на 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), щоб мати гарну консоль (прокльони) GUI для управління системою та файловою системою. Можливо, вам доведеться встановити його у менеджера пакунків. Не хвилюйтесь; це безпечне і надзвичайно поширене програмне забезпечення.
    ПРИМІТКА. Це зроблено для того, коли у вас виникають плутанини або труднощі з використанням файлової системи.

  • Використовувати, 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.