Как мне изменить PATH, чтобы изменения были доступны на каждом сеансе терминала

44

Я хочу добавить каталог для поиска в моем пути поиска. Я знаю, что мне нужно изменить переменную среды PATH . Тем не менее, я хочу, чтобы изменение было постоянным, так что оно всегда действует, для каждого окна Terminal (bash), которое я открываю.

Существует перегрузка запутанной и, возможно, противоречивой информации в Ссылка

Я использую Ubuntu 10.04. Предположим, я хочу добавить /usr/local/foo к моему PATH . Какой файл ( .bashrc , .profile , .bash_login и т. Д.) Следует изменить и как должна выглядеть новая строка?

    
задан Joshua Flanagan 06.09.2010 в 18:56
источник

6 ответов

53

Следующая команда добавляет путь к вашему текущему пути:

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)

ответ дан Ralf 06.09.2010 в 20:25
источник
13

Я получил его для работы, изменив ~/.profile

Похоже, что добавление ~ / bin к моему пути было плохим примером, так как в ~ / .profile уже есть код, чтобы сделать это автоматически, если каталог существует.

Чтобы добавить каталог usr / local / foo в мой путь для каждого сеанса, я добавлю / отредактирую следующую строку в конце моего .profile:

export PATH=$PATH:/usr/local/foo

Однако для того, чтобы это вступало в силу, мне нужно было выйти из системы и войти в систему (просто закрыв окно терминала и открыв новый, он НЕ работал).

    
ответ дан Joshua Flanagan 06.09.2010 в 19:07
3

Вы можете добавить путь к /etc/environment , но имейте в виду, что никакие расширения оболочки не будут работать; переменная будет установлена ​​буквально введенными вами символами.

    
ответ дан sagarchalise 08.09.2010 в 14:28
2

Чтобы перезагрузить .profile и принять эффекты изменений без выхода из системы / входа в систему, запустите:

source ~/.profile
    
ответ дан Bruno Freitas 08.12.2015 в 11:43
0

Вы можете изменить файл .bashrc в каталоге $HOME .

В самом конце этого файла добавьте строку:

export PATH="$HOME/directory_to_include_in_path/:$PATH"

Вы также можете изменить файл .profile , также в вашем каталоге $HOME , включая следующую строку:

PATH="$HOME/directory_to_include_in_path/:$PATH"

Это сработало для меня.

    
ответ дан Denner Vieira 03.06.2017 в 16:23
-3
Going through the basics, I will suggest the following steps:
1. It's recommended to set environment variables in /etc/environment
2. Open the file as superuser in an editor as it's a read only file e.g.     gedit:
gksu gedit /etc/environment
3. System will need password to open it in editable mode. Enter your superuser password and get file opened in a new gedit window. 
4. Add new line at the end of file with 
export PATH=$PATH:/usr/local/foo
5. Save and close the window. It will get command back to terminal.
6. Refresh the environment by running the following command: 
. /etc/environment
7. You may check by executing the following command:
 echo $PATH
    
ответ дан Mac 22.01.2016 в 21:00