Как получить местоположение программы на терминале Ubuntu?

, если вы не настроите свою сеть с помощью NetworkManager, вы можете попытаться настроить ваш upstart conf на зависимость от сети:

start on starting networking

или

start on starting network-interface

Не знаю, как он взаимодействует с NetworkingManager, возможно, NM запускает некоторые события, которые обнаруживаются через выскочку.

1
задан 19 February 2016 в 03:48

2 ответа

Вы можете использовать which, чтобы определить, какой бинарный файл выполняется.

which ssh which Oracle

Это примеры и вернут полный путь для двоичных файлов.

Вы также можете использовать whereis для поиска дополнительной информации, но это может смутить вас в этой ситуации.

7
ответ дан 23 May 2018 в 13:25

У Bash и Dash есть встроенная команда command, которая может показать вам местоположение команды с помощью переключателя -v, если команда относится к исполняемому файлу. В случае встроенных команд и псевдонимов результат отличается. Примеры:

$ command -v java
/usr/bin/java
$ echo $?
0
$ command -v echo
echo
$ command -v ls
alias ls='ls -h --color=auto'
$ command -v non-existing_command; echo $?
1

Кроме того, все оболочки, полученные из Sh, знают команду type, которая сообщает вам о характере любой команды.

$ type java
java is /usr/bin/java
$ type ls
ls is aliased to `ls -h --color=auto'
$ type echo
echo is a shell builtin
$ type non-existing_command
bash: type: non-existing_command: not found

type -a list все, на что может ссылаться команда:

$ type -a ls
ls is aliased to `ls -h --color=auto'
ls is /bin/ls
$ type -a echo
echo is a shell builtin
echo is /bin/echo
$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch
7
ответ дан 23 May 2018 в 13:25
  • 1
    +1 Не все оболочки в стиле Бурна поддерживают параметр -a для type. Например, в dash -a рассматривается как другое имя команды для поиска (и, как правило, не будет найден). – Eliah Kagan 6 October 2017 в 02:10

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

Похожие вопросы: