Вы можете сделать это, просто объявив его как новый в командной строке или повторно объявив его. Например, если вы хотите добавить ~/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).