Вы можете сделать это, просто объявив его как новый в командной строке или повторно объявив его. Например, если вы хотите добавить ~/testfolder
к своей переменной path, вы можете просто ввести ее в свой текущий терминал (это только пример):
PATH="$HOME/testfolder:$PATH"
Это, конечно, изменит его только на время, когда вы сказали, что терминальная сессия открыта. Обратите внимание на $
использование здесь, вы оставляете его для объявления, но если вы хотите отобразить его, вам нужно добавить его, $
чтобы расширить его содержимое.
Если вы хотите объявить их более продолжительными и общими, вы можете добавить их в свой ~/.bashrc
(только для вас) файл или в /etc/bash.bashrc
(в масштабе всей системы), например, если вы хотите, чтобы они учитывались только для вас или для всех пользователей. Другой вариант - добавить его в свой .profile
файл (только для себя), где он будет жизнеспособным с момента входа в систему. Это можно сделать, echo
например, если вы уверены, что эта переменная еще не установлена или если вы создаете новые (только пример):
echo "variable=value" >> /path/filename
Однако если вы хотите отредактировать файл за пределами своего пользовательского каталога, то есть тот случай, когда вы хотите отредактировать /etc/bash.bashrc
его, sudo
поэтому вам нужно просто использовать «здесь документ», так как это не сработает, вместо этого используйте строку, как показано ниже:
echo "variable=value" | sudo tee -a /path/filename
Если переменная уже существует, вы можете изменить ее с помощью sed
команды (также только в качестве примера):
sed -i.bak 's/variable=value/variable=new-value/' /path/filename
Это отредактирует переменную в файле, но создаст ее резервную копию до редактирования. Если вы изменяете файлы вне вашей пользовательской директории с помощью sed, вам нужно использовать их sudo
в большинстве случаев, поэтому строка будет выглядеть так:
sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename
Удаление переменной из файла также может быть сделано sed
, просто оставьте вторую часть регулярного выражения пустой:
sed -i.bak 's/variable=value//' /path/filename
Если вас интересует, какие переменные среды установлены, вы можете использовать env
команду для их перечисления ( set -o posix ; set ) | less
или sh -c set
. Все три дают различное количество продукции, ( set -o posix ; set ) | less
возвращая большинство переменных, которые фактически установлены.
( set -o posix ; set )
этого проще сказатьsh -c set
. Это будет работать, даже еслиsh
это символическая ссылкаbash
(что обычно не в современных версиях Ubuntu).