Нет. скриптов, присутствующих по этому пути /usr/local/bin/
. Для пользователя инструкции должны ввести имя скрипта <script_name>
в его приглашении [username@servername]$
. Как такое возможно, что я не ./script_name
и скрипт начал показывать результаты в стандартном выводе, просто записав имя скрипта в приглашении пользователя? Может быть интересно узнать о /usr /local /bin / в системе LINUX :-)
4 ответа
В системах BSD все несистемные программы (порты) по умолчанию устанавливаются в /usr/local
.
В большинстве дистрибутивов Linux он предназначен для программного обеспечения, установленного локальным администратором из источника, в обход менеджера пакетов дистрибутивов.
/usr/local
предназначен для вещей, которые вы не хотите уничтожать при обновлении операционной системы.
ОС может свободно удалять все, что захочет, в /usr/bin
и др., Локальная вариация была настроена, чтобы не допустить уничтожения ваших вещей, не связанных с ОС.
И, помещая все эти локальные вещи (bin
, etc
и т.д.) Под одну контрольную точку, это делает резервное копирование сайта очень простым (в отличие от необходимости получать /bin
, /etc
, /lib
и так далее для OS) - вы просто создаете резервную копию всей иерархии /usr/local
.
Если вы откроете echo $PATH
, вы, вероятно, обнаружите, что /usr/local/bin
есть. В качестве альтернативы, попробуйте which PROG
(заменив PROG
на ваше реальное имя программы), чтобы увидеть, где он находится:
pax> pwd
/home/pax
pax> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
pax> ls /usr/local/bin/ico*
iconv
pax> which iconv
/usr/local/bin/iconv
pax> iconv -?
Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]
or: iconv -l
Try 'iconv --help' for more information.
/usr/local/bin, вероятно, является частью вашего пути
Чтобы ответить на ваш заголовок о назначении /usr /local /bin /usr /local для программного обеспечения, локального для машины, обычно устанавливаемого вручную (а не через управление пакетами, например, rpm или deb)
Чтобы ответить на ваш актуальный вопрос, я думаю, вы должны узнать о переменной PATH. попробуйте echo $ PATH в терминале
./somescript.sh означает, что вы ожидаете, что скрипт будет в текущем каталоге (.) если вы не укажете путь, просто имя команды, оболочка будет искать ее в ПУТИ (если, конечно, это не внутренняя команда вашей оболочки).