it-swarm.com.ru

Как навсегда установить $ PATH в Linux/Unix?

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

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

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

Как я могу сделать это, чтобы это было установлено навсегда?

742
Click Upvote

Вы должны добавить его в свой файл ~/.profile или ~/.bashrc.

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

В зависимости от того, что вы делаете, вы также можете использовать символическую ссылку на двоичные файлы:

cd /usr/bin
Sudo ln -s /path/to/binary binary-name

Обратите внимание, что это не будет автоматически обновлять ваш путь до конца сеанса. Для этого вам нужно запустить:

source ~/.profile 
or
source ~/.bashrc
884
mpowered

В Ubuntu отредактируйте /etc/environment. Его единственная цель - хранить переменные среды. Первоначально здесь определяется переменная $ PATH. Это вставка из моего файла /etc/environment:

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

Таким образом, вы можете просто открыть этот файл как root и добавить все, что захотите.

Для немедленных результатов Запустите (попробуйте как обычный пользователь и root):

source /etc/environment && export PATH

Обновление:

Если вы используете zsh (a.k.a Z Shell), добавьте эту строку сразу после комментариев в /etc/zsh/zshenv:

source /etc/environment

Я столкнулся с этой маленькой причудой в Ubuntu 15.10, но если ваш zsh не получает правильныйПУТЬ, это может быть причиной

220
trve.fa7ad

Есть несколько способов сделать это. Фактическое решение зависит от цели.

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

Система в целом

  1. /etc/environment Список уникальных заданий. Идеально подходит для добавления общесистемных каталогов, таких как /usr/local/something/bin, в переменную PATH или определения Java_HOME.
  2. /etc/xprofile Сценарий оболочки, выполняемый при запуске сеанса X Window System. Это выполняется для каждого пользователя, который входит в систему X Window. Это хороший выбор для записей PATH, которые действительны для каждого пользователя, например /usr/local/something/bin. Файл включен другим скриптом, поэтому используйте синтаксис POSIX Shell, а не синтаксис вашей пользовательской оболочки.
  3. /etc/profile и /etc/profile.d/* сценарий оболочки. Это хороший выбор для систем только с оболочкой. Эти файлы читаются только оболочками.
  4. /etc/<Shell>.<Shell>rc. Сценарий оболочки. Это плохой выбор, потому что он специфичен для отдельной оболочки.

Сессия пользователя

  1. ~/.pam_environment. Список уникальных заданий. Загружается PAM в начале каждого пользовательского сеанса, не имеет значения, если это сеанс X Window System или Shell. Вы не можете ссылаться на другую переменную, включая HOME или PATH, поэтому она имеет ограниченное использование.
  2. ~/.xprofile сценарий оболочки. Это выполняется, когда пользователь входит в систему X Window System. Определенные здесь переменные видны каждому приложению X. Идеальный выбор для расширения PATH такими значениями, как ~/bin или ~/go/bin, или для определения пользовательских GOPATH или NPM_HOME. Файл включен другим скриптом, поэтому используйте синтаксис POSIX Shell, а не синтаксис вашей пользовательской оболочки. Ваш графический текстовый редактор или IDE, запущенный с помощью ярлыка, увидит эти значения.
  3. ~/.profile сценарий оболочки. Он будет виден только для программ, запущенных из терминала или эмулятора терминала. Это хороший выбор для систем только с оболочкой.
  4. ~/.<Shell>rc. Сценарий оболочки. Это плохой выбор, потому что он специфичен для отдельной оболочки.

Распространение специальной документации

132
Grzegorz Żur

Поместите объявление export в ~/.bashrc. Мой .bashrc содержит это:

export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
68
Fraxtil

Вы можете установить $PATH навсегда двумя способами.

  1. Чтобы задать путь для конкретного пользователя: Вам может потребоваться сделать запись в .bash_profile в домашнем каталоге пользователя.

    например, в моем случае я установлю путь Java в профиле пользователя Tomcat

    [Tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/Tomcat/.bash_profile
    
  2. Чтобы установить общий путь для ВСЕХ пользователей системы, вам может потребоваться установить путь следующим образом:

    [root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
    
29
Mohit M

Вы можете использовать на Centos или RHEL для локального пользователя:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

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

Если вы не хотите делать повторный вход в систему, то можете использовать:

source ~/.bash_profile

Это перезагрузить # User specific environment and startup programs этот комментарий присутствует в .bash_profile

10

Вы можете добавить эту строку в файл конфигурации консоли (например, .bashrc) или в .profile.

6
aqua

Я думаю, что самый элегантный способ это:

1.Добавьте это в файл ~/.bashrc Запустите эту команду

gedit ~/.bashrc

добавь свой путь в него 

экспорт PATH = $ PATH:/opt/node/bin

2. источник ~/.bashrc

(Ubuntu)

6
Himanshu sharma

Вы также можете установить навсегда, отредактировав один из этих файлов:

/etc/profile (для всех пользователей)

~/.bash_profile (для текущего пользователя)

~/.bash_login (для текущего пользователя)

~/.profile (для текущего пользователя)

Вы также можете использовать /etc/environment для установки постоянной переменной среды PATH, но она ​​не поддерживает расширение переменной

Извлечено из: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html

6
Delucaramos

Вчера я наткнулся на этот вопрос, когда искал способ добавить папку, содержащую мои собственные сценарии, в PATH - и был удивлен, обнаружив, что мой собственный файл ~/.profile (в Linux Mint 18.1) уже содержал это: 

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

Таким образом, все, что мне нужно было сделать, это создать папку ~/bin и поместить туда свои скрипты.

5
RobertG

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

если вы находитесь в режиме входа в систему, то файлы, которые вы ищете, это/etc/bash или /etc/bash.bashrc

если вы не в режиме входа в систему, вы ищете файл /.profile или файлы в каталоге /.profiles.d

файлы, упомянутые выше, если где системные переменные.

3
Dikinha

Zues77 имеет правильную идею. ОП не сказал «как я могу взломать мой путь через это». ОП хотел знать, как постоянно добавлять $ PATH:

Sudo nano /etc/profile

Здесь он установлен для всего и является лучшим местом для изменения всего, что требует $ PATH.

3
Joe D

Мой ответ связан с настройкой go-lang на Ubuntu linux/AMD64. Я столкнулся с той же проблемой, что и установка пути переменных среды (GOPATH и GOBIN), потеря его при выходе из терминала и повторная сборка с использованием source <file_name> каждый раз. Ошибка должен был поместить путь (GOPATH и GOBIN) в папку ~/.bash_profile. Потратив несколько хороших часов, я обнаружил, что решение было поместить GOPATH и GOBIN в файл ~/.bash_rc следующим образом:

export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN

и при этом установка go работала нормально и не было потерь в пути. 

Правка 1: Причина, по которой может быть связана эта проблема, заключается в том, что настройки для не входящих в систему оболочек, таких как ваш терминал ubuntu или gnome-терминал, где мы запускаем код go, взяты из файла ~./bash_rc, а настройки для оболочек входа в систему берутся из файла ~/.bash_profile и из файла ~/.profile, если файл ~/.bash_profile недоступен. 

3
Abhiroj Panwar

Добавить в папку /etc/profile.d скрипт [name_of_script].sh со строкой: export PATH=$PATH:/dir. Каждый скрипт в папке /etc/profile.d автоматически выполняется /etc/profile при входе в систему.

2
Iurii

Постоянно добавить переменную PATH

Глобальный:

echo "export PATH=$PATH:/new/path/variable" >> /etc/profile

Локальный (только для пользователя):

echo "export PATH=$PATH:/new/path/variable" >> ~/.profile

Для global restart. Для локальный relogin.

Пример

До:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

После:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Или вы можете просто отредактировать профиль:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Другой способ (спасибо gniourf_gniourf):

echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

Вы не должны использовать двойные кавычки здесь! echo 'export PATH = $ PATH:/new/path/variable' ... И, кстати, ключевое слово экспорта , скорее всего, бесполезно, поскольку переменная PATH, скорее всего, уже помечены как экспортированные. - gniourf_gniourf

2
user3439968

Я думаю, что самый элегантный способ это:

1.Добавьте это в ~./Bashrc file

if [ -d "new-path" ]; then
  PATH=$PATH:new-path
fi

2.source ~/.bashrc

(Ubuntu)

1
Gimcuan Hui

Быстрая установка с использованием Homebrew

проверить это видео

или же 

шаги ниже

Step 1:

Открыть https://brew.sh/

 enter image description here

Копировать_ URL, показанный в скриншот выше

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Вставитьскопировать URLв терминали нажать клавишу возврата/ввода)

После того, как вы сделалис Установка Homebrewвыполните Шаг 2:

Step 2:Загрузить terraformиз https://www.terraform.io/downloads.html

извлечьзагружено Zip файл Terraform 

Теперь у вас будет одно имя файла terraform в загруженной папке

Например

/Users/username/downloads/terraform

Step 3:

Откройте terminal

cd: изменить каталог на /Users/username/downloads/terraform

Step 4:

запуститьbrew install terraform в терминал

1
Munish Kapoor

лучший простой способ - следующая строка:
PATH="<directory you want to include>:$PATH"
в вашем .bashrc файле в домашнем каталоге.
Сброс не произойдет, даже если вы закроете терминал или перезагрузите компьютер. Его постоянный

1
Edward Torvalds

Для распространения Debian вы должны:

    - edit ~/.bashrc  e.g: vim ~/.bashrc 
    - add export PATH=$PATH:/path/to/dir
    - then restart your computer. Be aware that if you edit ~/.bashrc  as root, your environment variable you added will work only for root
0
onlyme

один из способов добавить постоянный путь, который работал для меня, это: cd /etc/profile.d touch custom.sh vi custom.sh export ПУТЬ = $ ПУТЬ:/путь в соответствии с вашими настройками / Перезагрузите компьютер, и здесь мы идем путь будет там постоянно Приветствия.

0
user6393373

1. измените файл "/ etc/profile".

#vi /etc/profile

Нажмите клавишу «i», чтобы войти в статус редактирования и переместить курсор в конец файла, Дополнительные записи:

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

Нажмите клавишу «Esc», чтобы выйти из режима редактирования, «: wq» сохранить файл.

2. сделать конфигурацию эффективной

source /etc/profile

Объясните: Файл профиля работает для всех пользователей, если вы хотите быть действительным только для активного пользователя, установите файл ".bashrc"

0
Jia