Я хочу добавить каталог для поиска по моему пути поиска. Я знаю, что должен изменить PATH переменная среды. Однако я хочу, чтобы изменение было постоянным, чтобы оно всегда действовало для каждого окна терминала (bash), которое я открываю.
Я использую Ubuntu 10.04. Предположим, я хочу добавить /usr/local/foo к моему PATH. Какой файл (.bashrc, .profile, .bash_login, и т.д. ...) должен ли я изменить и как должны выглядеть новые строки?
Следующая команда добавляет путь к вашему текущему пути:
export PATH=$PATH:/my/custom/path
Если вы хотите, чтобы ваша программа установки выполняла эту команду каждый раз, есть несколько мест, куда вы можете ее поместить. Когда вы войдете в систему, следующие скрипты будут выполняться в таком порядке:
/etc/profile (which starts by loading everything in /etc/profile.d)~/.profile (which starts by loading ~/.bashrc if you are running bash)
Записи
~/.profile загружается только в том случае, если ~/.bash_profile и ~/.bash_login НЕ СУЩЕСТВУЮТ. В противном случае, по крайней мере, bash загрузит их вместо этого. Желательно использовать .profile а не скрипты, специфичные для bash. Итак, если в этих попытках вы создали .bash_login, пожалуйста, удалите его сейчас.
~/.bashrc загружается только в том случае, если вы запускаете интерактивный сеанс. (что-то с подсказкой, где вы действительно можете что-то ввести).
~/.bashrc загружается снова и снова, каждый раз, когда вы открываете новый терминал. Итак, новая вкладка в gnome-terminal, новый виртуальный терминал и т.д. Так что даже если вы не войдете в систему снова, .bashrc загружается (и тем самым сбрасывает свою среду) каждый раз, когда вы открываете новую оболочку.
Такие вещи, как byobu, действительно должны входить в .profile, (в противном случае это не сработает ;-)
Такие вещи, как пути, должны входить в .profile если вы хотите, чтобы они работали вне интерактивных сеансов. (скажем, когда вы нажимаете Alt+F2 в GNOME)
Похоже, добавление ~/bin к моему пути было плохим примером, так как в ~/.profile уже есть код для автоматического выполнения этого, если каталог существует.
Чтобы добавить каталог usr/local/foo в свой путь для каждого последующего сеанса, я добавляю / редактирую следующую строку в конце my .profile:
export PATH=$PATH:/usr/local/foo
Однако, чтобы это вступило в силу, мне нужно было выйти из системы и снова войти в систему (простое закрытие окна терминала и открытие нового НЕ сработало).
Вы можете добавить путь к /etc/environment, но имейте в виду, что никакие расширения оболочки работать не будут; переменная будет установлена буквально на введенные вами символы.
Прежде чем задавать переменную PATH, вам нужно понять, почему вы устанавливаете переменную PATH. Переменная Path - это то место, где система пытается выполнить поиск, когда вы выполняете какую-либо команду в своем терминале.
Пример: whereis ls команда показывает ls есть ли там внутри /bin.В ls команда работает только в том случае, если /bin регистрируется в переменной path.
echo $PATH показывает зарегистрированные в настоящее время местоположения. Если вы хотите добавить другое пользовательское местоположение в свою переменную path, вы можете попробовать несколько способов.
ПУТЬ="$PATH:/someLocation"
Новая переменная Path действительна только до тех пор, пока ваш терминал не закроется. Ни один другой терминал не будет затронут. Ни один подпроцесс не может использовать новую переменную.
путь экспорта="$PATH:/someLocation"
Новая переменная Path действительна до тех пор, пока ваш терминал не закроется, также все подпроцессы получат новую переменную Path. Ни один другой терминал не получит новую переменную.
путь экспорта="$PATH:/someLocation"
Добавьте эту строку в .bashrc файл, присутствующий в вашей домашней папке. Который вызывается каждый раз, когда создается новая оболочка bash. Это означает, что вы получаете новую переменную Path, экспортируемую каждый раз при открытии нового терминала. Но эта переменная создается только для оболочек bash. Вы можете использовать старую переменную Path в других оболочках (ksh, sh, ssh ..).
путь экспорта="$PATH:/someLocation"
Добавьте эту строку в .profile файл, присутствующий в вашей домашней папке. Который вызывается каждый раз, когда вы входите в систему. Это означает, что вы получаете новую переменную Path, экспортируемую каждый раз при создании вашего сеанса. Который доступен везде.
Если вы не можете найти .profile или .bashrc файл в вашей домашней папке, попробуйте создать новый. Иногда эти файлы не будут созданы системой.
ps: Работает в ubuntu. Открыт для любых исправлений.