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

2.2. Идентификация и смена оболочки

О типе оболочки прежде всего сообщает стимул (приглашение системы, или первичная подсказка). Если стимул представлен знаком $, то, вероятно, у вас имеется одна из оболочек типа Bourne. Если наблюдается стимул в виде знака %, то, вероятно, у вас одна из оболочек типа С–оболочки. Вероятно потому, что любой пользователь может сменить стимул.

Для определения типа оболочки имеется быстрый и надежный способ. Нужно посмотреть содержимое переменной $SHELL, введя в командной строке следующее:

$ echo $SHELL

/bin/ksh

Если вам не нравится имеющаяся оболочка, всегда имеется возможность поработать с другой. Список действующих оболочек можно посмотреть в файле /etc/shells.

В большинстве систем UNIX имеется команда, предоставляющая пользователям возможность сменить оболочку.

chsh (change shell – смена оболочки)

Команда запрашивает разрешение на ввод имени новой оболочки (как оно представлено в файле /etc/shells), а затем на ввод пароля.

Смена оболочки не происходит немедленно, вам необходимо выйти и вновь войти в систему. Это объясняется тем, что команда chshне меняет текущую оболочку, а изменяет информацию о вас в системе, т.е. изменяет имя оболочки, которой вы пользуетесь при входе. При следующем входе UNIX берет имя новой оболочки, но до этого вы остаетесь работать со старой оболочкой.

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

Команда chshв некоторых системах называется по–другому. Например, она может иметь вид –passwd –s.

2.3. Запуск shell и стартовых shell–файлов

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

Например, вы работаете вshи хотите получить более удобные средстваредактированиякомандной строки. Для этого в командной строке просто набираете команду

$ bash

Запускается среда командного процессораbash. При этом обычно меняется вид приглашениякомандной строки.

Каждый командный процессорпри запуске пытается выполнить свои стартовые файлы, вначале системные (общие для всех пользователей), а затем пользовательские. Общие файлы лежат в каталоге/etc, индивидуальные – в домашнем каталоге пользователя.

Запускающий файл(startup file) – это файл оболочки, содержащий инструкции, которые должны выполняться при каждом запуске программы оболочки. Запускающие файлы позволяют адаптировать ваши команды, поэтому они также называются файлами конфигурирования. В системе UNIX эти команды содержатся в файле, имена которых начинаются с точки и заканчиваются rc(отrun command– выполнение команды).

Если командный процессорзапускается при входе пользователя в систему (в таком случае он называетсяlogin shell–командный процессор, запущенный при входе в систему), то после стартовых файлов он выполняет еще иlogin–файлы в том же порядке: сначала общийlogin–файл из/etc, затем – индивидуальный, из домашнего каталога.Login–файлы – это тоже стартовые файлыкомандного процессора.

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

Для разных оболочек имеются различные запускающие файлы. Некоторые командные процессорыпри входе в систему выполняют сначалаlogin–файлы, а затем – стартовые файлы, это зависит от того, как они были скомпилированы.

Другие командные процессоры не выполняют никакие стартовые файлы иначе, как при входе пользователя в систему (табл.2.1). У командного процессора обычно есть ключ, который можно дать, чтобы сымитировать вход в систему и заставить его выполнить login–файлы.

Таблица 2.1

Перечень стартовых и login–файлы

shell

Стартовые файлы

login–файлы

sh

/etc/profile, ~/.profile

csh

/etc/csh.cshrc, ~/.cshrc

/etc/csh.login, ~/.login

ksh

/etc/profile, ~/.profile

bash

~/.bashrc

/etc/profile, ~/.bash_profile ~/.profile

Командный процессор bash, в отличие от других, использует более сложный алгоритм выполнения стартовых и login–файлов. Если он запущен как login shell, то выполняет /etc/profile, если такой файл есть. Затем делается попытка выполнить ~/.bash_profile. Если такого файла нет, bash пытается выполнить файл ~/.bash_login, а если нет и такого файла, то выполняется ~/.profile. Если bash запущен не как login shell, то при старте он выполняет только файл ~/.bashrc. Если же bash был запущен как sh (т.е. sh является символьной ссылкой на bash), то при старте он ведет себя так же, как и sh.

Файл $HOME/.profileсодержит информацию, используемую интерпретатором команд для определения таких характеристик вашей рабочей среды, как тип терминала, приглашение системы, имена каталогов системы UNIX (содержащие используемые вами команды), имя файла для организации вашей электронной почты, права доступа (которые будет получать новый файл при создании), а также характеристики вашего терминала.

Содержимое этого файла влияет только на конкретного пользователя. Сценарий входа связан с данным регистрационным именем и начальным каталогом, поэтому можно безбоязненно дополнять, изменять или удалять все, что угодно, вплоть до удаления всего файла. Это не имеет значения для оболочки. Файл $HOME/.profileподдерживается только ради удобства пользователя, он не обязателен для функционирования оболочки Korn.

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

  • Установка клавиш управления с помощью команды stty и управление ресурсами с помощью командыulimit.

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

  • Установка локальных переменных для управления оболочкой.

  • Определение наиболее часто используемых псевдонимов.

  • Определение наиболее часто используемых функций, в том числе функций автозагрузки.

  • Установка предпочитаемых опций оболочки.

  • Запуск команд, которые необходимо выполнять при каждом входе в систему.