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

Поскольку паровой репозиторий будет добавлять в список apt только после аутентификации, он не поддерживается в синаптических или других apt-интерфейсах, кроме usc. Поскольку это приложение отправляется через портал моих приложений, на самом деле это ошибка удобства использования. Это глобальная система аутентификации для ubuntu. Это для проверки подлинности и получения статистики о установке программного обеспечения. Нет прямых путей.
1
задан 8 November 2016 в 22:11

17 ответов

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

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

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

$ source ~/.bashrc
237
ответ дан 29 May 2018 в 13:09
  • 1
    Как вы и "источник" .bashrc & quot ;? Как вы и "перезапустите терминал"? – isomorphismes 10 September 2011 в 06:16
  • 2
    В bash это просто ». .bashrc» – Ophidian 12 September 2011 в 07:54
  • 3
    Я делал предположение, что вы были в своем домашнем каталоге. потому что именно там .Bashrc вы хотите редактировать. – Ophidian 16 February 2012 в 20:23
  • 4
    .bashrc не подходит для установки переменных среды. Они должны войти в .profile или .pam_environment. См. mywiki.wooledge.org/DotFiles – geirha 2 March 2012 в 18:21
  • 5
    @LaoTzu . .bashrc не .bashrc :) или source .bashrc, если на то пошло – Znarkus 21 August 2012 в 13:26

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

/etc/environment

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

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

Для редактирования нажмите Alt + F2 и введите:
gksudo gedit /etc/environment
(или откройте файл, используя sudo в ваш любимый текстовый редактор)

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

общесистемный

Для редактирования нажмите Alt + F2 и type:
gksudo gedit /etc/environment
(или откройте файл, используя sudo в вашем любимом текстовом редакторе)
99
ответ дан 29 May 2018 в 13:09
  • 1
    а затем вам нужно перезагрузить, чтобы изменения вступили в силу ... – Lee 17 November 2013 в 15:27
  • 2
    Это именно то, что мне нужно. Предоставление визуального изображения vm через vagrant и необходимость добавления узла и npm в путь. – Austin Pray 30 June 2014 в 08:07
  • 3
    Внести изменения в действие. / etc / environement (да, точка, пробел и / etc / environment). Поскольку этот файл представляет собой простой скрипт, он будет запускаться и назначать новый путь к переменной среды PATH. Чтобы проверить запуск env и увидеть значение PATH в списке. – WindRider 20 May 2015 в 16:27
  • 4
    Мне нужно было запустить source /etc/environment, чтобы перезагрузить изменения – JohnnyAW 16 May 2018 в 11:54

Я думаю, что канонический способ в 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
52
ответ дан 29 May 2018 в 13:09
  • 1
    Обычно безопаснее добавлять свой собственный путь в конец PATH вместо начала. Это позволяет избежать случайной замены системных команд вашими программами (или чужими вредоносными программами). Это также позволяет избежать много путаницы, когда кто-то другой работает в вашей системе (или дает вам советы), и они получают неожиданные результаты из команд, которые вы «заменили». – Joe 7 February 2013 в 22:37
  • 2
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:27

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

Откройте папку $HOME. Перейдите в View & rarr; Показать скрытые файлы или нажать Ctrl + H. Щелкните правой кнопкой мыши на .profile и нажмите «Открыть с помощью текстового редактора». Прокрутите страницу вниз и добавьте PATH="$PATH:/my/path/foo". Сохранить. Выйдите из системы и войдите в систему, чтобы применить изменения (пусть Ubuntu фактически загрузит .profile).
44
ответ дан 29 May 2018 в 13:09
  • 1
    Редактирование файла .profile больше не рекомендуется. Вы можете использовать этот метод для редактирования файла .pam_environment см.: help.ubuntu.com/community/EnvironmentVariables – PulsarBlow 19 May 2013 в 09:20
  • 2
    Спасибо @PulsarBlow! Я не совсем уверен, что именно разница и преимущество, хотя ... Это прямой URL-адрес соответствующего раздела: help.ubuntu.com/community/… – dain 20 May 2013 в 17:22
  • 3
    Этот ответ заставил мою систему прекратить вход в систему из-за переопределения всех путей. Использование Ubuntu 16.04. – Frisbetarian 2 March 2017 в 15:27
  • 4
    @Frisbetarian вы должны обязательно добавить бит $PATH:, который включает существующее определение PATH – dain 10 March 2017 в 09:07
  • 5
    @dain: ваш комментарий спас мне жизнь! – Py-ser 27 December 2017 в 23:10

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

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

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

, создавая файл ~/.pam_environment в домашнем каталоге. содержание которых равно PATH DEFAULT=${PATH}:~/android-sdk-linux/tools. дополнительный пользовательский путь пользователя может быть добавлен путем разделения путей с помощью двоеточия (:). это требует повторного входа в систему, а это означает, что вам необходимо выйти из системы и вернуться в рабочую среду.
38
ответ дан 29 May 2018 в 13:09
  • 1
    Это лучший ответ. – Paulo Coghi 22 August 2015 в 16:02
  • 2
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:28

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

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

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

24
ответ дан 29 May 2018 в 13:09
  • 1
    На самом деле, я думал, что вы установили путь либо в $HOME/.profile для личных настроек, либо /etc/profile для всех пользователей. Но если это необходимо только для bash, я полагаю, что либо сработает. – Marty Fried 31 July 2012 в 06:37
  • 2
    Если вы установите его в ~/.bashrc, он будет доступен только в терминалах, которые вы открываете. Например. если вы нажмете Alt + F2 и попробуйте запустить команду из этого каталога, он не найдет его. Если вы установите его в ~/.profile или ~/.pam_environment, сеанс gnome (или какой бы DE вы не использовали) наследует его. Добавление PATH в ~/.bashrc также имеет недостаток: если вы открываете / exec bash интерактивно из другой интерактивной оболочки bash, она будет добавляться несколько раз. – geirha 31 July 2012 в 09:58
  • 3
    Я на самом деле не смотрел на это некоторое время, поэтому я сделал поиск, и кажется, что существует путь по-разному 95 способов, большинство из которых обсуждаются здесь здесь . Я никогда не выяснял, какой из них лучше. Я думаю, что ~/.profile верен для личных путей; вот где Ubuntu добавляет каталог ~/bin. И я признаюсь, что немного преувеличил количество способов - немного. – Marty Fried 31 July 2012 в 10:02
  • 4
    @MartyFried, да, процитировать бота в #bash на freenode: «Подавляющее большинство сценариев bash, кода, учебников и руководств в Интернете - это дерьмо. Осетровый был оптимистом ». Используя Google для проблемы с bash, вы часто найдете много полуработающих решений, прежде чем найти хороший. О, и я поеду с ~/.profile в этом случае тоже. – geirha 31 July 2012 в 10:14
  • 5
    @geirha - Я согласен с тем, что большинство гидов в Интернете в целом, вероятно, дерьмо, особенно что-то вроде linux, поскольку разные дистрибутивы или даже разные версии одного и того же, делают что-то по-другому. Обычно это сводится к тому, что работает, но большинство людей не понимает, что то, что работает, - это просто то, что работает, не обязательно то, что правильно или даже то, что всегда будет работать. Я пытаюсь выяснить, какой из многих способов на самом деле правильный, потому что я ненавижу делать что-то не один раз, но это не всегда легко. :) – Marty Fried 31 July 2012 в 23:50

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

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

14
ответ дан 29 May 2018 в 13:09
  • 1
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:28

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

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

В соответствии с этим потоком он выглядит как хотя поведение Ubuntu немного отличается от RedHat и клонов.

13
ответ дан 29 May 2018 в 13:09
  • 1
    У меня нет .bash_profile, я должен его создать? – justingrif 23 July 2009 в 02:39
  • 2
    Если у вас есть .bashrc, вставьте его в .bashrc. Терминалы GUI в Ubuntu не являются командами входа, поэтому .bash_profile не будет запущен. – user 23 July 2009 в 02:58
  • 3
    Если у вас есть .bashrc, вставьте его в .bashrc. Терминалы GUI в Ubuntu не являются командами входа, поэтому .bash_profile не будет запущен. – user 23 July 2009 в 02:58
  • 4
    Если у вас есть .bashrc, вставьте его в .bashrc. Терминалы GUI в Ubuntu не являются командами входа, поэтому .bash_profile не будет запущен. – user 23 July 2009 в 02:58
  • 5
    Если у вас есть .bashrc, вставьте его в .bashrc. Терминалы GUI в Ubuntu не являются командами входа, поэтому .bash_profile не будет запущен. – user 23 July 2009 в 02:58
  • 6
    Если у вас есть .bashrc, вставьте его в .bashrc. Терминалы GUI в Ubuntu не являются командами входа, поэтому .bash_profile не будет запущен. – user 23 July 2009 в 02:58
  • 7
    Если у вас есть .bashrc, вставьте его в .bashrc. Терминалы GUI в Ubuntu не являются командами входа, поэтому .bash_profile не будет запущен. – user 23 July 2009 в 02:58
  • 8
    У меня нет оболочки gui. Но из потока выше это выглядит так: .bashrc будет работать отлично. – justingrif 23 July 2009 в 03:05
  • 9
    Оба будут работать, если ваша оболочка является оболочкой входа. Но я просто попробовал подход .bash_profile на одной из моих машин Ubuntu, и даже после перезагрузки моего сеанса gnome он не отправил мой .bash_profile. Поэтому я бы сказал, что включение этого в .bashrc - это, вероятно, путь к Ubuntu. – 3dinfluence 23 July 2009 в 07:30
  • 10
    @justingrif Нет, вам не нужно .bash_profile. Если bash не находит .bash_profile (при входе в систему интерактивно), он будет искать .profile и использовать это вместо этого. По умолчанию у вас будут .profile и .bashrc в Ubuntu. И .profile - это правильное место для установки переменных среды, если мы пренебрегаем pam_env. – geirha 2 March 2012 в 18:19
sudo vi /etc/profile.d/SCRIPT_NAME.sh

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

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
8
ответ дан 29 May 2018 в 13:09
  • 1
    sudo nano /etc/profile.d/SCRIPT_NAME.sh легче для новичков. – isomorphismes 10 September 2011 в 06:22
  • 2
    Для новичков gksu gedit /etc/profile.d/SCRIPT_NAME.sh еще проще. – fouric 26 March 2013 в 06:04
  • 3
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:29

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

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

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

8
ответ дан 29 May 2018 в 13:09
  • 1
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:29

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

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

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

BZT

6
ответ дан 29 May 2018 в 13:09
  • 1
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:29

Откройте терминал, введите 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
ответ дан 29 May 2018 в 13:09
  • 1
    Для правильного способа добавления / добавления к $PATH см. askubuntu.com/a/992666/226614 – sancho.s 5 January 2018 в 20:29

Рекомендуемый способ редактирования 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/profile.d. / etc / environment Этот файл специально предназначен для общесистемных параметров среды. Это не файл сценария, а скорее состоит из выражений присваивания, по одному на строку. Примечание. Расширение переменной не работает в / etc / environment.

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

2
ответ дан 29 May 2018 в 13:09
  • 1
    Самый низкий ответ еще самый правильный. Этот файл обычно является автозаполненным bin Ubuntu с помощью пути. – NotoriousPyro 12 October 2017 в 16:33

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

1
ответ дан 29 May 2018 в 13:09

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

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

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

1
ответ дан 29 May 2018 в 13:09
  • 1
    Хотя это теоретически может ответить на вопрос , было бы предпочтительно включить здесь основные части ответа и предоставить ссылку для справки. – Videonauth 12 June 2016 в 23:36
  • 2
    Что нам нужно знать? – Pierre.Vriens 12 June 2016 в 23:52
  • 3
    Ну, вопрос в этом потоке: «Как добавить каталог в мой PATH в Ubuntu и сделать изменения постоянными?», Так что это довольно хорошая подсказка. Кроме того, на странице справки, на которой я предоставил ссылку, есть гораздо более релевантная и полезная информация, относящаяся к добавлению каталогов в путь env, и детализируются различия в различных способах этого, например, добавление каталога в путь для одного пользователя или для всех пользователей и добавления в путь env путем прямого редактирования файла или путем экспорта значения. Если вы хотите узнать больше, просто нажмите эту ссылку и прочитайте. – Bus42 22 June 2016 в 21:50

Даже если системный скрипт не использует это, в любом из случаев, когда нужно добавить путь (например, $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.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset

1
ответ дан 29 May 2018 в 13:09

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

. ~/.bash_profile

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

0
ответ дан 29 May 2018 в 13:09
  • 1
    Downvoted, потому что вы не объяснили, как «отредактировать свой .bash_profile по мере необходимости». Что именно мне нужно сделать с .bash_profile? – isomorphismes 10 September 2011 в 06:17
  • 2
    Это неправильный путь. .profile или .bash_profile должны быть источником .bashrc. А не наоборот. – geirha 2 March 2012 в 18:15

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

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