Как мне изменить свой ПУТЬ, чтобы изменения были доступны в каждом сеансе терминала

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

Существует перегрузка запутанной и, возможно, противоречивой информации в https://help.ubuntu.com/community/EnvironmentVariables

Я использую 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)

Я заставил его работать, изменив ~/.profile

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

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

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

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

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

source ~/.profile

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

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

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

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

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

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

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

Прежде чем задавать переменную PATH, вам нужно понять, почему вы устанавливаете переменную PATH. Переменная Path - это то место, где система пытается выполнить поиск, когда вы выполняете какую-либо команду в своем терминале.

Пример: whereis ls команда показывает ls есть ли там внутри /binls команда работает только в том случае, если /bin регистрируется в переменной path.

echo $PATH показывает зарегистрированные в настоящее время местоположения. Если вы хотите добавить другое пользовательское местоположение в свою переменную path, вы можете попробовать несколько способов.

  1. ПУТЬ="$PATH:/someLocation"
    Новая переменная Path действительна только до тех пор, пока ваш терминал не закроется. Ни один другой терминал не будет затронут. Ни один подпроцесс не может использовать новую переменную.
  2. путь экспорта="$PATH:/someLocation"
    Новая переменная Path действительна до тех пор, пока ваш терминал не закроется, также все подпроцессы получат новую переменную Path. Ни один другой терминал не получит новую переменную.
  3. путь экспорта="$PATH:/someLocation"

Добавьте эту строку в .bashrc файл, присутствующий в вашей домашней папке. Который вызывается каждый раз, когда создается новая оболочка bash. Это означает, что вы получаете новую переменную Path, экспортируемую каждый раз при открытии нового терминала. Но эта переменная создается только для оболочек bash. Вы можете использовать старую переменную Path в других оболочках (ksh, sh, ssh ..).

  1. путь экспорта="$PATH:/someLocation"

Добавьте эту строку в .profile файл, присутствующий в вашей домашней папке. Который вызывается каждый раз, когда вы входите в систему. Это означает, что вы получаете новую переменную Path, экспортируемую каждый раз при создании вашего сеанса. Который доступен везде.

Если вы не можете найти .profile или .bashrc файл в вашей домашней папке, попробуйте создать новый. Иногда эти файлы не будут созданы системой.

ps: Работает в ubuntu. Открыт для любых исправлений.

Сначала добавьте сценарий оболочки в /etc/profile.d каталог.

echo 'export PATH=$PATH:/path/to/app' | sudo tee /etc/profile.d/custom-apps-path.sh > /dev/null

Затем приложение будет доступно через прямой вызов при следующем входе в оболочку.

Чтобы сделать приложение мгновенно доступным в текущей командной оболочке, выполните следующую команду:

source /etc/profile.d/custom-apps-path.sh

Если у вас есть ohmyzsh, перейдите в свой домашний каталог через терминал и введите

nano .zshrc

В конце файла введите

путь экспорта="$HOME/directory_to_include_in_path/:$PATH"

Наконец, перезагрузите свой терминал. Сработало на меня. Надеюсь, это было полезно.

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

Во время настройки JAVA_HOME переменная

В терминале выполните команду для создания переменной

echo 'export JAVA_HOME=“/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home' | sudo tee -a ~/.profile

запустите, чтобы добавить переменную в путь

echo 'export PATH="${JAVA_HOME}/bin:$PATH"' | sudo tee -a ~/.profile

затем

source ~/.profile

Чтобы проверить, правильно ли установлена переменная бежать

vi .profile

затем :q чтобы бросить курить

Для изменения файла .profile (в случае исправления) бежать

sudo vi .profile

Нажмите I для вставки.

После внесения изменений нажмите Esc и :wq чтобы сэкономить и бросить курить.

Пройдя через основы, я предложу следующие шаги:

  1. Рекомендуется устанавливать переменные среды в /etc/environment
  2. Откройте файл от имени суперпользователя в редакторе поскольку это файл доступный только для чтения например gedit:

    gksu gedit /etc/environment
  3. Системе потребуется пароль, чтобы открыть его в редактируемом режиме. Введите свой пароль суперпользователя и откройте файл в новом окне gedit.
  4. Добавьте новую строку в конец файла с export PATH=$PATH:/usr/local/foo
  5. Сохраните и закройте окно. Он вернет команду обратно на терминал.
  6. Обновите среду, выполнив следующую команду:

    . /etc/environment
  7. Вы можете проверить, выполнив следующую команду:

    echo $PATH