Первое знакомство с операционной системой UNIX, страница 6

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

Кроме явного указания ключей в командной строке существует еще один способ передачи ключей и некоторых других данных программам. Для этого можно использовать переменные окружения. Пользователь может в оболочке определить переменные, которые будут автоматически передаваться («экспортироваться») каждой исполняющейся программе.

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

Каждая переменная имеет имя и набор допустимых значений. Имя (идентификатор) переменной может содержать прописные и строчные буквы латинского алфавита, символ подчеркивания и цифры. Регистр букв в именах переменных различается. Имя переменной не должно начинаться с цифры. Значениями переменных являются строки символов.

Имена переменных окружения записываются прописными буквами, а имена локальных переменных оболочки — строчными буквами.

Простая локальная переменная в оболочке bash определяется командой:

# имя=значение

Для того чтобы простую переменную сделать переменной окружения, надо выполнить команду export:

# export имя1

Для сокращения записи пользователь может определить новые переменные прямо в команде export:

# export имя1=строка1

Использовать в любом месте командной строки значение любой переменной можно с помощью конструкции ${имя}. При интерпретации командной строки в нее будет подставлен текст, являющийся значением переменной.

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

# echo $PATH

/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin

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

# export PATH=.:~/bin:$PATH

Для того чтобы убедиться в правильности выполнения команды полезно вывести новое значение переменной:

# echo $PATH

.:/home/alex/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin

Задания для практической работы

1.  Зарегистрируйтесь в качестве пользователя вашего учебного UNIX-класса. Получите свой пользовательский идентификатор (регистрационное имя).

2.  Войдите в систему и установите свой пароль, соблюдая приведенные здесь рекомендации.

3.  Подайте команду ls с известными вам ключами и посмотрите, какие файлы находятся в вашем текущем каталоге. С помощью справочной системы man выясните, какие еще ключи можно использовать с командой ls.

4.  С помощью справочной системы man выясните назначение команд cp и mv. С помощью команды info info познакомьтесь с возможностями программы просмотра документации info (если эта команда присутствует в системе).

5.  Завершите сеанс работы подачей команд logout или exit.

6.  Определите назначенную вам системным администратором при регистрации оболочку.

7.  Определите, воспринимает ли оболочка команду exit в качестве синонима команды logout.

8.  Определите, какие еще оболочки имеются в вашей UNIX-системе.

9.  Определите, сохраняется ли список введенных ранее команд при завершении сессии и считывается ли он оболочкой в начале новой сессии.

10.  Определите, сколько команд находятся в установленном пути поиска.

11.  Сколько команд и какие начинаются на букву a?

12.  Потренируйтесь в наборе имен файлов и команд с помощью функции дополнения имен.

Литература

С.Немнюгин, М.Чаунин, А.Комолкин Эффективная работа: UNIX. "Питер", Санкт-Петербург, 2001 г., 688 с.