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

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

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

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

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

Ответ 1

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

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

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

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

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

source ~/.profile 
or
source ~/.bashrc

Ответ 2

В 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 (aka Z Shell), добавьте эту строку сразу после комментариев в /etc/zsh/zshenv:

source /etc/environment

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

Ответ 3

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

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

Системная ширина

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

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

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

Спецификация для распространения

Ответ 4

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

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

Ответ 5

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

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

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

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

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

Ответ 6

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

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

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

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

source ~/.bash_profile

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

Ответ 7

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

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

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

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

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

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

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

Ответ 8

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

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

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

Ответ 9

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

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

gedit ~/.bashrc

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

export PATH = $ PATH: /opt/node/bin

2.source ~/.bashrc

(Ubuntu)

Ответ 10

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

Ответ 11

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

#vi /etc/profile

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

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

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

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

source /etc/profile

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

Ответ 12

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

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

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

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

Ответ 13

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

Global:

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

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

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

Для перезапуска глобальной. Для локального 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

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

Ответ 14

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

sudo nano /etc/profile

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

Ответ 15

Мой ответ относится к настройке 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-terminal, где мы запускаем код go, берутся из файла ~./bash_rc, а настройки для систем входа в систему взяты из ~/.bash_profile файла и из файла ~/.profile, если файл ~/.bash_profile недоступен.

Ответ 16

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

Ответ 17

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

Ответ 18

Один способ добавить постоянный путь, который работал для меня, это:

    cd /etc/profile.d
    touch custom.sh
    vi custom.sh 
    export PATH=$PATH:/path according to your setting/

перезагрузите компьютер, и здесь мы идем путь будет там постоянно ура.

Ответ 19

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

1.add это в файле ~./bashrc

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

2.source ~/.bashrc

(Ubuntu)

Ответ 20

Быстрая установка с помощью 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 в терминале

Ответ 21

Допустим, вы работаете в MacOS, и у вас есть бинарный файл, которому вы доверяете и который хотите сделать доступным в вашей системе, но не обязательно хотите, чтобы каталог, в который бинарный файл добавлялся в вашу PATH, вы можете выбрать для копирования/перемещения двоичный файл в /usr/local/bin, который уже должен быть в вашем PATH. Это сделает двоичный файл исполняемым, как и любой другой двоичный файл, к которому у вас уже есть доступ в вашем терминале.

Ответ 22

Его можно напрямую добавить с помощью следующей команды:

echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc

Ответ 23

Я только что столкнулся с той же проблемой и вставлю причину, по которой PATH всегда будет reset при переходе. После многих поисковых работ я, наконец, понимаю это пользовательская системная проблема, когда я вижу этот код в файле /etc/passwd:

root:x:0:0:root:/root:/usr/sbin/nologin

Это означает, что эта настраиваемая система отключает оболочку корня bash.
Если вы пробовали каждое решение, но ничего полезного не получали. И вы используете пользовательскую систему, вы можете взглянуть на мою возможную причину.

Ответ 24

Для распределения 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

Ответ 25

На Mac вы можете просто скопировать необходимый файл (исполняемый файл) в /usr/local/bin/