Как отобразить список доступных команд приложения в терминале

Я использую fluxbox, и недавно я хотел запустить приложение для редактирования видео, и я не мог вспомнить его имя. Я обычно запускаю приложения с терминала, поэтому мне было интересно, есть ли способ перечислить все (приложения или) специальные приложения, такие как «запуск или повышение» Xmonad? Эту функцию можно увидеть здесь в 1:14: http://www.youtube.com/watch?v=AyNkBLhIpQk&feature=related

Изменить: я хочу написать команду в терминале, которая вернет список всех установленных приложений (список всех команд приложения, доступных, например, shotwell, gedit, gvim, vim, vi, firefox, chromium-browser и т. Д.) В основном Я хочу знать, какие приложения я могу запустить (какие приложения у меня есть)

  • Проверка сценария оболочки с помощью моделирования терминала
  • Как и где интерпретируется $ TERM?
  • Как выполнить обратный поиск истории в vi-режиме ZSH?
  • Разница между командами «ifconfig» и «ip»
  • Не удалось подключиться к сети
  • Странность в скрипте оболочки ksh93 («команда -p mkdir t» не работает)
  • Как запустить tty из командной строки?
  • изменить последние 10 символов базы (не расширение) нескольких файлов
  • Дать совет для команды bash не найден
  • Использование wget, как загрузить в определенное место, без создания папок и всегда перезаписывать исходные файлы
  • Как я могу подключать команды к любому терминалу?
  • Просмотр полных команд в выводе ps
  • 3 Solutions collect form web for “Как отобразить список доступных команд приложения в терминале”

    Если вы используете bash(1) , вы можете использовать встроенный compgen :

     $ compgen -abc -A function 

    -a для псевдонимов, -b для встроенных -A function , -c для команд и -A function для функций оболочки. Вы можете выбрать, какие из них вы хотите исключить, так как вы получите довольно большой список (в моей системе я получаю команды 3206).

    Команда compgen предназначена для создания кандидатов на завершение командной строки, но также может быть использована для этой цели.

    Это тривиально, если предположить, что «приложения, которые вы можете запускать», являются синонимами «исполняемых файлов на вашем пути»:

     #!/bin/bash IFS=: read -ra _dirs_in_path <<< "$PATH" for _dir in "${_dirs_in_path[@]}"; do for _file in "${_dir}"/*; do [[ -x ${_file} && -f ${_file} ]] && printf '%s\n' "${_file##*/}" done done 

    Если вы наберете хотя бы одну букву, затем нажмите « Tab» , вы увидите список всех исполняемых программ, чье имя начинается с этой буквы. Это называется завершением или автозаполнением .

    Вы можете перечислить все исполняемые программы с помощью этого фрагмента оболочки:

     ( IFS=':'; set -f; for dir in $PATH; do for x in $dir/*; do echo $x; done done ) 

    В этом списке перечислены все исполняемые программы, которые могут быть более общими, чем то, что вы намереваетесь «всеми приложениями». Вы также увидите ряд команд, которые предназначены для вызова другими командами, и редко вызываются непосредственно пользователями. Список приложений, предназначенных для вызова из графического интерфейса, доступен через файлы *.desktop каталоге /usr/share/applications . Следующая команда отобразит их (вы найдете крохи, такие как %u , %c и т. Д., Указывая, какие типы аргументов обычно ожидают команды, они описаны в спецификации формата файла рабочего стола ).

     grep -Proh '(?<=^Exec=).*' /usr/share/applications 

    Вы можете лучше понять, какие приложения вы установили, указав имеющиеся у вас пакеты: dpkg -l под Debian, Ubuntu и производными; rpm -ql под Red Hat, Fedora, SuSE и производными; …

    Linux и Unix - лучшая ОС в мире.