Я использую RHEL6, и я экспортировал переменную среды, как это:
export DISPLAY=:0
Эта переменная теряется при закрытии терминала. Как я могу добавить это навсегда, чтобы это значение переменной всегда существовало для конкретного пользователя?
Я использую RHEL6, и я экспортировал переменную среды, как это:
export DISPLAY=:0
Эта переменная теряется при закрытии терминала. Как я могу добавить это навсегда, чтобы это значение переменной всегда существовало для конкретного пользователя?
Ответы:
Вы можете добавить его в свой файл конфигурации оболочки, например, $HOME/.bashrc
или более глобально в /etc/environment
. После добавления этих строк изменения не будут мгновенно отражаться в системе, основанной на графическом интерфейсе, вам необходимо выйти из терминала или создать новый, а на сервере выйти из сеанса и войти в систему, чтобы отразить эти изменения.
source
например, - > source ~/.bashrc
.
export
, но попробуйте с отладчиком
Вы должны отредактировать три файла, чтобы установить постоянную переменную среды следующим образом:
Обычно вы должны перезагрузить компьютер, чтобы применить эти изменения. Но вы можете применить изменения в bashrc и профиле с помощью этих команд:
$ source ~/.bashrc
$ source ~/.profile
Но для / etc / environment у вас нет выбора, кроме перезапуска (насколько я знаю)
#!/bin/bash
echo "Enter variable name: "
read variable_name
echo "Enter variable value: "
read variable_value
echo "adding " $variable_name " to environment variables: " $variable_value
echo "export "$variable_name"="$variable_value>>~/.bashrc
echo $variable_name"="$variable_value>>~/.profile
echo $variable_name"="$variable_value>>/etc/environment
source ~/.bashrc
source ~/.profile
echo "do you want to restart your computer to apply changes in /etc/environment file? yes(y)no(n)"
read restart
case $restart in
y) sudo shutdown -r 0;;
n) echo "don't forget to restart your computer manually";;
esac
exit
Сохраните эти строки в shfile, затем сделайте его исполняемым и просто запустите его!
chmod -x insert_var.sh
, затем bash insert_var.sh
. Спасибо.
В системах Ubuntu используйте следующие места:
Общесистемные постоянные переменные в формате JAVA_PATH=/usr/local/java
store in
/etc/environment
Общесистемные постоянные переменные, которые ссылаются на такие переменные, как
export PATH="$JAVA_PATH:$PATH"
хранилище в
/etc/.bashrc
Пользовательские постоянные переменные в формате PATH DEFAULT=/usr/bin:usr/local/bin
магазина в
~/.pam_environment
Для получения более подробной информации о # 2, проверьте этот ответ Ask Ubuntu . ПРИМЕЧАНИЕ: № 3 является рекомендацией Ubuntu, но может иметь проблемы с безопасностью в реальном мире.
Конкретный пример: у меня установлены Java 7 и Java 6, мне нужно запустить некоторые сборки с 6, другие с 7. Поэтому мне нужно динамически изменять, JAVA_HOME
чтобы maven выбирал то, что я хочу для каждой сборки. Я сделал следующее:
j6.sh
скрипт, который просто экспортирует JAVA_HOME=...
путь в j6 ...j6.sh
в соответствующем командном терминале. По умолчанию для my JAVA_HOME
установлено значение J7.Надеюсь это поможет.
Если это кому-то подходит, вот несколько кратких рекомендаций по постоянному добавлению переменных среды.
vi ~/.bash_profile
Добавьте переменные в файл:
export DISPLAY=:0
export JAVA_HOME=~/opt/openjdk11
Немедленно примените все изменения:
source ~/.bash_profile