Это еще один ответ это хорошо, особенно как временное переопределение. Для полноты картины это главное.
export PATH="/usr/local/Cellar/nano/2.9.1/bin:$PATH"
Проблема в том, что если вам нужно постоянное решение для нескольких инструментов, то при таком простом подходе ваш $PATH
будет излишне раздуваться.
Вот как этого избежать (в Debian; вопрос для Mac OS X, но я считаю, что решение также применимо или его легко адаптировать) Сначала создайте свой собственный bin/
:
mkdir ~/bin/
(Изменить: в macOS, ~/Library/bin/
немного лучше подходит для организации домашних папок. Я решил не менять свой ответ, адаптируя этот путь к вашим потребностям.)
Затем измените ваш $PATH
:
PATH=~/bin:"$PATH"
(Увидеть примечание 1 внизу, если вы хотите сделать его постоянным.)
Тогда символическая ссылка желаемая nano
(и любой другой двоичный файл) на ваш заказ bin/
:
ln -s /usr/local/Cellar/nano/2.9.1/bin/nano ~/bin/
(Увидеть заметка 2 внизу, если вы хотите использовать это nano
сразу.)
Этот подход имеет следующие преимущества:
- ваш
$PATH
остается относительно коротким и чистым;
- с
ls -l ~/bin/
Вы можете легко сказать, какие инструменты вы делаете с чем; это намного лучше, чем анализировать раздутый $PATH
который определяет каталоги; каждый каталог может включать в себя много исполняемых файлов, и вам нужно ls
во всяком случае, чтобы знать их;
- удаление символической ссылки, создание ее заново намного проще, чем изменение
$PATH
особенно внутри скрипта;
- Вы также можете разместить свои собственные сценарии в
~/bin/
,
Примечание 1: в моем Debian /etc/skel/.profile
включает в себя следующий код:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
мой ~/.profile
был создан как копия /etc/skel/.profile
, поэтому код существует с самого начала. Это означает, что каждый новый сеанс оболочки корректирует $PATH
включить мой личный bin/
; все, что мне нужно было сделать, это создать каталог.
Примечание 2: при изменении $PATH
в середине сеанса (например, для проверки моего решения) имейте в виду, что ваша оболочка может запомнить старое местоположение любого исполняемого файла, который она уже искала, в соответствии со старым $PATH
, Обычные снаряды используют hash
встроенный, чтобы управлять этим. использование hash -r
если нужно.
Если вы настраиваете $PATH
в самом начале сеанса оболочки (как в .profile
) тогда такой проблемы нет.
$PATH
), а не путем их ручного выбора (например, в диалоговом окне «Открыть»).