Переменные окружения в оболочке.

Запущенная оболочка хранит в переменных множество важной информации: путь для поиска, текущий каталог, предпочитаемый текстовый редактор, даже настраиваемое приветствие командной строки и многое другое. Переменные запущенной командной оболочки в совокупности называются окружением.

Для просмотра определенных переменных в системе можно использовать команду printenv. Например, чтобы увидеть значение переменной HOME, которая хранит путь к домашней директории пользователя, можно использовать следующую команду

Запуск этой команды без аргументов покажет вам все, определенные в системе, переменные.

Командная оболочка подставляет на место имени переменной ее значение. Чтобы оболочка знала, что это переменная, необходимо перед ее именем поставить знак ‘$‘. Например $HOME, $USER и т.д.

Самый простой способ увидеть, как оболочка обрабатывает командную строку, использовать команду echo

Предопределенные переменные.

Некоторые переменные предопределены оболочкой. Их значения устанавливаются автоматически при входе в систему. Имена таких переменных традиционно написаны заглавными буквами. Некоторые из них указаны в таблице ниже.

ПеременнаяЗначение
HOMEХранит значение пути к домашней директории пользователя.
USERХранит значение имени пользователя.
PATHХранит значение путей к исполняемым файлам.
PS1Шаблон приглашения командной строки
EDITORХранит значение текстового редактора по умолчанию
HISTSIZEМаксимальное число хранимых команд в истории
HSITFILEХранит имя файла для записи bash history
HSITFILESIZEКоличество команд, хранящихся в файле журнала в данный момент
HISTCONTROLОпределяет параметр хранения дубликатов команд в истории
‘ignoredups‘ — не записывать дубликаты
erasedups’ — удалить дубликаты
‘ignorespace’ — не отображать в истории команды, начинающиеся с пробела.
HISTIGNOREПозволяет не регистрировать в истории определенные команды
PWDТекущий каталог

Переменная $PATH.

Когда оболочка впервые встречает какую-либо команду, например ls, то она должна понимать какой именно исполняемый файл ей необходимо запустить. И именно, то место где искать исполняемый файл и хранится в переменной PATH.

Каталоги для поиска разделяются двоеточиями (:). Для большей наглядности, давайте преобразуем их в переводы строки, передав команде tr, которая заменяет символы.

Оболочка просматривает все эти каталоги в порядке их перечисления и ищет в каком из них лежит нужный исполняемый файл. Поэтому, если есть программы с одинаковыми названиями, расположенные в разных каталогах, например, /usr/bin/ls и /bin/ls, оболочка запустит тот файл, который найдет первым.

Примечание.
Ну и еще такой нюанс, когда оболочка ищет команду по имени, она прежде всего проверяет, является ли это имя псевдонимом. Именно, поэтому псевдоним «затеняет» команду с таким же именем, так как имеет более высокий приоритет.

Чтобы найти программу в списке каталогов, можно использовать команду which.

или встроенную в оболочку более мощную и информативную команду type, которая также находит псевдонимы, функции и встроенные в оболочку команды.

Определение своих переменных.

Переменные в оболочке можно переопределить, а так же создать свои в любое время. Сделать это можно, используя следующий синтаксис:

имя_переменной=значение_переменной

Например, если вы часто работаете с каталогом ‘/home/user/Documents‘, вы может присвоить его путь имени переменной

Теперь эту переменную можно использовать в качестве удобного сокращения, например при использовании команды ‘cd‘.

Так же можно передавать эту переменную в любую команду, которая использует в качестве аргумента имя каталога.

Примечание.
Обратите внимание, что при определении переменной не допускается использование пробелов около знака равенства. Если это не учесть, то оболочка решит, что первое слово в строке — это запускаемая команда.

Но, такие переменные не передадутся в будущие дочерние оболочки, а действовать будут только в той, в которой они созданы. Чтобы превратить локальную переменную в переменную окружения используйте команду export.

.bashrc

Когда пользователь выходит из оболочки , ее окружение удаляется. Было бы слишком трудозатратно каждый раз при входе в оболочку определять ее окружение вручную. Поэтому оно определяется файлами запуска и файлами инициализации, которые автоматически выполняются при запуске командной оболочки.

Одним из таких файлов инициализации, является файл .bashrc . Он обычно расположен в вашем домашнем каталоге. Команды, которые вы поместите в этот файл, будут выполняться автоматически при запуске экземпляра оболочки. Именно поэтому, он отлично подходит для определения переменных окружения и псевдонимов.

Вот пример файла .bashrc

# Задать путь для поиска исполняемых команд
PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
# Задать приглашение командной строки
PS1='$ '
# Задать предпочитаемый текстовый редактор
EDITOR=/usr/bin/vi
# Начать в рабочем каталоге
cd $HOME/Work/
# Определить псевдоним
alias l="ls -lah --color"
# Поприветствовать при входе в оболочку
echo "Добро пожаловать, в команду пингвинов, сынок!!!"

Изменения, которые вносите в файл .bashrc, не влияют на запущенные экземпляры оболочки. Но вы можете заставить запущенный экземпляр перечитать и применить исправленный экземпляр .bashrc следующими командами:

Was this helpful?

1 / 0

Добавить комментарий 0