Постоянная переменная PATH

38

Как я сделаю эту /media/De Soft/mongodb/binпеременную PATH постоянной?

Все говорят « export PATH=$PATH:media/De\ Soft/mongodb/binтебе ~/.profileили .bashrc, или, в .zshenvзависимости от твоей скорлупы».

Я не знаю, что есть ~/.profile, или .bashrc, или .zshenv. Что они на самом деле делают?

Как я добавлю export PATH=$PATH:my/pathв свой .profile / .bashrc / .zshenv?

Я использую 64-битную Ubuntu 14.04 LTS с терминалом по умолчанию.

Towhid
источник

Ответы:

70

Это файлы конфигурации. В одну сторону:

  • Откройте окно терминала, используя Ctrl + Alt + T
  • Запустите команду gedit ~/.profile
  • Добавьте строку

    export PATH=$PATH:/media/De\ Soft/mongodb/bin

    на дно и сохранить

  • Выйдите и войдите снова

Редактировать:

Более безопасный способ - использовать кавычки. Это необходимо, если один или несколько каталогов в оригинале PATHсодержат пробелы. Так:

export PATH="$PATH:/media/De Soft/mongodb/bin"
Гуннар Хьялмарссон
источник
@GunnarHjalmarsson, мне действительно нужно экспортировать переменную PATH? Может быть, это сделано по умолчанию в каком-то другом скрипте? Я проверил ~ / .profile и там есть переменная PATH, но она явно не экспортируется: PATH = ~ / .local / bin: $ JAVA_HOME / bin: $ PATH
yuranos87
4
@ yuranos87: ​​Нет, ты прав; при изменении PATHв ~/.profile, экспорт является излишним, так как PATHуже есть переменная окружения.
Гуннар
1
Вам не нужно выходить из системы и входить снова. Использование source ~/.profile.
Тимбо
1
@timbo: Это не делает переменную доступной для уже запущенных процессов в сеансе (кроме текущего терминала).
Гуннар
1
Вам не нужен кавычка в строке, как в export PATH="$PATH:/media/De\ Soft/mongodb/bin"? Это необязательно?
Бруно Бентцен
4

Введите следующее в окне терминала

export PATH=/media/De\ Soft/mongodb/bin:$PATH 

Закройте терминал и перезагрузите компьютер. Путь должен включать / media / De \ Soft / mongodb / bin, когда вы вводите это в терминале:

echo $PATH
Ниведита Велагалети
источник
13
Это работает только для текущей терминальной сессии. Он должен быть в ~/.profile(или ~/.bashrcв обычных дистрибутивах GNU / Linux ... даже ~/.bash_profile) для запуска при любой загрузке консоли.
Алехандро Иван
согласовано. но после перезагрузки системы он загружается в переменную пути.
Ниведита Велагалети
10
@NiveditaVelagaleti: Нет, если вы не сделаете его постоянным с помощью файла конфигурации. Терминальная команда не изменяется PATHпостоянно.
Гуннар
2

Для постоянного изменения PATHнеобходимо внести изменения в /etc/environmentфайл. Сделайте резервную копию перед редактированием:

sudo cp /etc/environment /etc/environment.bak
sudo nano /etc/environment

образец вывода:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Пути разграничены :так, чтобы добавить новый путь, скажем, что x/y/zэто будет /etc/environmentвыглядеть так:

PATH="x/y/z:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Xaqron
источник