Командная строка Linux
Шрифт:
Окружение содержит довольно много переменных, и хотя ваше окружение может отличаться от представленного здесь, вы почти наверняка увидите у себя переменные, перечисленные в табл. 11.1.
Таблица 11.1. Переменные окружения
Переменная
Содержит
DISPLAY
Имя вашего дисплея, если вы работаете в графическом окружении. Обычно это :0, что означает первый дисплей, сгенерированный X сервером
EDITOR
Имя программы, используемой в качестве текстового редактора
SHELL
Имя программы
HOME
Путь к домашнему каталогу
LANG
Определяет набор символов и порядок сортировки для вашего языка
OLD_PWD
Предыдущий рабочий каталог
PAGER
Имя программы для постраничного просмотра. Часто имеет значение /usr/bin/less
PATH
Список каталогов, разделенных двоеточием, в которых производится поиск выполняемых программ по их именам
PS1
Строка приглашения к вводу № 1. Определяет содержимое строки приглашения к вводу в командной оболочке. Как будет показано позднее, эту строку можно менять весьма существенно
PWD
Текущий рабочий каталог
TERM
Тип терминала. Unix-подобные системы поддерживают множество протоколов для работы с терминалами; эта переменная определяет протокол, который будет использоваться при обмене данными с эмулятором терминала
TZ
Определяет часовой пояс. В большинстве Unix-подобных систем внутренние часы компьютера устанавливаются в координированное универсальное время (Coordinated Universal Time, UTC), а при выводе значения времени к нему добавляется смещение, определяемое этой переменной
USER
Имя пользователя
Не волнуйтесь, если какие-то переменные у вас отсутствуют. Они могут отличаться в разных дистрибутивах.
Как устанавливается окружение?
Когда мы входим в систему, запускается программа bash и читает содержимое серии конфигурационных сценариев, называемых файлами запуска (startup files), где определяется окружение по умолчанию, общее для всех пользователей. Затем она читает дополнительные файлы запуска в вашем домашнем каталоге, где определяется личное окружение. Точная последовательность обработки файлов зависит от типа запускаемого сеанса командной оболочки.
Оболочка входа и простая оболочка
Сеансы работы с командной оболочкой входа могут быть двух типов: сеанс командной оболочки входа (login shell session) и сеанс простой командной оболочки (non-login shell session).
Сеанс командной оболочки входа (login shell session) — это сеанс, который на входе запрашивает имя пользователя и пароль, например, когда вход выполняется в виртуальной консоли. Сеанс простой командной оболочки (non-login shell session) обычно начинается, когда запускается терминал в графическом окружении.
Командные оболочки входа читают один или несколько файлов запуска, перечисленных в табл. 11.2.
Обычные сеансы командной оболочки читают файлы, перечисленные в табл. 11.3.
Помимо
Таблица 11.2. Файлы запуска для сеансов командной оболочки входа
Файл
Содержит
/etc/profile
Общесистемный конфигурационный сценарий, настройки из которого применяются для всех пользователей
~/.bash_profile
Личный пользовательский файл запуска. Может использоваться для расширения и/или переопределения общесистемных настроек
~/.bash_login
Если файл ~/.bash_profile присутствует в домашнем каталоге, bash пытается прочитать его
~/.profile
Если в домашнем каталоге нет ни ~/.bash_profile, ни ~/.bash_login, bash пытается прочитать этот файл. Используется по умолчанию в дистрибутивах на основе Debian, таких как Ubuntu
Таблица 11.3. Файлы запуска для обычных сеансов командной оболочки
Файл
Содержит
/etc/bash.bashrc
Общесистемный конфигурационный сценарий, настройки из которого применяются для всех пользователей
~/.bashrc
Личный пользовательский файл запуска. Может использоваться для расширения и/или переопределения общесистемных настроек
Загляните в свою систему и посмотрите, какие файлы запуска у вас имеются. Помните: поскольку большинство имен файлов из перечисленных выше начинается с точки (такие файлы считаются скрытыми), при использовании команды ls ей необходимо передавать параметр -a.
С точки зрения обычного пользователя, файл ~/.bashrc является, пожалуй, самым важным файлом запуска, потому что его содержимое читается практически всегда. Обычные командные оболочки читают его по умолчанию, а большинство файлов запуска для командных оболочек входа написаны так, что оболочка также прочитает файл ~/.bashrc.
Что находится в файлах запуска?
Если заглянуть внутрь типичного файла .bash_profile (взятого из системы CentOS-4), можно увидеть следующее:
# .bash_profile
# Загрузить псевдонимы и функции
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# Определение пользовательского окружения и запуск программ
PATH=$PATH:$HOME/bin
export PATH
Строки, начинающиеся с #, — это комментарии, они не читаются командной оболочкой, а предназначены для человека. Первый интересный фрагмент начинается в четвертой строке: