Как узнать терминальную команду приложения?

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

8 ответов

Решение

Большинство приложений по умолчанию будет иметь .desktop файл находится в /usr/share/applications,

Чтобы узнать о соответствующей терминальной команде, которая будет запускаться при запуске одного из этих приложений, откройте браузер файлов Nautilus и щелкните правой кнопкой мыши значок приложения, чтобы выбрать " Свойства" в контекстном меню. Это даст вам всю необходимую информацию (показано здесь для настройки системы, которая будет работать gnome-control-center -overview)

представление свойств средства запуска приложений

Если вы установили приложение через репозитории или через dpkgВы можете использовать эту команду:

dpkg -l | grep "application name"

Это будет искать через все ваши установленные приложения, а также искать их описания; поиск описания является важной частью здесь, потому что описание обычно содержит имя приложения, даже если "команда" для его запуска не содержит имя приложения.

Пример:

В GNOME есть приложение под названием Disk Usage Analyzer. Тем не менее, команда для запуска его из терминала не является disk-usage-analyzer, Чтобы узнать его команду, вы можете запустить:

dpkg -l | grep "disk usage"

Вывод должен содержать эту запись:

alaa@aa-lu:~$ dpkg -l | grep "disk usage"
ii  baobab            3.6.4-0ubuntu1          i386         GNOME disk usage analyzer

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

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

xprop | grep WM_CLASS

если WM_CLASS не работает, тогда попробуйте с WM_COMMAND,

Во-первых, откройте Synaptic, запустив synaptic в терминале. Введите название приложения в поле быстрого фильтра. Для примера я буду использовать LibreOffice Writer, Введите имя приложения в синаптическом фильтре: введите описание здесь

Появляется как первый установленный результат (маленький зеленый прямоугольник) с полным именем пакета libreoffice-writer в первом столбце.

Теперь попробуйте запустить libreoffice-writer в терминале. Иногда пакет запускается, но в этом случае он не работает: введите описание здесь

Теперь, если вы посмотрите на Synaptic, вы увидите, что самый первый результат libreoffice пакет. Вы могли бы просто бежать libreoffice в терминале, в этом случае вы получаете это окно: введите описание здесь

Или вы можете напечатать man libreoffice в терминале. Если вы посмотрите на эти два скриншота: введите описание здесьвведите описание здесь

Вы можете видеть, что для непосредственного запуска LibreOffice Writer вы можете использовать одну из двух команд: lowriter или же libreoffice --writer, Оба работают одинаково хорошо.

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

whereis name-of-application

эрго маленький пример:

$ whereis gparted
gparted: /usr/sbin/gparted /usr/share/man/man8/gparted.8.gz

Вы просто можете взять на себя /usr/sbin/gparted - чтобы запустить это приложение, введенное в виде иконки или имени приложения (как в cairo-dock). (в этом случае для запуска gparted необходим root-пароль).

Это слишком просто для гиков Linux.

  • Закройте приложение, если оно открыто.

  • Откройте приложение, щелкнув его значок.

Например, я щелкаю значок Document Viewer.

  • Откройте терминал (ctl alt T) и запустите

    ps -u `whoami`|tail -3

Ответ находится в первой строке вывода:

mac2011-linux% ps -u `whoami`|tail -3
  51252 ?        00:00:01 evince
  53209 pts/3    00:00:00 ps
  53211 pts/3    00:00:00 tail

Да, Document Viewer очевиден, догадаться непросто.

xprop позволяет найти PID запущенного окна, а ps позволяет найти команду, соответствующую PID. Комбинируя их вместе, мы можем найти команду, соответствующую окну, например:

ps --no-headers -p $(xprop | awk -F '=' '/_NET_WM_PID/{print $2}') -o cmd 

xprop превратит ваш курсор в X, который вы можете использовать, чтобы нажать на окно, он вернет PID, а затем ps будет использовать этот PID для печати команды

Из https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html:

В основном, когда вы устанавливаете приложение, где-то создается файл .desktop. Этот файл .desktop сообщает среде рабочего стола, какую команду запускать. В файловой системе разбросано множество файлов .desktop. Их расположение определяется переменной окружения, хотя большинство из них находится в подкаталоге с именем «приложения» в путях, указанных в$XDG_DATA_DIRS. Таким образом, вам в основном нужно просмотреть все эти файлы, проверить одно за другим имя приложения, указанное в них, и как только вы, наконец, найдете файл с именем вашего приложения, вы проверяете в них ключ «Exec».

Эта сверхдлинная команда делает это автоматически. Просто не забудьте указать имя программы для поиска в начале, а затем запустить ее в терминале (PS: вы можете открыть терминал с помощью Ctrl+Shift+T).

      NameOfProgramToSearchFor='CopyQ' && \
find $(tr ':' ' ' <<<"$XDG_DATA_DIRS") \
-name '*.desktop' \
-exec grep -e '^Name=' -e '^Exec=' {} \; 2>/dev/null |
grep -i -A 1 "^Name=.*$NameOfProgramToSearchFor.*$"

Или вы можете просто сделать то, что сказал @Takkat. В моем случае его решение не сработало, потому что я не смог найти кнопку «Свойства» в контекстном меню, так как я использую ОС Zorin, и эта опция не отображается. ОС Zorin основана на Ubuntu, поэтому я не могу точно сказать, это просто особенность ОС Zorin или @Takkat использовал более старую версию Ubuntu.

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