Как добавить каталог в PATH?

Как добавить каталог в $PATH в Ubuntu и сделать изменения постоянными?

858
задан 8 November 2016 в 21:11

17 ответов

Использование ~/.profile для установки $PATH

Путь, установленный в .bash_profile будет установлен только в оболочке для входа в систему (bash -l). Если вы поместите свой путь в .profile, то он будет доступен для всего сеанса работы с десктопом. Это означает, что даже metacity будет использовать его.

Например ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Btw, Вы можете проверить переменную PATH процесса, посмотрев на его окружение в /proc/[pid]/environ (замените [pid] на номер из ps axf). Например, используйте grep -z "^PATH" /proc/[pid]/environ

Примечание:

bash в качестве оболочки для входа в систему не анализирует .profile, если существует либо .bash_profile, либо .bash_login. Из man bash :

ищет ~/.bash_profile, ~/.bash_login, и ~/.profile, в котором приказ, а также читает и выполняет команды с первого существующего и является читабельным.

Смотрите ответы ниже для получения информации о .pam_environment, или .bashrc для интерактивных нелогин-оболочек, или установите значение глобально для всех пользователей, поместив скрипт в /etc/profile. d/ или используйте /etc/X11/Xsession.d/ для воздействия на сеанс диспетчеров.

511
ответ дан 8 November 2016 в 21:11

Откройте свой терминал, введите gedit .profile и вставьте следующее:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$PATH:$HOME/bin"
fi

 #the following line add Bin where you dont have a Bin folder on your $HOME
    PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"

Закройте и откройте терминал, он должен работать.

4
ответ дан 8 November 2016 в 21:11

Положите его на ваш ~/.bashrc или как там его называют, вы используете rc (или на вышеупомянутый ~/. profile) И ~/.xsessionrc, так что он также будет работать в X (внешняя оболочка).

2
ответ дан 8 November 2016 в 21:11

Всякий раз, когда я «устанавливаю» свою папку со сценариями BASH, я следую шаблону теста для $ HOME / bin , которая находится в большинстве файлов .profile в последних версиях Ubuntu. Я установил тест, который выглядит как

if [ -d "/usr/scripts" ]; then
   PATH="/usr/scripts:$PATH"
fi

. Он работает примерно в 100% случаев и дает мне возможность изменить его в текстовом редакторе графического интерфейса с помощью быстрой команды «Заменить все», если я когда-нибудь решу переместить / scripts где-то ближе к моей папке $ HOME . Я не делал этого в шести установках Ubuntu, но «всегда есть завтра». S

BZT

6
ответ дан 8 November 2016 в 21:11

В терминале, cd в каталог_you_want_to_add_in_the_path

echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc

Это была не моя идея. Я нашел этот способ экспортировать путь на этом блоге здесь.

10
ответ дан 8 November 2016 в 21:11

. Даже если системные сценарии не используют это, в любом из случаев, когда нужно добавить путь (например, $ HOME / bin ) к переменной среды PATH, следует использовать

PATH="${PATH:+${PATH}:}$HOME/bin"

для добавления (вместо PATH = "$ ПУТЬ: $ HOME / bin "), и

PATH="$HOME/bin${PATH:+:${PATH}}"

для добавления в начало (вместо PATH = "$ HOME / bin: $ PATH" ).

Это позволяет избежать ложного начального / конечного двоеточия, когда изначально $ PATH пусто, что может иметь нежелательные последствия.

См., например, https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset

1
ответ дан 8 November 2016 в 21:11

Рекомендуемый способ отредактировать PATH - из файла / etc / environment

Пример вывода / etc / environment :

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

Например, чтобы добавить новый путь / home / username / mydir

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"

Затем перезагрузите компьютер.


Общесистемные переменные среды

Подходящим файлом для настроек переменных среды, которые влияют на систему в целом (а не только на конкретного пользователя), является / etc / environment. Альтернативой является создание файла для этой цели в каталоге /etc/profile.d.

/ etc / environment

Этот файл специально предназначен для общесистемных настроек переменных среды. Это не файл сценария, а скорее состоит из выражений присваивания, по одному на строку.

Примечание: Расширение переменной не работает в /etc/environment.

Более подробную информацию можно найти здесь: EnvironmentVariables

6
ответ дан 8 November 2016 в 21:11

Вы можете вернуться к старому стилю переключения окон, включив плагин Static Application Switcher в CompizConfig Settings Manager:

Шаги:

  1. CompizConfig Manager получает через sudo apt-get install compizconfig-settings-manager (спасибо @donbright)

  2. sudo apt-get install compiz-plugins, чтобы заставить отобразиться статический переключатель приложений. (благодаря @Milimetric)

  3. CompizConfig Settings Manager запускается с помощью ввода ccsm в терминале (благодаря @donbright)

  4. Отключите клавиатурные сокращения для коммутатора Unity, сняв флажок CompizConfig Settings Manager ▸ Рабочий стол ▸ Плагин Ubuntu Unity ▸ Переключатель ▸ Клавиша для запуска коммутатора ▸ Включено и Ключ для запуска коммутатора в обратном направлении ▸ Включено

  5. Включить переключатель статических приложений, установив флажок CompizConfig Settings Manager ▸ Управление окнами ▸ Переключатель статических приложений ▸ Включить переключатель статических приложений

-. 121---893071-

Для абсолютных новичков (как и я), которым более комфортен GUI:

  1. Откройте папку $HOME .
  2. Перейдите к Посмотреть Показать скрытые файлы или нажмите Ctrl + H.
  3. Щелкните правой кнопкой мыши на . Профиль и нажмите на Открыть с помощью текстового редактора.
  4. Прокрутите вниз и добавьте PATH="$PATH:/my/path/foo".
  5. Сохранить.
  6. Выход и повторный вход для внесения изменений (пусть Ubuntu фактически загрузит .profile).
49
ответ дан 8 November 2016 в 21:11

Рекомендуемое место для определения постоянных, общесистемных переменных окружения, применяемых ко всем пользователям:

/etc/environment

(именно там, где определено значение по умолчанию PATH)

Это будет работать на рабочем столе или в консоли, гном-терминале или TTY, под дождем или в блеске ;)

  • Для редактирования, откройте терминал и введите:

    sudoedit /etc/окружение.
    

    (или откройте файл с помощью sudo в любимом текстовом редакторе)

Чтобы заставить его работать без перезагрузки, запустите . /etc/окружение или источник /etc/окружение. Так как этот файл является простым сценарием, он будет запущен и назначить новый путь к переменной окружения PATH. Для проверки выполнения env и просмотра значения PATH в листинге.

Связанные:

145
ответ дан 8 November 2016 в 21:11

Редактирование .bashrc в вашем домашнем каталоге и добавление следующей строки:

export PATH="/path/to/dir:$PATH"

Чтобы изменения вступили в силу, вам нужно будет исходить из вашего .bashrc или выйти/зайти в систему (или перезапустить терминал). Чтобы получить исходные тексты вашего .bashrc, просто наберите

$ source ~/.bashrc
360
ответ дан 8 November 2016 в 21:11

По-моему, канонический способ в Ubuntu:

  • создать новый файл в разделе /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • добавить:

    экспортировать PATH="ВАШ_PATH_БЕЗ_ПУТЕХОДА_СЛАШ:$PATH".
    
  • и дать ему выполнить разрешение

     sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    
61
ответ дан 8 November 2016 в 21:11

Для Ubuntu отредактируйте ~/.bashrc и добавьте следующую строку.

. ~/.bash_profile

Затем отредактируйте свой .bash_profile так, как вам нужно.....

-1
ответ дан 8 November 2016 в 21:11
sudo vi /etc/profile.d/SCRIPT_NAME.sh

добавить туда

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
8
ответ дан 8 November 2016 в 21:11

Чтобы установить его для всей системы, добавьте строку export PATH = / path / you / add: $ PATH в конец / etc / profile .

Чтобы добавить каталог только для вошедшего в систему пользователя, добавьте ту же строку в ~ / .bash_profile .

17
ответ дан 8 November 2016 в 21:11

Поместите эту строку в ваш ~/.bashrc файл.

Он получает исходные данные всякий раз, когда вы открываете терминал

EDIT: Основываясь на комментариях ниже, для более общих настроек, которые будут применяться ко всем shell'ам (в том числе, когда вы нажмете Alt-F2 в Unity), добавьте строку к вашему файлу ~/.profile. Однако, вероятно, не стоит делать оба варианта, так как при открытии терминала путь будет дважды добавлен в Ваше окружение PATH.

26
ответ дан 8 November 2016 в 21:11

Для постоянных переменных среды, доступных только определенным пользователям. Я настоятельно рекомендую официальную документацию Ubuntu.

https://help.ubuntu.com/community/EnvironmentVariables

Ссылаясь на документацию выше, я установил свои инструменты пути к Android SDK :

  1. создание файла ~ / .pam_environment в домашнем каталоге.
  2. содержимое которого имеет вид PATH DEFAULT = $ {PATH}: ~ / android-sdk-linux / tools .
  3. можно добавить дополнительный пользовательский путь, разделив пути двоеточием (:) .
  4. для этого потребуется повторный вход в систему , что означает, что вам необходимо выйти из системы и войти в систему. обратно в среду рабочего стола.
46
ответ дан 8 November 2016 в 21:11

Добавление его в .bashrc сработает, но я думаю, что более традиционный способ настройки переменных пути - в .bash_profile, добавив следующие строки.

PATH=$PATH:/my/path/foo
export PATH

Согласно этому потоку кажется, что поведение Ubuntu немного отличается от поведения RedHat и клонов.

15
ответ дан 8 November 2016 в 21:11

Другие вопросы по тегам:

Похожие вопросы: