Это еще один ответ это хорошо, особенно как временное переопределение. Для полноты картины это главное.
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), а не путем их ручного выбора (например, в диалоговом окне «Открыть»).