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

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

614 голосов | спросил justingrif 23 J000000Thursday09 2009, 00:42:23

18 ответов


393

Использование ~ /.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). Например. используйте 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/, чтобы повлиять на сеанс диспетчера дисплеев.

ответил ko-dos 23 J000000Thursday09 2009, 02:04:21
253

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

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

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

$ source ~/.bashrc
ответил Ophidian 23 J000000Thursday09 2009, 00:45:55
100

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

/etc/environment

(где указан параметр PATH по умолчанию gksudo gedit /etc/environment

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

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

    sudo

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

Чтобы произвести изменения, запустите PATH. Поскольку этот файл является просто простым скриптом, он будет запускаться и назначать новый путь к переменной окружения PATH. Чтобы проверить запуск env и увидеть значение ----+:=7=:+---- в списке.

Связанный:

ответил ish 31 J000000Tuesday12 2012, 07:49:49
53

Я думаю, что канонический путь в 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 9 Jam1000000amSat, 09 Jan 2010 04:31:33 +030010 2010, 04:31:33
44

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

  1. Откройте папку $HOME.
  2. Перейдите в Вид â † ' Показать скрытые файлы или нажмите Ctrl + H .
  3. Щелкните правой кнопкой мыши на .profile и выберите Открыть с помощью текстового редактора .
  4. Прокрутите вниз и добавьте PATH="$PATH:/my/path/foo".
  5. Сохранить.
  6. Выйдите из системы и войдите в систему, чтобы применить изменения (пусть Ubuntu действительно загрузит .profile).
ответил dain 25 +04002011-10-25T02:05:58+04:00312011bEurope/MoscowTue, 25 Oct 2011 02:05:58 +0400 2011, 02:05:58
39

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

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

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

  1. создание ~/.pam_environment файла в домашнем каталоге.
  2. , содержание которого PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.
  3. дополнительный пользовательский путь пользователя может быть добавлен путем разделения путей с помощью двоеточия (:) .
  4. для этого требуется повторный вход в систему , что означает, что вам необходимо выйти из системы и вернуться к рабочему столу.
ответил Eduardo B. 9 SunEurope/Moscow2012-12-09T03:07:24+04:00Europe/Moscow12bEurope/MoscowSun, 09 Dec 2012 03:07:24 +0400 2012, 03:07:24
25

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

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

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

ответил Ian B. 31 J000000Tuesday12 2012, 05:08:15
15

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

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

ответил ennuikiller 23 J000000Thursday09 2009, 03:20:32
14

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

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

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

ответил 3dinfluence 23 J000000Thursday09 2009, 00:58:33
8
sudo vi /etc/profile.d/SCRIPT_NAME.sh

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

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
ответил 13 Jpm1000000pmThu, 13 Jan 2011 21:44:42 +030011 2011, 21:44:42
8

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

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

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

ответил Vittorio Cecchetto 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 09 Sep 2012 02:44:57 +0400 2012, 02:44:57
6

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

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

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

БЗТ

ответил Silversleevesx 29 ThuEurope/Moscow2011-12-29T06:25:15+04:00Europe/Moscow12bEurope/MoscowThu, 29 Dec 2011 06:25:15 +0400 2011, 06:25:15
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 4 FebruaryEurope/MoscowbMon, 04 Feb 2013 23:09:34 +0400000000pmMon, 04 Feb 2013 23:09:34 +040013 2013, 23:09:34
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 8 22016vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2016 12:04:02 +0300 2016, 12:04:02
1

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

ответил Mikaela 1 PM00000010000000131 2012, 13:40:01
1

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

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

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

ответил Bus42 12 J0000006Europe/Moscow 2016, 23:30:05
1

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

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

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

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

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

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

См. https: //unix.stackexchange. ком /вопросы /162891 /присоединять к пути, как переменный-без создания ведущего двоеточия-если-незадана

ответил sancho.s 5 Jpm1000000pmFri, 05 Jan 2018 19:25:49 +030018 2018, 19:25:49
0

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

. ~/.bash_profile

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

ответил 19 42009vEurope/Moscow11bEurope/MoscowThu, 19 Nov 2009 08:03:20 +0300 2009, 08:03:20

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132