Как узнать терминальную команду приложения?
Я хочу использовать некоторые приложения, показанные на панели запуска 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.