§ ПРЕДСТАВЛЕНИЕ ОБ ОПЕРАЦИОННОЙ СИСТЕМЕ UNIX
ОС UNIX - одно из высших достижений в мире системного программного обеспечения. Многие специалисты считают, что по сравнению с ней MS DOS является гораздо менее профессиональной системой.
Хотя в специальных руководствах по UNIX подчеркивается ее простота и ясность, это не та простота, которая легко усваивается. Здесь мы познакомимся лишь с одним аспектом UNIX - управлением большой компьютерной сетью. Кроме того, эта ОС и тесно связанный с ней язык программирования Си являются основой для разработки сложных профессиональных программных продуктов самого разного назначения - как системных, так и прикладных.
Для глобальных сетей UNIX и UNIX-подобные системы (например, LINUX) являются основными. Здесь важно подчеркнуть, что UNIX прозрачным образом поддерживает не только работу с удаленного терминала (даже по телефонной линии), но и электронную почту, и набор протоколов TCP/IP. При этом детали обмена данными между компьютерами от пользователя системы скрыты, и он может, работая за любым компьютером сети или за удаленным терминалом, выполнять разнообразные операции и даже запускать процессы, не зная, где физически находится исполняющий компьютер.
Рассмотрим основные команды операционной системы UNIX. Сеанс работы с операционной системой UNIX начинается с ввода идентификатора пользователя и его пароля, присвоенных ему администратором сети при регистрации. Приглашением по вводу идентификатора является слово login.
Пароль при вводе не отображается. По желанию пользователя он может быть заменен по команде passwd.
Командная строка - это последовательность слов, разделенных пробелами. Первое слово командной строки и есть команда, остальные - параметры.
Типы параметров:
• имя файла - идентификатор (использует символы а - z, А - Z, 0 - 9, _,.,-);
• опция (ключ) уточняет смысл команды (обычно начинается со знака «минус»);
например, опция -al (может быть со знаком + или без него); смысл опции зависит от команды;
• выражение описывает обычно строку символов или является строкой.
Порядок параметров в команде:
1 2 3 4
command options expression filename(s)
Система содержит подробное справочное руководство (UNIX Reference Manual), состоящее из восьми секций:
1) commands (команды);
2) system class (системные вызовы);
3) subroutines (подпрограммы);
4) special files (спецфайлы);
5) file format and convension (формат файлов и соглашения);
6) games (игры);
7) macro packages and language conventions (макропакеты
и языковые соглашения);
8) administrator commands and procedures (команды
и процедуры администратора).
В любой момент руководство может быть выведено на экран и принтер.
Описание команды состоит из следующих разделов:
NAME (имя и функция);
SYNOPSIS (синопсис);
DESCRIPTION (описание функции);
FILE (используемые файлы);
SEE ALSO (смежные команды);
DIAGNOSTIC (реакция на ошибки);
BUGS (замеченные некорректности),
$ man i <имя> (i - номер секции, например "$ man grep"; если i опущено, подразумевается i=l).
Запуск программы (командного файла) из текущего каталога осуществляется при вводе имени содержащего ее файла в командной строке. Система обладает набором текстовых редакторов (например, VI и ЕХ), интерпретатором команд shell и другими встроенными утилитами.
Узнать имя текущего каталога можно следующим образом:
$ pwd (print working directory)
Для печати (вывода на экран) содержимого каталога используется команда ls.
Примеры.
$ Is - печать текущего каталога;
$ Is-al - a (all) - все файлы и подкаталоги;
-1 (long) - полную информацию;
S Is / - печать каталога root,
$ Is -1 / - печать каталога root
полная;
S Is -I /bin - часто используемые команды;
S Is /dev - драйверы устройств;
$ Is /users - каталоги пользователей.
Изменение рабочего каталога производится командой cd (change directory).
$ cd /etc $ Is -1 - печать команд администратора;
$ cd /usr $ Is -1 bin - редко используемые команды;
$ cd - без параметров - возврат к собственному (fioine) каталогу.
Команда cat (от concatenate) позволяет объединить несколько (два или более) файлов и направить результат на стандартный вывод (Standart Output), обычно - на экран дисплея, например:
$ cat /etc/motd посмотреть файл (message of today)
Создать нижележащие каталоги можно командой mkdir (make directory). Копирование файлов осуществляется командой ср.
Например, если текущим каталогом является progs/c, то ввод команды
$ cp /etc/motd message
приводит к созданию в текущем каталоге progs/c файла progs/c/mtssage. Его можно было бы скопировать в текущий или в другой каталог, не меняя имени:
$ cp /etc/motd progs/c
(при этом будет создан файл progs/c/motd). Если progs/c
- текущий каталог, того же эффекта достигает команда
$ cp /etc/motd
(с точкой в качестве параметра). Если второй аргумент команды cp - каталог, то в качестве первого можно указывать несколько файлов, например:
$ cp /etc/motd /usr/include/stdio.h progs/c
Перенос и переименование файлов осуществляется командой тv. Эта команда перемещает файл или каталог из одного места файловой системы в другое. Побочный эффект - переименование файла.
Пример.
$ mv message mesg
$ls
mesg....
Отличие от копирования состоит в том, что исходный файл будет уничтожен. Удаление (уничтожение) файлов производится с помощью команды rm.
Пример:
$ cd progs/c
$ rm motd
S Is message (нет motd)
Одной командой rm можно удалить несколько файлов.
Ключ -i позволяет использовать интерактивный вариант исполнения команды, требующий подтверждения на удаление каждого файла:
$ rm-i filel file2
filel : n (no-нет)
file2: у (yes-да)
Можно форсировать уничтожение ключом -f, даже если файл защищен по записи, например:
$ rm-fstdio.h
Этими средствами нельзя уничтожить каталог, пока не уничтожены все файлы, входящие в его состав.
Для удаления нескольких каталогов используется ключ рекурсивного уничтожения -r
(уничтожить все поддиректории). Пустой каталог удаляется посредством команды rmdir (remove directory):
$ rmdir progs
Метасимволы служат для подстановки любых строк и символов в именах файлов и в командах языка задании Shell:
* - представляет произвольную строку (возможно пустую);
? - любой одиночный знак;
[Cl С2] - любая литера из диапазона Cl- C2 (в стандарте ASCII).
Примеры:
1) $ Is с?
с1 с2 сЗ cs cz
2) $ Is с*
с1 с12 с2 с23 сЗ cs csl cxy cz
3)$ls?l*
с1с12
Для перенаправления вывода используется знак ">".
Пример.
$ Is -1 - вывод
на экран = standard output;
$ Is -1 > dirconts - вывод в файл dirconts;
$ cat dirconts - вывод на экран.
Пробелы вокруг символа «>» необязательны. Возможно перенаправление вывода с добавлением (с дописыванием в файл), которое обозначается «>>».
Пример.
$ pwd >> dirconts - добавить в файл имя текущего каталога.
Для перенаправления стандартного ввода используется знак «<».
Пример.
$ mail - ввод сообщения с экрана;
$ mail < message - ввод сообщения из файла message.
Эта возможность используется реже, чем перенаправление вывода.
Конвейером называется группа команд, объединенных программными каналами. Программный канал образуется назначением стандартного вывода одной команды стандартным вводом следующей команды. Для формирования программного канала используется знак «|» («вертикальная черта»).
Система UNIX располагает развитыми средствами связи пользователей между собой. К ним относятся команды:
• who - позволяющая выяснить, кто работает в данный момент с системой;
• write - для непосредственной посылки сообщения прямо на экран терминала другому пользователю;
• mail - реализующая электронную почту, использующую электронные почтовые ящики.
Команда write посылает сообщение указанному пользователю в момент исполнения этой команды:
write <пользователь адресат><сообщение>
Сообщение заканчивается выводом знака конца файла control-D. Если ожидается ответ и предполагается диалог можно не вводить знак конца файла до конца диалога. Электронная почта позволяет пользователям обмениваться сообщениями. которые попадают в почтовые ящики, реализованные внутри системы. При входе пользователя в систему появляется извещение о наличии для него почты, например:
login: password:... you have mail $
В отличии от команды write, в системе mail о приходе почты пользователя известят, когда он закончит текущую работу. Пост;» пит сообщение:
you have mail (для вас есть почта).
Для получения почты необходимо ввести команду
mail без параметров:
Подсказка (?) означает, что система mail ждет оказания о том, что делать с почтой: печатать, сохранить, уничтожить или выйти из команды mail. Ввод знака вопроса приводит к меню возможных действий:
q quit -закончить;
х exit without changing mail - выйти без изменения почты;
р print - печать;
s [file] save - сохранить в файле;
w [file] same without header - то же без заголовка;
- print previous - печатать предыдущее;
d delete - уничтожить;
+ next (no delete) - следующее (не уничтожать);
m user mail to user - переправить другому пользователю;
!cmd execute cmd - выполнить команду;
?
Для посылки почты следует ввести команду mail с параметром-именем пользователя и текст письма, заканчивая его знаком конца файла (control-D). Для выхода из системы mail нужно нажать q, например:
? q you have mail $
Существуют и более развитые средства работы с электронной почтой, например утилита bmail.
Чрезвычайно важно, что те же средства позволяют обмениваться электронной почтой не только в рамках локальной сети. но и глобально, в рамках Internet.
Для этого необходимо лишь указывать идентификатор адресата с интернетовским адресом его локальной сети. Сама передача сообщений по каналам связи ведется в этом случае с помощью средства под названием UUCP (Unix to Unix copy).
Помимо перечисленных команд UNIX имеет развитые средства обработки текстов, встроенные компиляторы с языков программирования Си, Фортран77, Паскаль и др, а также средства разработки программ.
Следующий уровень взаимодействия пользователей в сетях достигается на основе совместного использования распределенных по сети файлов. Прозрачными использование таких файлов делают сетевая файловая система NFS (Network File System) и сетевая информационная служба NIS (Network Information Service). NFS использует модель клиент/сервер, в которой сервер экспортирует доступные для совместного использования каталоги, а клиент монтирует эти каталоги, чтобы обращаться к хранящимся в них файлах До сих пор мы рассматривали команды UNIX, выполняемые из командной строки. Для обеспечения выполнения части из них, таких как перемещение по каталогам и их создание, копирование файлов и запуск программ, служит оболочка UNIX под названием Demos Commander,
в основных чертах аналогичная Norton Commander. Аналогом графической среды Windows в UNIX является графическая оболочка X Windows.
Контрольные вопросы и задания
1. Охарактеризуйте основные особенности и команды ОС UNIX.
2. Опишите основные команды ОС UNIX.
3. Какова роль операционной системы UNIX в обеспечении сервиса Internet?