Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

К9-12В. Вопросы и ответы к ГОСам 2013 / Операционные системы / 05. Обзор возможностей командных процессоров (оболочек) ОС

.docx
Скачиваний:
66
Добавлен:
10.05.2014
Размер:
633.88 Кб
Скачать

05. Обзор возможностей командных процессоров (оболочек) ОС.

Основы Shell:

Shell, с одной стороны, представляет собой интерпретатор команд, который, как правило, хранится в

каталоге:

* /usr/bin/ksh Korn Shell

* /usr/bin/bash Bash Shell

* /usr/bin/csh C Shell

* /usr/bin/sh Posix Shell

* /usr/old/bin/sh Borne shell

...с другой стороны, shell - это язык программирования, позволяющий выполнять любые действия,

которые позволяет выполнять язык C. Базовым shell'ом с минимальными возможностями является borne-shell. Все остальные оболочки включают возможности borne-shell'а

Стандартный ввод - поток номер 0 (stdin) зарезервирован для чтения команд пользователя или входных данных.

Стандартный вывод - поток номер 1 (stdout) зарезервирован для вывода данных, как правило (хотя и не обязательно) текстовых.

Стандартный вывод ошибок - поток номер 2 (stderr) зарезервирован для вывода диагностических и отладочных сообщений в текстовом виде.

Основные функции оболочек в UNIX:

• Исполнение команд. Находит команду и выполняет для нее соответствующую

программу, подставляет значения переменных.

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

• Задание переменных и замена переменных

• Подстановка команд (установка псевдонимов команд - с помощью команд alias/unalias).

• Генерация имён файлов. Формирует имена файлов, используя символы генерации

• Выполняет перенаправление ввода-вывода

• Выполняет подстановку результатов выполнения команд

• Реализует конвейеры

• Интерпретация программ. Поддерживает интерпретируемый программный интерфейс,

включая проверки, ветвления и циклы.

• Буферирование команд (кроме оболочки Borne-Shell). Shell сохраняет команды, которые вводит пользователь, в некотором файле предыстории. History выводит на экран последние 16 команд. Таким образом осуществляется буферирование команд с возможностью повторного ввода, а так же редактирование командной строки с помощью редактора VI (для этого должна быть установлена переменная среды EDITOR=vi, установка командой export EDITOR)

Рассмотрим реализацию некоторых из этих возможностей подробнее:

1) Команды в Shell

Различают 2 типа команд

• Внутренние команды shell. Примеры: set, while, is , for

• Команды, которые интерпретируются shell. Примеры: ls, more, pwd. Команды UNIX

находятся с помощью переменной среды PATH.

Команды UNIX могут иметь те же имена, что и встроенные команды shell'а: в этом случае для доступа

к командам UNIX пользователь должен явно указывать полное маршрутное имя команды. Как

правило, все команды в системе UNIX хранятся в 4-х основных каталогах:

/sbin

/user/bin

/usr/local/bin

/usr/contrib/bin

Для поиска нужной команды в системе предусмотрена команда:

whereis <имя команды>

Эта команда выдаёт на экран полное имя каталога, содержащего указанную команду

Установка псевдонимов команд:

Допускается установка/снятие псевдонимов команд командами alias/unalias. Формат

команды:

alias <имя>=<строка>

Пример:

alias dir=ls

2) Среда пользователя

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

• маршрутное имя начального кат-га пользователя

Среда пользователя содержит:

• под каким именем вошел пользователь

• где shell будет искать команды и т.д.

Среда пользователя может быть отображена на экран командой env

3) Стартовые файлы shell:

При входе в систему для формирования среды и выполнения других необходимых действий

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

.profile

Этот файл позволяет пользователю определить или настроить переменные среды, характеристики

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

Если .profile содержит команду

exec <приложение>

то пользователь не получит приглашение со стороны shell'а, а по завершении указанного приложения

выйдет из системы.

Общесистемный стартовый файл (выполняется для всех пользователей, работающих с Borne, Korn

или Posix-shell'ом):

/etc/profile

Содержимое общесистемного стартового файла формируется системных администратором и

обычному пользователю не разрешается менять его содержимое

На рисунке представлены функции процедур, выполняющихся при входе пользователя в систему.

Выполнение их в совокупности называется авторизацией.

1. Getty - выводит на экран содержимое файла /etc/issue. Выдаёт приглашение login. Запускает

процесс login.

пользователя. Авторизация UNIX включает 3

этапа:

2. Login - определяет допустимость введённого имени и пароля (и проверяет их на соответствие в

файле etc/passwd). Если запись есть, делает текущим начальный каталог пользователя и

запускает shell

3. Shell - выполняет /etc/profile (общесистемный командный файл), а затем .profile

(настраивает среду конкретного пользователя, содержится в домашнем каталоге пользователя) и

выводит приглашение shell. Таким образом выполняется настройка параметров среды

пользователя.

4) Хранимые переменные в shell

В UNIX различают несколько видов переменных:

• локальные переменные

• программных код shell

• переменные среды

В Shell встроены две области переменных:

• область локальных переменных;

• среда.

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

значение (<имя>=<значение>). Особенности задания переменных:

• при написании не допускается пробелов

• имена переменных начинаются с букв латинского алфавита и могут содержать буквы,

цифры и символы подчёркивания, ограничения на длину имён нет.

Shell хранит переменные или в локальной области пользователя, или в среде. Для передачи

переменных из локальной области в среду необходимо выполнить команду export. Пример:

EDITOR=vi

export EDITOR

Соседние файлы в папке Операционные системы