На функциональность и защищенность процесса влияют переменные окружения. Они упрощают пользователю настройку программы без изменения способа ее вызова. Запустив set без опций, можно увидеть все определённые на данный момент переменные окружения вместе с их значениями. Получить список переменных окружения оболочки можно также командой printenv. Будет выведен большой список переменных и их значений (на рис. 2.4 он значительно сокращен):
Рис. 2.4. Сокращенный список переменных окружения и их значений
Переменные окружения можно также прочитать в файлах environ, хранимых в нумерованных подкаталогах активных процессов в директории /proc. В качестве разделителя записей используются NULL-символы, и, чтобы представить их в удобной для чтения форме, следует применить конвейер из двух команд:
cat /proc/3456/environ|tr ”\0” ”\n”
Вторая команда заменяет нулевые разделители переводом строки.
Изменить переменную окружения можно несколькими способами, например:
HOME=/tmp
export HOME=/tmp
Во втором случае переменная становится глобальной и «видимой» другим процессам. Иначе говоря, переменная интерпретатора экспортируется в переменную среды. С помощью команды export переменная окружения не только объявляется, но ей присваивается определённое значение. Если переменная не существует, она будет создана. Если переменная уже имеет какое-то значение, оно будет потеряно.
Изменение значения переменной действительно в течение сеанса. Чтобы присвоить значения переменным окружения постоянно, их следует записать в конфигурационный файл /etc/profileдля всех пользователей системы или~/.bash_profileдля конкретного пользователя. Чтение значений переменных из этих файлов происходит при загрузке системы или при авторизации пользователей.
Узнать значение конкретной переменной также можно несколькими способами: