Администрирование локальных сетейРефераты >> Программирование и компьютеры >> Администрирование локальных сетей
2. Шеллы и основные команды HP-UX.
2.1.1 Общее знакомство с шелами
2.1.2 Смена шела
2.2.1 Bourne Shell
2.2.1.1 Основные возможности Shell.
2.2.1.2 Shell скрипты
2.2.1.3 Основы программирования на языке shell
2.2.1.4 Некоторые специальные команды
Общее знакомство с шелами
Шелл это интерфейс между операционной системой и пользователем. Шелл интерпретирует пользовательский ввод и дает указания операционной системе выполнить те или иные действия. Шелл можно также рассматривать как язык программирования.
Bourne Shell. Это самый старейший из шелов который был написан Стэфаном Борном в Лаборатории Беэлла. Этот шелл является шелом по умолчанию для HP-UX пользователей и долгое время был стандартом де факто.
Bourne Shell не имеет в своем арсенале ни интерактивных возможностей ни сложных программных конструкций в отличии от С и Korn шеллов.
C Shell. Этот шел был разработан Биллом Джоем в Калифорнийском Университете Беркли. Его синтаксис имеет сходство с языком программирования С. Он также имеет интерактивный интерфейс например историю команд и раскрытие имен файлов.
Korn Shell. Он является относительно новым шелом разработанным Девидом Корном в Лаборатории Бэлла и является вверх совместимым с большинством возможностей Bourne Shell. Так же как и С shell он имеет интерактивные возможности, но выполняется быстрее имеет расширенные возможности редактирования командной строки.
POSIX shell. Этот шелл базируется на стандарте определенном в Portable Operation System Interface (POSIX) – IEEE P1003.2. Этот стандарт был разработан для прикладных и системных программистов. Он фактически определяет стандарт на интерфейс операционной системы. Большинство возможностей POSIX Shell очень сильно схожи с аналогичными возможностями Korn Shell-a. Мы будем рассматривать оба этих шела едино, указывая лишь небольшие различия между ними. POSIX Shell имеет тоже имя что и Bourne Shell поэтому он помещен в /usr/bin/posix директорию в отличии от Bourne Shell, который находится в директории /usr/bin.
Key Shell. Это оболочка для Kourn Shell-a разработанная фирмой Hewlett-Packard. Она позволяет использовать меню и онлайн помощь помогая в построении команд и выполнению ряда часто встречаемых задач, таких как просмотр, редактирование и печать файлов, просмотр содержимого директории и.т.п. Построена она таким образом что пользователь может сам в дальнейшем
расширять ее возможности.
Bash. Название этого шела расшифровывается как Bourne Again Shell. Он бы разработан консорциумом Free Software Foundation и несмотря на то что по умолчанию он отсутствует в стандартной поставке HP-UX 10.20, в следствии своих мощных функциональных возможностей он пользуется огромной популярностью среди пользователей и администраторов HP-UX. Его интерпретатор команд совместим с Bourne Shell. Также он вместил в себе полезные возможности Korn C шеллов. Он разрабатывался в сооответствии со спецификациями IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2).
2.1.2 Смена шела
Для того чтобы определить Ваш системный шелл достаточно сразу после логина выполнить команду:
echo $SHELL
она показывает содержимое переменной SHELL в которую система прописывает Ваш шелл установленный по умолчанию. Для временной смены шела достаточно выполнить запуск желаемого шела в текущем:
$ ksh запуск Kourne Shell
$ ps печать списка процессов
PID TTY TIME COMMAND
12320 pts/2 0:00 sh Bourne shell
12322 pts/2 0:00 ksh Korn Shell
12323 pts/2 0:00 ps
$ exit выход из Korn Shell-a
Для постоянной смены шела устанавливаемого системой после входа (login shell) необходимо выполнить команду:
chsh <ваш_логин> <полное_имя_шела>
Замечание: список шелов доступных в системе для пользователей находится в файле /etc/shells
Bourne Shell.
2.2.1.1 Основные возможности Shell.
Запуск шелла и выход из шелла
Для запуска Bourne Shell достаточно ввести sh в текущем шеле. Выход из шела возможен либо по команде exit либо введя в терминале символ коца файла Ctrl-D.
Последовательное выполнение команд.
Несколько команд можно последовательно выполнять разграничивая точкой с запятой. Например, фрагмент
$ who
$ ps –ef
$ ls –l
и
$ who; ps –ef; ls -l
дадут полностью одинаковый результат.
Фоновое выполнение.
Запуск программы в фоновом режиме (без блокировки текущего шела) достигается добавлением в конец команды знака &
Перенаправление ввода-вывода.
Каждая запущенная программа имеет три ассоциированных канала: стандартный ввод, стандартный вывод и стандартный канал диагностики ошибок. По умолчанию стандартный ввод закреплен за клавиатурой а стандартный вывод и канал ошибок закреплены за монитором. Однако шелл позволяет связать эти каналы с файлами абсолютно прозрачно для выполняемой программмы, т.к. изменения вывода и ввода осуществляются на системном уровне. Примеры перенаправлений ввода-вывода:
Символ |
Функция |
Пример |
< |
Перенаправление ввода из файла |
program < in_file |
> |
Перенаправление вывода в файл |
program > out_file |
>> |
Перенаправление вывода в файл с добавлением |
Program >> out_file |
Пайпы. Две или более программ могут быть объединены таким образом что результат одной программы попадет на вход другой. При этом данные от одной программы к другой следуют через програмный канал, например:
program1 | program2 | program3
или более реалистичный пример:
ls –l /etc | more
Примечание: пайпы всегда работают лишь в одном направлении – со стандартного выхода одной к стандартному входу другой программы.
Расширение имен файлов.
В целях уменьшения количества набираемых символов при вводе имен файлов шел поддерживает метасимволы. Нпример для того чтобы вывести листинг всех файлов в текущей директории имена которых начинаются с буквы a достаточно воспользоваться командой ls –l a*
ниже приведена таблица основных метасимволов
Метасимвол |
Описание |
* |
Означает любой символ в любом количестве |
~ |
Означает путь к домашнему каталогу |
? |
Любой символ в количестве один или больше |
[ … ] |
Равенство любого одного из символов заключенных в скобки. Пара символов разделенная знаком минус означает любой символ из промежутка между ними. Например [a-zA-Z] – любаялатинская буква |