Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы OC UNIX_часть3.doc
Скачиваний:
21
Добавлен:
18.04.2015
Размер:
543.23 Кб
Скачать

2.4. Установка переменных среды

Предопределенные переменные содержатся в среде окружения командного процессора независимо от установок, которые может сделать пользователь в стартовых файлах. Имена предопределенных переменных среды окружения во всех командных процессорах, кроме csh (и, в некоторых случаях, tcsh) пишутся символами верхнего регистра: PATH, USER, TERM, PS1, PS2.

В любых командных процессорах заранее определены переменные, перечисленные в табл.2.2.

Таблица 2.2

Перечень системных переменных

Переменная

Смысл

HOME

Домашний каталог пользователя

SHELL

Текущий shell

PS1

Вид приглашения shell'a

PS2

Вид приглашения "продолжение команды"

TERM

Тип терминала пользователя

USER или LOGNAME

Имя пользователя

PATH

Список каталогов, где надо искать программы, когда пользователь запускает программу, указывая только ее имя, но не путь. Каталоги разделяются двоеточиями

  1. «HOME» – имяначальногокаталога. При выполнении командыcdбез аргумента интерпретаторshellвсегда автоматически возвращает вас в начальный каталог.

  1. «PATH» – строка поиска, применяемая при обработке вводимых команд. Обычно строка поиска включает текущий каталог,/bin,/usr/bin, поскольку наиболее часто вызываемые команды UNIX принято хранить именно в них. Практически любая ОС UNIX содержит большое число каталогов (порядка несколько тысяч), и на их просмотр потребовалось бы очень много времени. Чтобы ограничить круг просматриваемых каталогов, в UNIX применяется специальное средство – строка поиска, представляющая собой список тех каталогов, в которых ищется требуемая программа. Такая строка может быть модифицирована для просмотра дополнительных каталогов.

Для просмотра значения переменной используется команда echo. Имени переменной предшествует символ$. Этот символ информируетshellо том, что следующее за ним имя относится к переменной, а не к файлу.

$ echo $PATH

:/bin/:/usr/bin:$HOME/bin

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

Затем поиск будет осуществляться в каталогах /bin,/usr/binи в каталоге/binдомашнего каталога. В строке поиска каталоги разделены двоеточием, а для указания текущего служит пустое имя. Оно может быть задано также::либо:в начале строки.

/bin/::/usr/bin– Здесь нулевой маршрут более «видим» и представляется пустой записью между двумя последовательными двоеточиями. Согласно этому определению, поиск осуществляется в каталоге/bin, потом в текущем каталоге, потом в каталоге/usr/bin, потом в каталоге/binдомашнего каталога.

  1. «IFS» – внутренние разделители полей, которыми обычно служат пробелы, табуляции и символы новой строки. Внутренние разделители полей разделяют слова в команде.

  2. «PS1» и «PS2» – начальные строки приглашений интерпретатораshell.«PS1» – применяется как обычное приглашение, «PS2» – для дополнительных операций, завершающих ввод незаконченных команд.

Предположим, что вы не хотите все время вводить команду pwdдля определения своего местонахождения. Для этого достаточно установить переменную средыPS1так, чтобы включить в стимул текущий рабочий каталог.

$ PS1=`\$PWD>`

/u/user1>

или

$ PS1=`Введите команду: `

Команда echoпозволяет проверить вам содержимое переменной – весьма удобная операция при отладке программы.

Эту команду полезно применять и без переменных, например, когда вам нужно вывести из сценария командного процессора сообщение:

$ echo «Please enter Y or N»

Другим полезным примером echoявляется передача (с помощью переназначения) в файл фиксированной строки:

$ echo `Hello, Mary!` > file1

$ cat file1

Hello, Mary!

Можно пользоваться таким приемом, когда нужно создать простой файл без текстового редактора.

  1. «TERM» – тип терминала, необходимый некоторым программам для выполнения корректного вывода.

  2. «MAIL» – эта переменная указывает интерпретаторуshellна файл, который служит в качестве вашего почтового файла.

  3. «HZ» – Частота в герцах, показывающая частоту прерываний от таймера в секунду. Это значение зависит от аппаратуры, записывается в/etc/default/loginи изменять его не следует.

  4. «SHELL» – Имя маршрута для заданного по умолчанию командного процессора. При отсутствии явного определения в последнем поле/etc/passwdпеременнаяSHEELLзадает используемый по умолчанию командный процессор.

  5. «TZ» – Информация о временном поясе, которая используется такими командами, какdateдля вывода времени, соответствующей вашей временной зоне (включая автоматическую настройку на летнее время)

Все эти переменные устанавливаются следующим образом:

PATH=..... TERM=....... MAIL=.......

При присваивании значений переменных не допускаются пробелы рядом с символом равно =

Команда envбез аргументов будет выводить все переменные среды с их текущими значениями:

$ env

В глобальном профиле регистрации имеется строка, содержащая команду umask(user mask), которая задает значения по умолчанию для полномочий на создаваемые вами файлы и каталоги.

Начиная работу, интерпретатор shell читает и выполняет команды из файла .profile, размещенного в начальном каталоге пользователя. Его содержимое предоставляет системе UNIX информацию о вашем терминале и устанавливает вашу первичную и вторичную подсказку, последовательность поиска команды, имя вашего почтового ящика, а также выполняются те команды, которые вы считаете нужными.