Как навсегда установить $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

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

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

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

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

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

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

  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
    

Вы можете использовать на 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
Другие вопросы по тегам