Когда пользователь входит в систему, используется файл конфигурации /etc/profile. Этот файл определяет настройки среды для всех пользователей при входе в систему. Он также может включать команды, которые необходимо выполнить при первом входе пользователя в компьютер. Кроме файла /etc/profile в системе также может иметься файл .profile, который можно создать в домашнем каталоге пользователя и который определяет настройки только для текущего пользователя. Файл .profile выполняется последним, поэтому в случае конфликта настроек между двумя файлами всегда будут использоваться настройки, специфичные для пользователя.
Кроме того, когда пользователь запускает консоль из текущей среды, применяются еще один файл конфигурации — /etc/bashrc, а также его версия для конкретного пользователя - ~/.bashrc.
В некоторых дистрибутивах самая важная часть настроек оболочки по умолчанию находится в /etc/profile и .profile, другие дистрибутивы используют /etc/bashrc и .bashrc для хранения этих настроек. Во многих дистрибутивах команда /etc/profile включает в себя исходный код /etc/bashrc. Поэтому если необходимо, чтобы при входе в систему и при запуске терминала применялись какие-то настройки, то можно определить их в файлах /etc/bashrc и .bashrc.
После внесения изменений в эти файлы конфигурации их новые настройки надо активировать. Для этого можно использовать команду source или . (точка):
source ~/.bashrc . ~/.bashrc
Переменная представляет некоторое значение, которое используется оболочкой достаточно часто и сохраняется под именем. Многие системные переменные доступны с момента загрузки системы, но также можете установить переменные самостоятельно.
Для получения переменных применяется команда env:
eugene@Eugene:~$ env SHELL=/bin/bash QT_ACCESSIBILITY=1 COLORTERM=truecolor GNOME_SHELL_SESSION_MODE=ubuntu DESKTOP_SESSION=ubuntu GTK_MODULES=gail:atk-bridge PWD=/home/eugene XDG_SESSION_DESKTOP=ubuntu XDG_SESSION_TYPE=wayland HOME=/home/eugene USERNAME=eugene LANG=en_US.UTF-8 WAYLAND_DISPLAY=wayland-0 USER=eugene GNOME_TERMINAL_SERVICE=:1.221 DISPLAY=:0 SHLVL=1 QT_IM_MODULE=ibus PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games eugene@Eugene:~$
Обычно переменные автоматически загружаются при входе в систему. Наиболее важным источником новых переменных является файл /etc/profile — скрипт, который обрабатывается для каждого пользователя, входящего в систему. Для установки новой переменной для всех пользователей системы эта переменная добавляется в конец файла /etc/profile.
Если надо установить переменную только для текущего пользователя, то в домашнем каталоге пользователя (каталог home) создается файл .profile (если он отсутствует), и в конец этого файла добавляется переменная. Этот файл работает как дополнение к файлу /etc/profile
Альтернативой файлу /etc/profile
является /etc/bashrc. Этот файл обрабатывается, когда пользователь открывает новое окно терминала.
Этот файл также имеет аналог в домашних каталогах пользователей с именем .bashrc. Некоторые дистрибутивы Linux хранят все переменные и другие настройки
оболочки только в файле .bashrc, а также считывают этот файл из /etc/profile
, чтобы гарантировать, что настройки выполняются при входе пользователей в систему.
Для отображения переменной вызывается команда echo, которой передается имя переменной, предваряемое символом $:
eugene@Eugene:~$ echo $LANG en_US.UTF-8 eugene@Eugene:~$ echo $USER eugene eugene@Eugene:~$
Для установки новой переменной мы можем присвоить имени переменной некоторое значение и вывести ее в соответствующий файл, например, в .bashrc:
echo HELLO=Hello_METANIT.COM >> ~/.bashrc
Для немедленного применения изменений введем команду
source ~/.bashrc
И проверим переменную HELLO
eugene@Eugene:~$ echo $HELLO Hello_METANIT.COM eugene@Eugene:~$