У мене працює RHEL6, і я експортував змінну середовища на зразок цієї:
export DISPLAY=:0
Ця змінна втрачається, коли термінал закритий. Як я постійно додаю це, щоб це значення змінної завжди існувало у конкретного користувача?
У мене працює RHEL6, і я експортував змінну середовища на зразок цієї:
export DISPLAY=:0
Ця змінна втрачається, коли термінал закритий. Як я постійно додаю це, щоб це значення змінної завжди існувало у конкретного користувача?
Відповіді:
Ви можете додати його до файлу конфігурації оболонки, наприклад, $HOME/.bashrc
або в усьому світі /etc/environment
. Після додавання цих рядків зміни не відобразяться миттєво в системі, заснованій на GUI, вам доведеться вийти з терміналу або створити новий і вийти з сеансу та увійти в систему, щоб відобразити ці зміни.
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
зберігання в
/etc/environment
Стійкі загальносистемні змінні, на які посилаються змінні, такі як
export PATH="$JAVA_PATH:$PATH"
зберігати в
/etc/.bashrc
Постійні змінні специфічні змінні у форматі PATH DEFAULT=/usr/bin:usr/local/bin
зберігання в
~/.pam_environment
Для отримання більш детальної інформації про номер 2, перевірте цю відповідь на запитання Ubuntu . ПРИМІТКА: №3 - рекомендація Ubuntu, але може мати проблеми з безпекою в реальному світі.
Конкретний приклад: у мене встановлені Java 7 і Java 6, мені потрібно запустити деякі збірки з 6, інші - з 7. Тому мені потрібно динамічно змінювати, JAVA_HOME
щоб Maven підбирав те, що я хочу для кожної збірки. Я зробив наступне:
j6.sh
сценарій, який просто робить JAVA_HOME=...
шлях експорту до встановлення j6 ...j6.sh
у відповідному командному терміналі. За замовчуванням моє JAVA_HOME
значення встановлено на J7.Сподіваюся, це допомагає.
Якщо це підходить будь-кому, ось кілька коротких вказівок щодо постійного додавання змінних середовища.
vi ~/.bash_profile
Додайте змінні у файл:
export DISPLAY=:0
export JAVA_HOME=~/opt/openjdk11
Негайно застосуйте всі зміни:
source ~/.bash_profile