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

Как получить местоположение программы в Ubuntu? Например, я имею Oracle, как получить папку Расин (местоположение) Oracle?

2
задан 19 February 2016 в 02:48

4 ответа

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

whereis program

6
ответ дан 2 December 2019 в 01:24

Bash и Тире имеют 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

, Если Ваша оболочка (например, Bash) поддерживает его, type -a списки все, к чему может относиться команда:

$ 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
8
ответ дан 2 December 2019 в 01:24

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

  • which ssh
  • which Oracle

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

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

7
ответ дан 2 December 2019 в 01:24

Как David Foerster уже упомянул, можно использовать type -a который покажет все местоположения, данный исполняемый файл может быть найден в активном $PATH:

$ type -a now
now is /home/rick/bin/now
now is /mnt/e/bin/now

type -a также определит, является ли команда встроенной оболочкой. Например:

$ type -a test
test is a shell builtin
test is /usr/bin/test

type -a также определит, является ли команда ключевым словом оболочки. Например:

$ type -a if
if is a shell keyword

type a программы списков, команды, окружают созданный-ins и окружают ключевые слова в порядке hierarchal, которым что их назвали бы в зависимости от $PATH переменная среды. Путем изменения PATH= к другому порядку это изменяется, какую версию программы называют. Это удобно, когда у Вас есть производство, разработка и версии тестовой программы на той же машине.

Программа не находится в $PATH

Что, если программа не находится в Вашем пути? Самый быстрый способ найти его с locate команда:

$ locate .bashrc
/etc/bash.bashrc
/etc/skel/.bashrc
/home/rick/.bashrc
/home/rick/.bashrc~
/mnt/e/.bashrc
/mnt/e/Temporary Work/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Я отчасти обманул здесь потому что .bashrc не реальный исполняемый файл, это - "исходный" файл для включения в сценарий удара, который является исполняемым файлом. Однако это служит для иллюстрирования соответственно.

1
ответ дан 2 December 2019 в 01:24

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

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