Как навсегда установить $PATH в Linux/Unix?
Я пытаюсь добавить каталог в мой путь, чтобы он всегда был в моем пути Linux. Я пробовал:
export PATH=$PATH:/path/to/dir
Это работает, однако каждый раз, когда я выхожу из терминала и запускаю новый экземпляр терминала, этот путь теряется, и мне нужно снова запустить команду экспорта.
Как я могу сделать это, чтобы это было установлено навсегда?
21 ответ
Вы должны добавить его в свой ~/.profile
или же ~/.bashrc
файл.
export PATH="$PATH:/path/to/dir"
В зависимости от того, что вы делаете, вы также можете использовать символическую ссылку на двоичные файлы:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
Обратите внимание, что это не будет автоматически обновлять ваш путь до конца сеанса. Для этого вы должны запустить:
source ~/.profile
or
source ~/.bashrc
Есть несколько способов сделать это. Фактическое решение зависит от цели.
Значения переменных обычно хранятся либо в списке назначений, либо в сценарии оболочки, который запускается в начале сеанса системы или пользователя. В случае сценария оболочки вы должны использовать специальный синтаксис оболочки.
Система в целом
/etc/environment
Список уникальных заданий. Идеально подходит для добавления системных каталогов, таких как/usr/local/something/bin
вPATH
переменная или определяющаяJAVA_HOME
,/etc/xprofile
Сценарий оболочки выполняется при запуске сеанса X Window System. Это выполняется для каждого пользователя, который входит в систему X Window. Это хороший выбор дляPATH
записи, которые действительны для каждого пользователя, как/usr/local/something/bin
, Файл включен другим скриптом, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки./etc/profile
а также/etc/profile.d/*
Сценарий оболочки. Это хороший выбор для систем только с оболочкой. Эти файлы читаются только оболочками./etc/<shell>.<shell>rc
, Сценарий оболочки. Это плохой выбор, потому что он специфичен для отдельной оболочки.
Сессия пользователя
~/.pam_environment
, Список уникальных заданий. Загружается PAM в начале каждого пользовательского сеанса, не имеет значения, если это сеанс или оболочка X Window System. Вы не можете ссылаться на другую переменную, включаяHOME
или жеPATH
поэтому он имеет ограниченное использование.~/.xprofile
Сценарий оболочки. Это выполняется, когда пользователь входит в систему X Window System. Переменные, определенные здесь, видны каждому приложению X. Идеальный выбор для расширенияPATH
с такими значениями, как~/bin
или же~/go/bin
или определение конкретного пользователяGOPATH
или жеNPM_HOME
, Файл включен другим скриптом, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки. Ваш графический текстовый редактор или IDE, запущенная с помощью ярлыка, увидит эти значения.~/.profile
Сценарий оболочки. Он будет виден только для программ, запущенных из терминала или эмулятора терминала. Это хороший выбор для систем только с оболочкой.~/.<shell>rc
, Сценарий оболочки. Это плохой выбор, потому что он специфичен для отдельной оболочки.
Распространение специальной документации
В 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
(он же Z Shell), добавьте эту строку сразу после комментариев в /etc/zsh/zshenv
:
source /etc/environment
Я столкнулся с этой маленькой причудой на Ubuntu 15.10, но если ваш zsh не получает правильный PATH, возможно, поэтому
Положить export
декларация в ~/.bashrc
, Мой.bashrc содержит это:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
Вы можете установить $PATH
навсегда 2 способами.
Чтобы установить путь для конкретного пользователя: Вам может потребоваться сделать запись в
.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
Вы можете использовать на Centos или RHEL для локального пользователя:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
Это добавляет текущий каталог (или вы можете использовать другой каталог) к PATH, это делает его постоянным, но вступает в силу при следующем входе пользователя.
Если вы не хотите делать повторный вход в систему, то можете использовать:
source ~/.bash_profile
Это перезагрузить # User specific environment and startup programs
этот комментарий присутствует в .bash_profile
Вы также можете установить навсегда, отредактировав один из этих файлов:
/etc/profile
(для всех пользователей)
~/.bash_profile
(для текущего пользователя)
~/.bash_login
(для текущего пользователя)
~/.profile
(для текущего пользователя)
Вы также можете использовать /etc/environment
установить постоянную переменную среды PATH, но она не поддерживает расширение переменной.
Извлечено из: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
1. измените файл "/etc/profile".
#vi /etc/profile
Нажмите клавишу "i", чтобы войти в статус редактирования и переместить курсор в конец файла, Дополнительные записи:
export PATH=$PATH:/path/to/dir;
Нажмите клавишу "Esc", чтобы выйти из режима редактирования, ":wq" сохранить файл.
2. сделать конфигурацию эффективной
source /etc/profile
Объясните: файл профиля работает для всех пользователей, если вы хотите быть действительным только для активного пользователя, установите файл ".bashrc"
Я думаю, что самый элегантный способ это:
1. добавить это в файл ~/.bashrc.
Gedit ~/.bashrc
добавь свой путь в него
экспорт PATH = $ PATH: / opt / node / bin
2. источник ~/.bashrc
(Ubuntu)
Я наткнулся на этот вопрос вчера, когда искал способ добавить папку, содержащую мои собственные сценарии, в 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
и положил мои сценарии там.
Вы можете добавить эту строку в ваш конфигурационный файл консоли (например,.bashrc) или в.profile
После стольких исследований я нашел для этого простое решение (я использую elementary OS), вдохновленное следующей ссылкой.
Выполните следующую команду, чтобы открыть файл.bashrc в режиме редактирования. [Вы также можете использовать vi или любой другой редактор].
~$ sudo nano ~/.bashrc
Добавьте следующую строку в конец файла и сохраните.
export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"
Например:
export PATH="/home/rageshl/dev/flutter/bin:$PATH"
Я считаю, что это постоянное решение для установки нестабильного пути в дистрибутиве Ubuntu.
Надеюсь, это поможет.
Один из способов добавить постоянный путь, который работал для меня, это: cd /etc/profile.d touch custom.sh vi custom.sh export PATH=$PATH:/ путь в соответствии с вашими настройками / перезагрузите компьютер, и здесь мы идем путь будет там постоянно ура
Постоянно добавить переменную PATH
Глобальный:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
Локальный (только для пользователя):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
Для глобального перезапуска. Для местного релогина.
пример
До:
$ 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'... И, кстати, ключевое слово export, скорее всего, бесполезно, поскольку переменная PATH, скорее всего, уже помечена как экспортированная. - gniourf_gniourf
Его можно напрямую добавить с помощью следующей команды:
echo 'export PATH = $ PATH: / new / directory' >> ~ /.zshrc source ~ /.zshrc
Добавить в /etc/profile.d
Скрипт папки [name_of_script].sh
со строкой: export PATH=$PATH:/dir
, Каждый сценарий в /etc/profile.d
папка автоматически выполняется /etc/profile
при входе
Мой ответ связан с настройкой 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
файл недоступен
Допустим, вы используете MacOS, и у вас есть двоичный файл, которому вы доверяете и который вы хотели бы сделать доступным в вашей системе, но не обязательно хотите, чтобы каталог, в котором двоичный файл должен быть добавлен в ваш PATH, вы можете выбрать копирование / перемещение двоичный файл /usr/local/bin
, который уже должен быть в вашем PATH. Это сделает двоичный исполняемый файл таким же, как и любой другой двоичный файл, к которому у вас уже может быть доступ в вашем терминале.
Zues77 имеет правильную идею. ОП не сказал "как я могу взломать мой путь через это". ОП хотел знать, как постоянно добавлять в $PATH:
sudo nano /etc/profile
Это место, где он установлен для всего и является лучшим местом, чтобы изменить его для всех вещей, нуждающихся в $ PATH
Это однострочный. Он добавляет строку в.bashrc
. Эта строка проверяет, был ли каталог уже добавлен к пути, и добавляет, если нет. Это предотвратит дублирование вашего каталога в пути каждый раз, когда вы исходите.bashrc
.
echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc
source ~/.bashrc
Файлы, в которые вы добавляете команду экспорта, зависят от того, находитесь ли вы в режиме входа в систему или не в режиме входа в систему.
если вы находитесь в режиме входа в систему, то файлы, которые вы ищете, это / etc / bash или /etc/bash.bashrc
если вы не в режиме входа в систему, вы ищете файл /.profile или файлы в каталоге /.profiles.d
файлы, упомянутые выше, если где системные переменные.
Я думаю, что самый элегантный способ это:
1.Добавьте это в файл ~./ Bashrc
if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2. источник ~ /.bashrc
(Ubuntu)
Лучший простой способ - следующая строка:PATH="<directory you want to include>:$PATH"
в вашем файле.bashrc в домашнем каталоге.
Сброс не произойдет, даже если вы закроете терминал или перезагрузите компьютер. Его постоянный
Быстрая установка с использованием Homebrew
проверить это видео
или же
шаги ниже
Step 1:
Откройте https://brew.sh/
Скопируйте 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
в терминале
Для распространения 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