У меня есть исполняемый файл. Я хочу выполнить исполняемый файл в терминале с именем только как другие команды.
Я могу поместить свой исполняемый файл в /usr/local/bin
или добавить его PATH
в ~/.bashrc
. Оба будут работать.
Что лучше? Есть ли разница?
Например, позвольте мне принять, у Вас есть исполняемый файл myscript
. Необходимо выполнить его от терминала как,
/path/to/myscript
Изменение уровня пользователя
Если Вы добавляете PATH
из того исполняемого файла к ~/.bashrc
, можно выполнить исполняемый файл с именем только отовсюду (Avinash Raj, уже упомянутый), как
myscript
Но изменение будет затронуто на уровне пользователя. Это означает, есть ли у Вас какой-либо другой пользователь (пользователи), они не могли бы получить доступ к исполняемому файлу с именем только. Если у них есть верные полномочия, они должны выполнить исполняемый файл как,
/path/to/myscript
Кроме того, Вы не сможете запустить скрипт как sudo, поскольку это не находится в PATH
из корня, Для выполнения как sudo
необходимо использовать,
sudo /path/to/myscript
системное изменение уровня
Если Вы вставляете свой сценарий /usr/local/bin
к этому можно получить доступ в масштабе всей системы и для всех пользователей. В этом случае любой пользователь может выполнить Ваш исполняемый файл как (подвергающийся наличию верных полномочий)
myscript
В этом случае можно выполнить исполняемый файл как sudo
также как,
sudo myscript
Теперь выберите один путь в зависимости от своей потребности.
Добавление местоположения файла к Вашему $PATH
переменная в Вашем ~/.bashrc
файл только позволит Вам выполняться от любого местоположения, тогда как помещение его в /usr/bin/
позволит всем пользователям в Вашей системе выполнять тот файл от любого местоположения.
, Почему это? Поскольку, Ваш ~/.bashrc
файл только видим Вам как пользователь. Таким образом, вся переменная изменяется сделанный, ограничены Вами. Принимая во внимание, что, добавляя то, что файл к /usr/bin
позволит файлу оставаться там для всех пользователей и с тех пор /usr/bin
, присутствует в $PATH
переменная, если кто-то не удаляет его, позволит всем пользователям выполнять его от любого местоположения.
Если Вы поместите исполняемый файл в /usr/bin
или /usr/local/bin
, то Вы будете в состоянии запустить ту программу, только определяя имя (your-program
вместо /usr/local/bin/your-program
).
, Если Вы вместо этого добавляете каталог, содержащий программу к ~/.bashrc
файл к эти PATH
, тогда любой исполняемый файл, существующий в том каталоге, может быть запущен, только введя его имя.
Так же, как дополнение к ответу @souravc...
Для "Изменения уровня пользователя", вместо того, чтобы редактировать ~/.bashrc
файл можно просто создать каталог $HOME/bin/
и поместить сценарии туда.
каталог будет автоматически добавлен к PATH
(по крайней мере, начиная с Ubuntu 12.04), что означает, что Вы сможете выполнить все сценарии/исполняемые файлы в том каталоге с простым:
myscript
Просто мои 2 цента. :)
пз - я пытался отправить это как комментарий к ответу @souravc, но у меня не было достаточной репутации. :-(