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

578

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

задан justingrif 22.07.2009 в 22:42
источник

18 ответов

362

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

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

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

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

Btw, вы можете проверить переменную PATH процесса, посмотрев ее среду в /proc/[pid]/environ . (замените [pid] на число из ps axf )

Примечание:

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

  

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

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

    
ответ дан ko-dos 23.07.2009 в 00:04
источник
222

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

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

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

$ source ~/.bashrc
    
ответ дан Ophidian 22.07.2009 в 22:45
96

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

/etc/environment

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

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

  • Чтобы изменить, нажмите Alt + F2 и введите:

    gksudo gedit /etc/environment
    

    (или откройте файл, используя sudo в вашем любимом текстовом редакторе)

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

Связанный:

ответ дан izx 31.07.2012 в 05:49
51

Я думаю, что канонический путь в Ubuntu:

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

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

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • и предоставить ему разрешение на выполнение

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    
ответ дан woto 09.01.2010 в 02:31
44

Для полных новичков (например, я), которые более удобны с графическим интерфейсом:

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

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

Ссылка

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

  1. создание ~/.pam_environment файла в домашнем каталоге.
  2. , содержание которого равно PATH DEFAULT=${PATH}:~/android-sdk-linux/tools .
  3. дополнительный пользовательский путь пользователя может быть добавлен путем разделения путей с помощью двоеточия (:) .
  4. для этого требуется повторный вход в систему , что означает, что вам необходимо выйти из системы и вернуться к рабочему столу.
ответ дан Eduardo B. 09.12.2012 в 00:07
24

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

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

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

    
ответ дан Ian B. 31.07.2012 в 03:08
14

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

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

    
ответ дан ennuikiller 23.07.2009 в 01:20
13

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

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

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

    
ответ дан 3dinfluence 22.07.2009 в 22:58
8
sudo vi /etc/profile.d/SCRIPT_NAME.sh

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

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
    
ответ дан Clipping Path 13.01.2011 в 19:44
8

В терминале cd to the_directory_you_want_to_add_in_the_path

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

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

    
ответ дан Vittorio Cecchetto 09.09.2012 в 00:44
6

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

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

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

<б> БЗТ

    
ответ дан Silversleevesx 29.12.2011 в 03:25
4

Откройте терминал, введите 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"

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

    
ответ дан djavier 04.02.2013 в 20:09
2

Рекомендуемый способ редактирования 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.

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

    
ответ дан Benny 08.11.2016 в 10:04
1

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

    
ответ дан Mikaela 01.08.2012 в 11:40
1

Ссылка

Есть все, что вам нужно знать. Я узнал, что много ввода здесь было неправильным или, по крайней мере, метод не предлагался. Это отличная информация, которая позволит вам выяснить, где изменить переменную среды, исходя из причины, по которой вы это делаете, и как это сделать, не забивая все (как, например, я сделал некоторые из вышеупомянутых плохих советов).

Так долго, и спасибо за всю рыбу!

    
ответ дан Bus42 12.06.2016 в 22:30
0

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

. ~/.bash_profile

Затем отредактируйте свой .bash_profile по мере необходимости.

    
ответ дан Vidula 19.11.2009 в 06:03
0

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

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

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

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

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

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

См. Ссылка

    
ответ дан sancho.s 05.01.2018 в 17:25