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

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

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

  • Скопируйте длинный однострочный текст с терминала с нежелательной строкой изменения
  • Выполнить команду внутри другой команды
  • Как очистить оперативную память, которая используется в качестве кэш-памяти?
  • Как я могу запустить процесс в одном терминале с другого терминала
  • Безопасно ли закрывать оболочку, просто нажав «X» или используя «ctrl + d»?
  • Второй терминал без истории
  • Могу ли я установить цвета терминала на локальном компьютере, чтобы использовать те, которые были в машине I ssh?
  • Как обновляется дисплей, когда символ стирания вводится в эмулятор терминала?
  • 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 - лучшая ОС в мире.