Обычно есть тест в/usr/bin/test, который будет впереди одного в вашем домашнем каталоге на вашем пути. Вы можете понять это, введя команду which test
EDIT: Как Alok Singhal указывает на комментарии ниже, test
также одна из команд, встроенных в Баш оболочку (и некоторых других оболочек), и если вы используете bash, то еще одна встроенная команда оболочки, type
, может показать вам, что будет выполнен не только то, что test
будет выполнено (даже если это встроенная оболочка и недоступна в файловой системе), но и все версии теста он скрывается. Например, если у меня есть/дом/погладить/бен впереди/USR/BIN:
$ type -a test
test is a shell builtin
test is /home/pat/bin/test
test is /usr/bin/test
Итак, набрав type -a <cmdname>
очень полезно, чтобы выяснить, не только то, что будет выполняться, но и то, что будет не. Показывая полные пути, он также позволяет использовать вырезание и вставку (в большинстве программ терминалов) для выбора и выполнения правильной программы, даже если вы решите не переименовывать ее. (Другие раковины также имеют аналогичные устройства с псевдонимом.)
В качестве альтернативы, man type
не даст вам никакой полезной информации о команде bash shell , потому что это не отдельная программа. man bash
действительно описывает это, так как он встроен в оболочку bash, но в этом документе много использования буквального слова «type», поэтому самое быстрое прокручивание донизу, если вы ищете информацию о type
команда.
EDIT2: Как указывает hek2mgl, команда hash также полезна, если у вас возникли проблемы с выполнением вашей команды. В частности, если вы создали программу, которая имеет то же имя, что-то другое, и вы уже запустить что-то еще, ваш сценарий может не работать, даже если это первый в пути:
$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ echo echo Hi there! > bin/python
$ chmod 700 bin/python
$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ hash -r # Clear the hash for this instance of bash
$ python
Hi there!
$ rm bin/python
$ python
bash: /home/pat/bin/python: No such file or directory
$ hash -r
$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Можете ли вы показать весь '$ PATH'? – hek2mgl