Петрозаводский государственный университет

Кафедра информационно-измерительных систем и

физической электроники









РАБОТА В ОС UNIX - DEC OSF/1






 

Дипломная работа:

студента Екимова К.А.

Руководитель:

профессор Хахаев А.Д.











Петрозаводск 1997г.



РЕФЕРАТ

Ключевые слова

CAMAC - КАМАК - модульная, программно-управляемая система.

FTP - File Transfer Protocol (Протокол Передачи Файлов). FTP обеспечивает передачу и преобразование файлов, и ориентирован на использование TCP. Протокол включает ftp-команду на локальной машине и демон-процесс ftpd на удаленной машине, которые взаимодействуют между собой.

GUI - графический пользовательский интерфейс.

HOST - хост - центральный компьютер.

INTERNET - глобальная вычислительная сеть.

NFS - Network File System (Сетевая Файловая Система). Протокол NFS обеспечивает прозрачный доступ к файловым системам удаленных ЭВМ, позволяя их монтировать на пустые каталоги в локальной системе.

ОС - операционная система.

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

TELNET - Remote Login. Telnet-протокол позволяет терминалам и терминально-ориентированным процессам обеспечить возможность удаленного доступа к системе. Имеется также пара взаимодействующих процессов: программа telnet на локальной машине и демон-процесс telnetd на удаленной.

UNIX-машина - машина, с установленной на ней ОС UNIX.



Реферат работы

Содержание данной дипломной работы включает в себя описание операционной системы UNIX, выполненное на примере одной из ее версий OSF/1, которая установлена на рабочей станции "Alpha", на кафедре информационно-измерительных систем и физической электроники. Основная цель работы подготовить пользователя или администратора к работе в среде UNIX, помочь им в администрировании, настройке системы, работе с сетью и организации взаимодействия с другими компьютерами, а также в проведении распределенного эксперимента.

В работе содержится много примеров, которые позволят пользователю, даже не знакомому с ОС UNIX, научиться работать в системе и эффективнее ее использовать.

Количество глав 5, количество страниц 59, количество рисунков 4.








СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ

1 ОПИСАНИЕ ОПЕРАЦИОННОЙ СИСТЕМЫ UNIX

1.1 Основные понятия ОС UNIX

1.1.1 Диспетчер UNIX

1.1.2 Процессы

1.1.3 Иерархия процессов

1.1.4 "Процессы-демоны"

1.2 Операционная система UNIX - DEC OSF/1

1.2.1 Сетевые возможности

1.2.2 Инсталляция ОС UNIX - DEC OSF/1

1.3 Файловая система

1.3.1 Файлы

1.3.2 Каталоги

1.3.3 Специальные файлы

1.3.4 Монтируемость и демонтируемость файловых систем

1.4 Начальная загрузка

1.5 Защита информации

1.5.1 Защита через пароли

1.5.2 Защита файлов

1.5.3 Атрибуты доступа

2 РАБОТА В ОС UNIX И ОКРУЖЕНИЕ

2.1 Вход в систему

2.2 Переменные окружения

2.3 Системные файлы инициализации

2.3.1 .login и .cshrc

2.3.2 .X11Startup

2.3.3 profile

2.4 Псевдонимы и макрокоманды

2.5 Русификация UNIX

2.5.1 Подключение русских фонтов к компьютеру с X11

2.5.2 Подключение русской клавиатуры в X-Windows

2.5.3 Использование русских фонтов в приложениях

3 КОМАНДЫ UNIX И РАБОТА С НИМИ

3.1 Символы-шаблоны и символы - замещения

3.2 Кавычки

3.2.1 Двойные кавычки

3.2.2 Апостроф

3.2.3 Обратно наклонная черта

3.2.4 Обратные апострофы

3.3 Команды UNIX

3.3.1 man - Справочная информация по командам и ключам

3.3.2 pwd - Выдать имя текущей директории

3.3.3 cd - Сменить текущую директорию

3.3.4 ls - Распечатать информацию о файлах или директориях

3.3.5 cp - Копировать файлы

3.3.6 mv - Переместить (переименовать) файлы

3.3.7 ln - Создать ссылку на файл

3.3.8 rm, rmdir - Удалить файл или директорию

3.3.9 mkdir - Создать директорию

3.3.10 du - Вывод информации о размерах файлов в каталогах

3.3.11 df - Сообщения о свободных и занятых блоках

3.3.12 cat - Вывести содержимое файла

3.3.13 more, pg - Просмотреть файл постранично

3.3.14 echo - Вывести аргументы командной строки

3.3.15 grep - Команда поиска "фильтрует" строки

3.3.16 find - Команда поиска файлов

3.3.17 wc - Подсчет числа строк или символов

3.3.18 chmod - Изменение прав доступа к файлам/каталогам

3.3.19 chgrp - Изменение группы

3.3.20 chown - Изменение владельца

3.3.21 su - Получение прав суперпользователя или регистрация под другим именем

3.3.22 newgrp - Перерегистрация к другой группе

3.3.23 who - Кто работает в системе

3.3.24 id - Вывод идентификации пользователя и группы

3.3.25 finger - Вывод информации о локальных и удаленных пользователях

3.3.26 ping - Посылка эхо-запроса к сетевому хосту

3.3.27 last - Вывод информации о пользователях, входивших и выходивших из системы

3.3.28 ps - Узнать номера выполняемых процессов

3.3.29 tty - Вывод имени терминала

3.3.30 set - Установка режимов, переменных и вывод установленных значений

3.3.31 kill - Прервать процесс

3.3.32 nohup - Выполнение команды с защитой от прерываний

3.3.33 at - Исполнение задания в определенный момент

3.3.34 passwd - Сменить пароль

3.3.35 shutdown - Отключение системы UNIX

4 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

4.1 Сетевые приложения

4.1.1 mail, mailx - Программы работы с электронной почтой

4.1.2 pine - Программа работы с почтой и конференциями

4.1.3 talk - Диалог с пользователями сети

4.1.4 telnet - Обеспечение виртуального доступа к машине

4.1.5 ftp, ncftp - Программы для передачи файлов

4.1.6 Netscape - Программа для просмотра информации в Internet

4.1.7 Инсталляция WEB-сервера Apache

4.1.8 Samba - Lan Manager совместимый сервер для UNIX

4.1.9 Инсталляция программы Samba

4.2 Другие программы

4.2.1 DECTerm - Терминал

4.2.2 Notepad - Простой текстовый редактор

4.2.3 Ted - Текстовый редактор

4.2.4 xv - Просмотрщик и преобразователь графических файлов

4.2.5 Paint - Графический редактор

4.2.6 Clock - Часы-будильник

5 АДМИНИСТРИРОВАНИЕ В СИСТЕМЕ UNIX

5.1 Административные каталоги и файлы

5.2 Суперпользователь

5.3 Добавление пользователей в систему

5.4 Удаление пользователей из системы

5.5 Команды XSysAdmin, ttyadm

ЗАКЛЮЧЕНИЕ

ЛИТЕРАТУРА

ПРИЛОЖЕНИЯ

Приложение 1 (тексты)

Пример 1. Результат выполнения команды setld -i

Пример 2. Пример файла smb.conf

Пример 3. mon - Программа для отслеживания действий пользователей

Приложение 2 (рисунки)

Рис.1. Сеть кафедры информационно-измерительных систем и физической электроники.

Рис.2. DECwindows Motif интерфейс (приложения: Clock, DECterm).

Рис.3. Netscape - программа для просмотра информации в Internet.

Рис.4. xv - Просмотрщик и преобразователь графических файлов.

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

В настоящее время операционная система UNIX и связанные с ней продукты стремительно распространяются, захватывая все новые и новые секторы рынка. Почти все мировые производители, как IBM Corp., AT&T, DEC, Hewlett-Packard Co., Sun Microsystem Inc. и др., уже давно ориентируют свою технику на стандарт UNIX. Это очень мощная операционная система, в ней одновременно могут работать сотни пользователей. Ну, а для выхода в Internet лучше средства, чем UNIX не найти. Она легко работает в сети, потому что содержит в себе средства для объединения различных вычислительных систем. Сеть может легко расширяться по мере необходимости путем добавления жестких дисков, дополнительных процессов или увеличения числа пользователей.

Перед простыми операционными системами (например, такими как DOS) UNIX имеет много преимуществ. Главные из них это, что UNIX - многопользовательская и многозадачная система. Еще одной из ее сильных сторон является то, что она существует на всех машинах: от суперкомпьютеров до персонального компьютера.

На кафедре информационно-измерительных систем и физической электроники установлены две машины с ОС UNIX:

Первая "Alpha" - Workstation DEC 3000 mod. 300LX:

- Процессор - 21064 Alpha AXP, тактовая частота 125Мгц

- RAM - 32Mb

- HDD - (SCSI-2) 540Mb+1.05Gb

- 3xSpeed CD-ROM

- Модуль расширения Digital Storage Works - на 3 устройства

- Монитор VRC -16 (17"/16" screen/display size), графика 1280x1024 True Color 8 страниц

- ОС DEC OSF/1 версии v 2.0 .

Вторая "DEC5000" - Personal DECStation 5000 mod.33:

- Процессор MIPS P3000A, тактовая частота 33Мгц

- RAM - 40Mb

- HDD - (SCSI-2) 2.4Gb

- 2xSpeed CD-ROM

- Графика 1024x768 монохром

- ОС ULTRIX.

Обе машины подключены к сети Internet.

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

Сетевые задачи:

Необходимо было настроить сетевые средства и организовать взаимодействие с другими ОС сети, такими как Windows NT, Windows for Workgroups, OS/2, Novell NetWare. Предоставить каталоги UNIX-машин друг другу и в общее пользование компьютерам других сетей, а также выделить в общее пользование CD-ROM.

Особенно интересным представляется сбор данных на одной машине, а их обработка на другой. Это становится возможным благодаря сетевой файловой системе (NFS), которая позволяет выделять каталоги в общее пользование. Например: данные можно получать с CAMAC'а, подключенного к компьютеру с OS/2, направлять их в совместный каталог, а на машине с ULTRIX обрабатывать, с помощью программы PAW.

Установить WEB-сервер, который бы значительно расширил возможности взаимодействия с другими системами и позволил бы организовать доступ к UNIX-машине посредством различных Browser'ов (Mosaic, Netscape и т.д.) с использованием различных протоколов. А также организовать для него домашнюю страничку (home page).

Установить наиболее удобные и широко используемые сетевые приложения, такие как: Netscape, ncftp, pine и т.д.

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

Поставить защиту на те каталоги и программы машин, к которым нежелателен доступ непривилегированного пользователя. А также защитить от несанкционированного доступа каталоги самих пользователей.

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

В плане пользовательского интерфейса стояли следующие задачи:

Необходимо было сконфигурировать пользовательское окружение: подсказки, псевдонимы, цвета, размеры и расположение окон и т.д., настроив соответствующие файлы .login, .cshrc, .Xdefaults, .X11Startup.

Настроить систему для запуска графических приложений между UNIX-машинами, чтобы на одной UNIX-машине можно было запускать графические приложения другой UNIX-машины, посредством Telnet'а.

Установить русские шрифты, чтобы возможно было писать и читать на русском языке, что особенно важно при работе с российскими конференциями и русскими страничками на WEB-серверах.

Изучение операционной системы UNIX и описание путей решения этих задач, и были, положены в основу данной дипломной работы. Основной упор делался на освоение ОС OSF/1, которая установлена на рабочей станции "Alpha" на кафедре информационно-измерительных систем и физической электроники. Это очень мощная и наиболее защищенная из систем UNIX, именно поэтому и представляется интересным ее изучение.

 

 

 

 

 

 

1 ОПИСАНИЕ ОПЕРАЦИОННОЙ СИСТЕМЫ UNIX

1.1 Основные понятия ОС UNIX

Любая ОС представляет собой набор программ, управляющих ресурсами ЭВМ. Работа этих программ строго координирована. ОС UNIX включает в себя следующие компоненты:

- ядро

- Shell (командный интерпретатор)

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

Резидентная в оперативной памяти часть UNIX-системы называется ядром (Kernel). При начальной загрузке (boot) ядро считывается в память, начиная с нулевого адреса. На диске ядро всегда оформлено как выполняемый файл. При любой перенастройке системы, включении дополнительных внешних устройств и драйверов, изменении параметров генерации системы ядро перестраивается и сохраняется в новом файле. Как правило, этот файл располагается в корневом каталоге и носит название, идентифицирующее UNIX-систему ('/vmunix', '/unix', '/hp-ux' и т.д.).

Ядро содержит системные программы, выполняющие диспетчерские функции, управление ресурсами ЭВМ, распределение памяти, доступ к дисковым устройствам и т.д. Если сравнить ОС UNIX с другими известными операционными системами, то можно заметить, что ее ядро минимизировано и не выполняет ни одной функции непосредственно служащей пользователю. Для этой цели применяются многочисленные утилиты, выступающие в качестве посредников между пользователем и ядром.

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

1.1.1 Диспетчер UNIX

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

1.1.2 Процессы

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

1.1.3 Иерархия процессов

Процессы образуют иерархические отношения между собой. Существуют понятия "процесс-отец" и "процесс-сын". Процессы могут порождать другие процессы, и их отношения лучше всего выражает родственное дерево.

"Процесс-сын" наследует свойства "процесса-отца", включая переменные окружения, текущий рабочий каталог, открытые файлы.

ОС UNIX, являясь в своей основе средством управления процессами, сама по себе может рассматриваться как система параллельных взаимодействующих процессов с древовидной структурой. Общий прародитель всех процессов в системе - процесс init, находящийся в вершине генеалогического дерева. Этот процесс порождается особым образом и далее постоянно присутствует в системе. Все другие процессы порождаются в системе по унифицированной схеме с помощью системного вызова fork().

1.1.4 "Процессы-демоны"

Если классифицировать процессы в UNIX, то можно выделить пользовательские и системные процессы, а также процессы, называемые "демонами" (daemons).

Большинство процессов имеют статус пользовательских. Системные процессы выполняются в режиме суперпользователя и ориентированы на выполнение системных функций.

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

"Процессы-демоны" - это определенная разновидность системных процессов. "Демоны" отличаются от обыкновенных процессов тем, что они выполняют специфические системные действия, например администрирование и управление в сетях. Так, типичным "процессом-демоном" является обработчик входящих вызовов (incoming calls) на UNIX-сервере, который обрабатывает все поступающие заявки на соединение (connect) с удаленного входа для машины в сети.

Способы порождения и запуска "демонов" могут быть различны:

1. В процессе старта системы из файла /etc/rc.config. Такие "демоны" будут работать в статусе суперпользователя во все время работы операционной системы.
2. Используя, либо системный файл /usr/bin/crontab, либо пользовательский crontab. Обычно стандартный системный процесс cron в течение дня выполняет определенные задачи, периодически выбирая свои команды для таких исполнений, из файла /usr/lib/crontab.
3. С помощью команды /usr/bin/at "демон" ждет наступления заданного времени и выдает определенное задание.
4. Запуск фонового процесса с помощью пользовательского терминала.

1.2 Операционная система UNIX - DEC OSF/1

DEC OSF/1 (Open Software Foundation) это первая операционная система с 64-битным ядром, поддерживает архитектуры Turbo Channel и PCI. Эта система основана на архитектуре ядра Mach V2.5 Карнеги-Меллонского университета, состоящего из компонентов: Berkeley Software Distribution (BSD) 4.3, UNIX System Laboratories System V и других источников. Она поддерживает System V приложения, обеспечивает поддержку реального времени, кластеров, а также симметричного мультипроцессирования (SMP), при котором несколько равноправных процессоров имеют одинаковый доступ к общим ресурсам системы. Эти и многие другие особенности были направлены, чтобы помочь прикладным программистам в создании приложений, которые используют разделенные библиотеки, мультизадачную поддержку и многое другое. Чтобы гарантировать высокий уровень совместимости с ULTRIX, DEC OSF/1 совместима с Berkeley 4.3 и System V программными интерфейсами. DEC OSF/1 поддерживает графический пользовательский интерфейс (GUI) DECwindows Motif, основанный на X Window System, Version 11, Release 5, и OSF/Motif V1.1.3. DECwindows Motif поддерживает следующие X Window System стандарты:

- X11 протокол

- Установку фонтов рабочей станции

- Библиотеку программ Xlib и библиотеки инструментальных средств X Toolkit

- PostScript X server и PostScript client библиотеки

Внешний вид окон на экране компьютера при использовании графического интерфейса DECwindows Motif изображен на Рис.2 в Приложении 2.

1.2.1 Сетевые возможности

UNIX является одной из первых операционных систем, которая включила в качестве составной части TCP/IP. Следовательно, большинство команд для работы с Internet и услуг типа передачи файлов и удаленного входа в систему впервые были воплощены в жизнь именно в UNIX. Кроме того, UNIX является многопользовательской и многозадачной системой. Много пользователей могут входить в систему одновременно. Они могут выполнять множество различных действий. Это позволяет поддерживать услуги Internet естественным образом.

В ОС DEC OSF/1 заложена сетевая поддержка, обеспечиваемая следующими протоколами:

TCP/IP:

TCP - Transmission Control Protocol (Протокол Управления Передачей данных). Протокол, ориентированный на соединения, который обеспечивает надежную полнодуплексную передачу потока байтов между пользовательскими процессами.

UDP - User Datagram Protocol (Протокол Пользовательской Дейтаграммы). Протокол для пользовательских процессов, работающий без установления соединений. В отличие от TCP, который относится к надежным протоколам, нет никакой гарантии, что посланная UDP- дейтаграмма когда-нибудь достигнет адресата.

ICMP - Internet Control Message Protocol (Протокол Управления Межсетевыми Сообщениями). Этот протокол поддерживает передачу информации об ошибках и управляющей информации между шлюзами и узлами сети. ICMP-сообщение генерируется и обрабатывается программным обеспечением Internet, а не пользовательскими процессами. IP - Internet Protocol (Интернет Протокол).

IP - это протокол, который обеспечивает службу доставки пакетов для TCP, UDP и ICMP. IP обеспечивает межмашинные коммуникации, используя так называемую маршрутную IP-адресацию.

ARP - Adress Resolution Protocol (Протокол Преобразования Адресов). Этот протокол преобразует адреса Internet в адреса оборудования (например, на канальном (Data Link) уровне для устройств типа Ethernet).

RARP - Reverse Adress Resolution Protocol (Протокол Обратного Преобразования Адресов). Этот протокол преобразует адреса оборудования в адреса Internet.


Кроме того, в Internet имеется ряд протоколов высокого уровня. К ним относятся:

FTP - File Transfer Protocol (Протокол Передачи Файлов). FTP обеспечивает передачу и преобразование файлов, он ориентирован на использование TCP. Протокол включает ftp-команду на локальной машине и демон-процесс ftpd на удаленной машине, которые взаимодействуют между собой.

TELNET - Remote Login. Telnet-протокол позволяет терминалам и терминально-ориентированным процессам обеспечить возможность удаленного доступа к системе. Имеется также пара взаимодействующих процессов: программа telnet на локальной машине и демон-процесс telnetd на удаленной.

SMTP - Simple Mail Transfer Protocol (Простой Протокол Передачи Почты). SMTP обеспечивает протокол для обмена почтовыми сообщениями между двумя оконечными системами на основе TCP-соединения.

DNS - Domain Name Service (Система Доменных Имен). Этот протокол обеспечивает доменную форму задания имени взаимодействующих сетевых узлов и почтовых корреспондентов.

NFS - Network File System (Сетевая Файловая Система). Протокол NFS обеспечивает прозрачный доступ к файловым системам удаленных ЭВМ, позволяя их монтировать на пустые каталоги в локальной системе.


Имеются и другие протоколы, ориентированные на TCP/IP:

RPC - Remoute Procedure Call (Удаленный Вызов Процедуры).

SNMP - Simple Network Management Protocol (Простой Протокол Управления Сетью).

SLIP - Serial Line Internet Protocol (Internet Протокол на Последовательной Линии).

CSLIP - TCP/IP Header Compression on Serial Lines (TCP/IP заголовок Сжатия на Последовательных Линиях).

 

1.2.2 Инсталляция ОС UNIX - DEC OSF/1

Для инсталляции операционной системы на UNIX-компьютер используется загрузочные дискеты, загрузочные магнитные ленты, но наиболее удобной и распространенной считается поставка на CD-дисках.

Иногда, перед инсталляцией новой версии системы, требуется перепрошивка BIOS'а (для этого на диске имеется программа, которая проверяет содержимое старого BIOS'а и, если нужно, прошивает новый). Для запуска этой программы необходимо: включить компьютер, вставить CD-диск, дождаться подсказки BIOS'а и выполнить команду show device. Затем, выбрав нужный файл, запустить его командой boot.

 

Формат команды boot: boot [-fl value] [boot_device_list] [-fi filename] [-ns]

После окончания прошивки компьютер необходимо выключить на 15 минут. Затем включить, вставить диск с инсталляцией операционной системы и запустить программу инсталляции. Эта программа, первым делом, предложит варианты, как разметить имеющиеся в системе диски. Далее будет предложен список компонентов необходимых для инсталляции данной системы. Из этого списка необходимо выбрать те элементы, которые соответствуют назначению данной машины. В зависимости от количества выбранных компонентов инсталляция может занимать от 20 минут до 1 часа. После этого программа потребует ввести пароль суперпользователя, и сетевое имя машины (например: dfe3300). Далее загрузится система и автоматически запустится программа setup, которая позволяет настроить сетевые средства: полное сетевое имя машины (например: dfe3300.karelia.ru), сетевой номер (например: 193.232.254.7), маску сети (например: 255.255.255.0), имя name-сервера (например: ns), сетевой адрес name-сервера (например: 193.232.254.65), адрес шлюза (например: 193.232.254.1) и т.п. После этого инсталляция системы может считаться законченной и остается только выполнить ее настройку.

При установке системы можно воспользоваться литературой [4].

Посмотреть все компоненты, инсталлированные в систему можно командой setld с ключом -i. Результат выполнения этой команды приведен в Примере 1 Приложения 1.

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

 

1.3 Файловая система

Файловая система UNIX организована в виде древовидной структуры каталогов, внутри которых находятся файлы. Имеется три вида файлов, доступ к которым идентичен:

- обычные дисковые файлы

- каталоги

- специальные файлы

UNIX - воспроизводит имена файлов и каталогов так, как их вводил пользователь, а значит и различает БОЛЬШИЕ и малые буквы.

1.3.1 Файлы

Обычные файлы размещаются на диске и содержат информацию, которую в них заносит пользователь. Файлами, являются также готовые к исполнению программы, объектные модули и т.д. Система не накладывает никаких ограничений на внутреннюю структуру информации, хранимой в файле. Структурой информации управляет пользователь, а не система. Однако, текстовые файлы в UNIX, все-таки, принято формировать в виде строк произвольной длины, отделенных друг от друга символом перевода строки (0Ah). OSF/1 версии 2.0 поддерживает работу с логическими файлами размером 100Тб и физическими в 14Гб.

1.3.2 Каталоги

В системе UNIX применяется универсальное соглашение об именах: полное имя состоит из цепочки имен каталогов, через которые проходит маршрут от корня дерева (корневого каталога) до самого файла. В имени файла, директории отделяются от последующей части символом "/". Если имя начинается со слэша - значит, это полное маршрутное имя.

Пример:

/work/users/EKostq/.login

Простое имя файла может состоять из любых символов. Длина простого имени не более 256 символов. Длина полного маршрутного имени файла не более 1024 символов. Имя из одной точки "." обозначает текущую директорию, имя из двух точек ".." - вышележащую.

1.3.3 Специальные файлы

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

1.3.4 Монтируемость и демонтируемость файловых систем

Еще одна особенность UNIX - это возможность монтирования. Т.е. всякая файловая система может быть прикреплена к общему дереву каталогов в любой его точке. Например, каталог / - это корневой (root) каталог системы. Кроме этого, он является основанием файловой системы, которая всегда монтирована. Каталог /work находится в каталоге / , но в данном случае является отдельной файловой системой от корневой файловой системы, так как все файлы на нем находятся на отдельном диске (или на отдельной части диска).

Для монтирования файловой системы используется команда /sbin/mount. Эта команда разрешает расположить данную файловую систему везде в существующей структуре каталогов.

Если нужно монтировать файловую систему, чтобы она была доступна только для чтения, то /sbin/mount необходимо запустить с ключом -r.

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

Форматы команды:

1. Локальное монтирование:

mount -t [no]type file_system_options какой_каталог в_какой_каталог

2. Удаленное монтирование:

mount -t [no]type file_system_options сетевой_адрес:какой_каталог в_какой_каталог

file_system_options - атрибуты доступа к монтируемой директории:

rw - читать/писать
ro - только читать

-t - указывает тип файловой системы (nfs, cdfs...)

сетевой_адрес - адрес машины, каталоги которой монтируются

какой_каталог - путь к каталогу (к файлу связанному с устройством) который будет монтироваться

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

3. Монтирование систем указанных в файле fstab:

mount -a

Пример файла fstab:

# cat /etc/fstab

/dev/rz2a / ufs rw 1 1

/proc /proc procfs rw 0 0

/dev/rz2g /usr ufs rw 1 2

/dev/rz2b swap1 ufs sw 0 2

/dev/rz2h /work ufs rw 1 2

/dev/rz3c /home ufs rw 1 2

Примеры:

Монтирование каталога:

# /sbin/mount -t ufs /dev/rz2d /usr

Монтирование CD-ROM'а:

# /sbin/mount -t cdfs -o noversion /dev/rz1c cdrom

ключи: -t cdfs - указывает тип файловой системы - cdfs

-o noversion - специальная опция для файловой системы

/dev/rz1c - файл, связанный с устройством чтения компакт-дисков

cdrom - каталог, куда монтируется CD-ROM

После этих действий в каталоге cdrom будет целиком доступен каталог компакт-диска и работа с ним ни чем, принципиально, не будет отличаться от работы с другими каталогами, кроме того, что в этот каталог нельзя будет записывать файлы (это же все-таки компакт-диск).

Монтирование удаленных файловых систем, посредством NFS:

Предположим, что нам нужно примонтировать каталог /usr/users/Kostq машины "DEC5000" к каталогу машины "Alpha" в точку /work/users/EKostq/mounter, тогда нужно выполнить следующее:

1. На машине "DEC5000" в файле /etc/exports разрешить монтирование этого каталога (считаем, что демон nfsd на машине "DEC5000" уже запущен) т.е. занести туда следующую строку (для этого необходимо обладать привилегированными правами):

/work/users/Kostq dfe3300.karelia.ru

2. На машине "Alpha" выполнить следующее:

# /sbin/mount -t nfs bender:/work/users/Kostq /work/users/EKostq/mounter

Чтобы получить информацию о файловых системах, которые смонтированы на данной системе UNIX, можно использовать команду /sbin/mount без аргументов:

# /sbin/mount

/dev/rz2a on / type ufs (rw)

/proc on /proc type procfs (rw)

/dev/rz2g on /usr type ufs (rw)

/dev/rz2h on /work type ufs (rw)

/dev/rz3c on /home type ufs (rw)

/dev/rz1c on /cdrom type cdfs (ro, nodev, defperm, noversion)

bender:/usr/users/Kostq on /work/users/EKostq/mounter type nfs (v2, rw, nosuid , nodev, hard, intr)

Для демонтирования файловой системы используется команда /sbin/umount. Эта команда имеет обратное действие по отношению к команде mount. Она освобождает файловую систему и вынимает ее целиком из структуры каталогов. Необходимо помнить, что корневая файловая система не может быть демонтирована. Кроме того, команда umount не будет выполнена, если кто-нибудь использует файл из той файловой системы, которую пытаются демонтировать. Это может быть даже простое пребывание некоего пользователя в одном из каталогов демонтируемой файловой системы.

Пример:

# /sbin/umount cdrom

1.4 Начальная загрузка

Начальная загрузка ОС UNIX происходит в две фазы:

1. Выполнение стартовой процедуры, записанной в ROM (Read Only Memory).
2. Выполнение UNIX стартовой процедуры.

Во время прохождения этих фаз выдается серия сообщений на экран системной консоли.

Когда вы включаете компьютер, стартовая процедура в ROM, написанная на машинном языке, производит следующие действия:

1. Выполняет системный тест SPU (System Processing Unit).
2. Определяет системную консоль и назначает дисплейный терминал в качестве системной консоли.
3. Загружает ISL (Initial System Loader) - начальный системный загрузчик.

Как правило, загружаемая система должна находиться на дисковом устройстве, где для нее определен специальный раздел, в котором находится программа загрузки (bootstrap). Дисковое устройство может, например, идентифицироваться как /dev/root.

После того как UNIX получает управление от программы загрузки, она выполняет две задачи:

- находит главную файловую систему (root file system);
- стартует init-процесс и переводит систему на уровень 2, т.е. мультипользовательский режим
UNIX.

В этот момент UNIX переходит к выполнению программы диспетчера, сразу после выдачи системного вызова exec, который заменяет команды процесса init, имеющего идентификатор ID с номером один (1), кодом, содержащимся в файле /etc/init. Теперь, когда процесс 1 приобрел свою окончательную форму, его можно называть по имени init.

Процесс init читает файл /etc/inittab, в котором содержатся точки входов, загружаемых по мере необходимости программ и командных файлов (в терминологии UNIX - shell script-файлов). Ниже приведен пример файла /etc/inittab:

...

# OSF/1 Release 1.0

is:3:initdefault:

ss:Ss:wait:/sbin/rc0 shutdown < /dev/console > /dev/console 2>&1

s0:0:wait:/sbin/rc0 off < /dev/console > /dev/console 2>&1

fs:23:wait:/sbin/bcheckrc < /dev/console > /dev/console 2>&1

# Dynamic loading not supported in this release.

#kls:23:bootwait:/sbin/kloadsrv < /dev/console > /dev/console 2>&1

#cfg:23:wait:/sbin/cfgmgr -l < /dev/console > /dev/console 2>&1

update:23:wait:/sbin/update > /dev/console 2>&1

it:23:wait:/sbin/it < /dev/console > /dev/console 2>&1

kmk:3:wait:/sbin/kmknod > /dev/console 2>&1

s2:23:wait:/sbin/rc2 < /dev/console > /dev/console 2>&1

s3:3:wait:/sbin/rc3 < /dev/console > /dev/console 2>&1

cons:1234:respawn:/usr/sbin/getty console console vt100

Процесс init всегда находится на каком-либо "УРОВНЕ ВЫПОЛНЕНИЯ". Уровень выполнения определяет состояние и поведение всей системы. Уровень обозначается цифрами 0,1,2,3,4,5,6 и буквами s,S:

 

0 - prom монитор. Полный останов системы;

1, s, S - single user mode. Однопользовательский режим;

2 - многопользовательский режим без NFS-сервера;

3 - многопользовательский режим с NFS-сервером;

6 - перезагрузка.

Одними из наиболее важных в /etc/inittab точек входа являются /etc/rc - системный инициализационный процесс shell для выполнения команд, хранящихся в файле /etc/rc, и /etc/getty, который дает возможность пользователям регистрироваться в UNIX с каждого подключенного терминала. Процессов getty образуется столько, сколько существует терминалов в системе.

Init-процесс читает файл /etc/inittab-строку за строкой, по очереди. Формат строки inittab следующий:

id:rstate:action:process

id - один или несколько символов, уникально идентифицирующих точку входа;

rstate - определяет уровень, на котором производится обработка;

action - определяет действия для данной точки входа. Они могут быть определены как следующие:

boot - определяет команду, заданную в поле process, как процедуру загрузки. Не ждет окончания порожденного процесса перед чтением следующей строки;

bootwait - тоже, но с ожиданием завершения процесса;

wait - выполняет процесс и ждет его завершения перед чтением следующей строки;

respawn - выполняет процесс, если он уже не выполняется, и не ожидает его завершения перед чтением следующей строки.

Сначала init запускает процессы, которые "sysinit". Отработав все строки "sysinit" уровня, init идет все дальше по /etc/inittab и обнаруживает строку initdefault 3 - она заставляет его "перейти" на уровень 3. Перейдя на уровень выполнения 3, init и отрабатывает первую встретившуюся строчку с уровнем "3" - запускается командный файл /etc/rc2, который в свою очередь выполняет другие файлы. Отработав /etc/rc2, init точно таким же образом запускает файл /etc/rc3. Вслед за этим он запускает несколько процессов getty - по одному на каждый имеющийся терминал. Как только это произошло, соответствующий канал связи настраивается по определенному протоколу канала и затем по системному вызову exec управление передается программе login, которая выводит на терминал: "Login:" и реализует проверку пароля. Если введенный пароль корректен, то вновь с помощью вызова exec управление передается в Shell, который принимает команды пользователя. Пользователь, войдя на терминал, некоторое время работает, но как только он "уходит" из системы, на указанном терминале ничего не остается. Init тут же выполняет действие "respawn" - перезапускает на терминал getty - и опять выводит "Login:".

Точка входа, в файле /etc/inittab, помеченная как /etc/rc, характерна тем, что в ней запускается командная процедура, которая, как правило, запускает множество процессов-демонов, или как их еще называют, следящих процессов. Помимо сетевых процессов, обрабатывающих сигналы входящих вызовов с удаленных узлов, запросов на соединение с хостом и т.д., "демонами" могут быть процессы, запускаемые по времени, mail-процессы, проверяющие содержимое почтовых ящиков абонентов и перебрасывающие туда информацию. Это могут быть программы-"чистильщики", процессы, реагирующие на определенные события и т.п. Кроме того, в файле /etc/rc могут содержаться команды, позволяющие монтировать файловые системы и запускать программы учета пользователей.

 

1.5 Защита информации

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

- защита через пароли

- защита файлов

 

1.5.1 Защита через пароли

Любой пользователь в UNIX имеет свой пароль, без которого он не может логически включиться в систему. Этот пароль в зашифрованном виде хранится в файле /etc/passwd. Корректировать этот файл может только суперпользователь.

При всяком логическом включении в систему пароль, который вводится с клавиатуры, специальным образом шифруется по уникальной кодирующей схеме и сравнивается с шифрованным паролем в файле /etc/passwd , где имеется строка с соответствующим пользовательским именем. Если пароли совпадают, то пользователь допускается в систему, а если нет, то на экран терминала выводится сообщение "login incorrect".

В любой момент по команде passwd можно изменить пароль. Для этого нужно:

- набрать passwd

- сообщить старый (может и не потребуется)

- ввести новый пароль

- подтвердить новый пароль.

Однако любые предосторожности, в том числе и частая смена паролей, не могут вполне предохранить от действий хакеров. Тут многое зависит от версии и типа UNIX (наиболее защищенной считается версия OSF/1). Если данная система является широко распространенной версией UNIX, доступной в исходных кодах, то нет никакой гарантии, что кому-то может быть известна кодирующая система, по которой шифруются и распознаются пароли. Тогда достаточно лишь распечатать файл /etc/passwd и дешифровать пароль. Выход из этой ситуации может быть следующий: закрыть файл /etc/passwd для чтения всем пользователям. Однако даже это не спасает положения. В UNIX по команде who всегда можно узнать пользовательское имя, терминальную линию, которой соответствует это имя, и написать программу, которая перехватит ввод символов по этой линии связи, выдавая себя за программу getty, и однажды, напечатав ложную подсказку password: , целиком получит пароль, введеный пользователем. Однако, это почти никогда не удается в хорошо администрированных профессиональных ОС UNIX.

 

1.5.2 Защита файлов

Защита файлов относится ко второму уровню защиты в UNIX. Даже если пользователь вошел в систему, не обладая соответствующими правами доступа к файлам (привилегиями), он не сможет манипулировать чужими файлами.

 

1.5.3 Атрибуты доступа

Если распечатать заголовок какого-нибудь файла по команде:

# ls -l DXterm

-rwxrwxrwx 1 EKostq users 5561 Feb 11 17:27 DXterm

то можно увидеть список его атрибутов, в том числе и режимы доступа к файлу, выводимые на экран в форме -rwxrwxrwx , где r-читать, w-писать, x-выполнять. Рассмотрим их значение подробней:

   owner   group   other
   r w x   r w x   r w x

Отсюда видно, что режимы доступа к файлу разбиты на три группы: права доступа собственника файла (owner, т.е. кто создал данный файл); права доступа членов группы (group), в которую входит собственник файла (для файла DXterm, в вышеприведенном примере, имя группы - users) и права доступа к данному файлу для всех остальных пользователей (other).

Если один из режимов доступа запрещен, то вместо соответствующей буквы ставится знак дефиса "-".

В следующем примере: собственнику файла разрешено читать и писать (rw-) в файл, группе - разрешено только читать (r--), а всем остальным ничего делать с файлом нельзя (---).

-rw-r----- 1 EKostq users 1738 Feb 10 13:22 mbox

^- "-" - значит файл, "d" - директория

Надо отметить, что те же самые атрибуты доступа имеют и каталоги:

drwxr-xr-x 3 EKostq users 512 Mar 20 16:53 .netscape

^- "d" - значит директория.

Если внимательно посмотреть на атрибуты, то можно заметить, что в каждой группе режимов доступа имеется триада. Эти триады легко задаются восьмеричными цифрами, причем 1 обозначает, что режим доступа включен, а 0 - выключен. Таким образом, достаточно задать любые три цифры, не превышающие 8 (по одной для каждой группы: owner, group и other), чтобы установить требуемые режимы доступа к файлу или директории. Это очень просто задается в форме подразумеваемой двоичной записи, например:

111 (7) - включить r,w,x (rwx)

101 (5) - включить r,x (r-x)

100 (4) - включить r (r--)

Такая запись используется в команде chmod (изменяет режим доступа), где в качестве аргументов задается соответствующее число и имя файла:

 

# ls -l

-rw-r----- 1 EKostq users 564 Feb 10 13:22 mon

# chmod 754 mon

# ls -l

-rwxr-xr-- 1 EKostq users 564 Feb 10 13:22 mon

 

 

 

 

 

 

2 Работа в ОС UNIX и окружение

2.1 Вход в систему

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

login:

password:

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

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

 

2.2 Переменные окружения

При входе в систему для пользователя автоматически устанавливается несколько переменных окружения. Чтобы посмотреть их значение, нужно выполнить команду setenv или set:

/work/users/EKostq/WORK> setenv
DISPLAY=:0.0 - имя графического дисплея
HOME=/work/users/EKostq - домашний каталог
LOGNAME=EKostq - регистрационное имя пользователя, соответствующее имени хранящемуся в учетной базе пользователей
PATH=/usr/bin:/usr/bin/X11:.:/usr/local/bin - список путей, по которым ищутся выполнимые файлы
SHELL=/bin/csh - командный интерпретатор
USER=EKostq - имя пользователя
LANG= - национальный алфавит (английский по умолчанию)
TERM=vt300 - тип терминала
TERMCAP=db|vt300|vt300-am|Digital VT300: ... - описание терминалов


/work/users/EKostq/WORK> set
argv ()
cwd /work/users/EKostq/WORK - текущий каталог
home /work/users/EKostq - домашний каталог
mail /usr/spool/mail/root - каталог для почты
path (/usr/bin /usr/bin/X11 . /usr/local/bin) - список путей, по которым ищутся выполнимые файлы
prompt /work/users/EKostq/WORK> - приглашение
shell /bin/csh - командный интерпретатор
status 0 - статус
term vt300 - тип терминала
user EKostq - имя пользователя

С помощью setenv можно задать значение переменной окружения, как в следующем примере:

setenv DISPLAY dfe3300:0.0

2.3 Системные файлы инициализации

 

Имеется несколько системных файлов в домашнем каталоге, которые перед собственным именем имеют точку и в результате этого, появляются в оглавлении каталога только в том случае, если употребить команду ls с ключом -a.

 

2.3.1 .login и .cshrc

C-Shell при запуске требует, чтобы в начальном каталоге (как правило, home-директория) были установлены два файла: .login и .cshrc .

Эти два файла выполняются csh при каждом входе в систему, причем сначала выполняется файл .cshrc, а потом файл .login.

Файл .login обычно содержит установочные команды, например:

 

setenv TERM vt300

setenv PATH ${PATH}:/usr/sbin

echo "today is 'date'"

 

Файл .cshrc выполняется всякий раз когда, создается новая копия интерпретатора csh, поэтому он содержит главным образом переменные, которые должны быть переустановлены для вновь создаваемого интерпретатора. Пример файла .cshrc :

 

set prompt="`pwd`> "

set history 20

 

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

Каждая оболочка имеет свой собственный файл установки. Например, во время каждого запуска C-Shell будет считываться файл .cshrc , а при старте K-Shell будет обрабатываться файл .kshrc .

 

 

2.3.2 .X11Startup

Системный файл .X11Startup выполняется при запуске X-сессии, т.е. любого приложения, использующего библиотеку X-Window.

 

2.3.3 profile

Существует файл профиля /etc/profile , который содержит параметры среды для всех пользователей и выполняется перед входом в систему. Кроме него в личном каталоге каждого пользователя существует особый файл профиля (если используется K-Shell (ksh) или Bourne-Shell (sh), то - .profile , а если C-Shell (csh), то - .login), который содержит дополнительные параметры среды пользователя. Система исполняет этот файл при всяком логическом включении в нее.

Тип используемой оболочки наряду с паролем и идентификатором входа, описывается в файле /etc/passwd .

2.4 Псевдонимы и макрокоманды

С помощью ключевого слова "alias" можно создавать псевдокоманды и макрокоманды и передавать им аргументы. Чтобы иметь возможность передавать аргументы через псевдокоманду, надо использовать восклицательный знак, за которым следует знак * , причем обоим знакам предшествует знак обратной косой черты. Следующий пример показывает, как сделать подсказку в виде пути к текущей директории:

alias cd 'cd \!*; set prompt="`pwd`> "'

 

2.5 Русификация UNIX

2.5.1 Подключение русских фонтов к компьютеру с X11

Для подключения русских фонтов нужно скопировать их (файлы с одним из трех расширений: *.pcf, *.snf, *.bdf ) в директорию со стандартными фонтами:

cp *.pcf /usr/lib/X11/fonts/.../cyrfonts

cd /usr/lib/X11/fonts/.../cyrfonts

в каталоге с фонтами создать оглавление фонтов для X-server'а:

# /usr/bin/X11/mkfontdir

после этого в каталоге должен появиться (измениться) файл fonts.dir с описанием соответствия файлов и шрифтов.

Указываем X-server'у, чтобы он брал фонты из этих каталогов:

# /usr/bin/X11/xset +fp /usr/lib/X11/fonts/.../cyrfonts

список директорий с подключенными шрифтами можно получить с помощью команды xset:


/usr/bin/X11/xset q
Keyboard Control:
auto repeat: on key click percent: 50 LED mask: 00000000
auto repeating keys: ffffffffffffffff
ffffffffffffffff
ffffffffff07f8df
ffffffffffffffff
bell percent: 50 bell pitch: 400 bell duration: 100
Pointer Control:
acceleration: 7/1 threshold: 3
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 600 cycle: 600
Colors:
default colormap: 0x27 BlackPixel: 1 WhitePixel: 0
Font Path:
/usr/lib/X11/fonts/cronyx/100dpi,/usr/lib/X11/fonts/cronyx/75dpi,/usr/lib/X11/fonts/cronyx/misc,/usr/lib/X11/fonts/decwin/cr_100dpi,/usr/lib/X11/fonts/decwin/cr_75dpi,/usr/lib/X11/fonts/decwin/cr_misc,/usr/lib/X11/fonts/decwin/100dpi,/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/Speedo/,/usr/lib/X11/fonts/Type1 /,/usr/lib/X11/fonts/75dpi/,/usr/lib/X11/fonts/100dpi/
Bug Mode: compatibility mode is disabled

Обновить базу данных шрифтов:

/usr/bin/X11/xset fp rehash

Установить фонт по умолчанию в своем .Xdefaults файле, т.е. добавить в него следующие строчки:

font.name: koi9x15
icon.font.name: koi6x10

XTerm*font: koi6x10
XTerm*VT100*font1: koi6x10
XTerm*VT100*font2: koi8x13
XTerm*VT100*font3: misc16
XTerm*VT100*font4: misc24
XTerm*VT100*font5: demos8x14
XTerm*VT100*font6: demos8x16

emacs.font: koi9x15
emacs.default_font: koi9x15

2.5.2 Подключение русской клавиатуры в X-Windows

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

xmodmap файл_с_раскладкой

Пример:

/usr/bin/X11/xmodmap keymap

Переключатель рус/лат - клавиша CapsLock.

 

2.5.3 Использование русских фонтов в приложениях

Для русификации DECterm требуется:

1. Запустить dxterm, открыть меню Window/General и сделать следующее:

- Изменить опцию UPS DEC SUPPLEMENTIAL на UPPS ISO LATIN

- Выбрать опцию VT300 MODE 8 BIT CONTROLS

- Установить опцию Normal Cursor Keys

2. Установить шрифт в меню Window/Fonts - можно использовать любой из установленных в системе koi8 шрифтов.

Для русификации Xterm достаточно запустить его с соответствующим ключом (-fn fontname):

xterm -fn 12x20koi8

Для использования русских фонтов в Netscape Gold нужно выбрать пункт меню Options/Fonts, установить один из koi8 шрифтов, затем выбрать пункт Options/Document Encoding/koi8-r и сохранить установки в файл.

3 Команды UNIX и работа с ними

Чтобы запустить программу на выполнение, достаточно набрать ее имя и, если нужно, другие аргументы командной строки. Имя программы - это маршрутное имя файла, в котором эта программа находится. Аргументы разделяются одним или несколькими пробелами. Ключи команды обычно (но необязательно) выделяются знаком "-". Если командная строка кончается знаком &, происходит запуск параллельного процесса, в рамках которого будет выполняться команда, сообщается его номер, после чего можно продолжать работу, не дожидаясь завершения фоновой задачи. Можно вводить несколько команд в одной строке, отделяя их, друг от друга ";" (точкой с запятой):

 

команда1 -ключи -ключи ... прочие разные аргументы ... ; команда2 -ключи ...

 

Пример:

/work/users/EKostq> date ; ps -Af

Три направления ввода-вывода являются выделенными - стандартный ввод, стандартный вывод и стандартный протокол. Как правило, команды операционной системы берут исходные данные из стандартного ввода и помещают результаты в стандартный вывод. Первоначально стандартные ввод, вывод и протокол назначены на терминал, однако их можно переназначить, если после команды поместить одну из конструкций:

команда > имя_файла - для стандартного вывода

команда < имя_файла - для переназначения стандартного ввода

команда 2> имя_файла - для стандартного протокола - системной диагностики

 

Пример:

Записать в файл infdir содержимое текущей директории:

ls > infdir

(ls - вывести содержимое каталога)

Если вывод назначен в файл, то перед началом выполнения команды создается пустой файл с соответствующим именем (если файл уже существовал, он опустошается), а затем в него помещается информация. Если информацию нужно дописать в конец существующего файла, следует воспользоваться конструкцией:

команда >> имя файла

команда 2>> имя файла

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

 

Пример:

TERM=vt300

HOME=/work/users/EKostq

PATH=/usr/bin:/usr/bin/X11:.:/usr/local/bin

Выдачу одной команды можно перенаправлять на вход другой команды. Для этого используется "|" - конвейер. Для задания шаблона имен используются символы * (произвольная последовательность символов) и ? (один произвольный символ).

 

Пример:

Посчитать суммарный размер и число строк всех файлов в каталоге, /work/users/EKostq/WORK имена которых начинаются с символов "text":

cat /work/users/EKostq/WORK/text* | wc -c

cat - сливает вместе все файлы вида /tmp/text*

wc -c - считает количество символов и число строк во входном потоке.

 

3.1 Символы-шаблоны и символы - замещения

Символы-шаблоны и символы - замещения, иначе еще называемые метасимволами, используются в UNIX обычно при генерации имен файлов. Обычно управление процессом генерации имен в UNIX обеспечивается с помощью следующих метасимволов:

* - соответствует любой последовательности символов

? - соответствует любому символу

[ - открывает группу символов

] - закрывает группу символов

- - означает некий диапазон символов.

 

Примеры:

# ls *.c Распечатает все файлы, с расширением ".c"
# ls b* Распечатает все файлы, начинающиеся с буквы "b"
# ls ??.c Распечатает все файлы, с двухбуквенным именем до расширения (например, ab.c, или 12.c, или lz.c и т.д.)
# ls pic[0-9] Распечатает все файлы, у которых имя состоит из первых трех букв "pic" и любой цифры
# ls pic[3-8] Распечатает все файлы, у которых имя состоит из первых трех букв "pic" и цифры в диапазоне 3-8
# ls pic[0-15] Распечатает все файлы, у которых имя состоит из первых трех букв "pic" и цифры 0,1 и 5.


3.2 Кавычки

Интерпретатор Shell различает 4 различных символа клавиатуры, которые трактуется как кавычки:

- двойные кавычки (")

- апостроф (')

- символ обратной наклонной черты (\)

- обратный апостроф (`)

 

Каждая из этих кавычек имеет специальное и отличное от остальных значение.

3.2.1 Двойные кавычки

Пусть текущий каталог содержит файлы:

 

# ls

Netscape mbox keymap

Теперь посмотрим результат двух команд echo:

 

# echo *

Netscape mbox keymap

# echo "*"

*

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

Это, в сущности, значение двойных кавычек: любой символ, который имеет специальное значение (как, например, *, ?, <, >, >> и |), поставленный в двойные кавычки, утрачивает свой специальный статус. Исключениями здесь являются символ $, обратный апостроф и обратная наклонная черта, если она предшествует специальному символу.

 

3.2.2 Апостроф

Рассмотрим следующий пример:

 

# set message=Hello!

# echo $message

Hello!

# echo "$message"

Hello!

В обоих случаях получаем одинаковый результат, однако, если мы заключим переменную message в апострофы, то получим следующее:

 

# echo '$message'

$message

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

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

 

# echo *

Netscape mbox keymap

# echo * "*" '*'

Netscape mbox keymap * *

# var=Hello!

# echo $var "$var" '$var'

Hello Hello $var

3.2.3 Обратно наклонная черта

Обратно наклонная черта, будучи поставлена перед символом, ликвидирует его специальное значение для Shell:

# echo \$message

$message

# echo \\

\

Последний пример показывает, что \ можно использовать перед другой \ , чтобы ликвидировать ее специальное значение.

3.2.4 Обратные апострофы

Если некоторая команда будет заключена в обратные апострофы, Shell обязательно исполнит ее и поместит на точно определенное место в командной строке, именно на то, где эта команда находится:

# echo Today is `date`

Today is Mon Mar 24 11:45:21 1997

Или как в следующем примере:

# echo Current directory is `pwd`

Current directory is /work/users/EKostq

Можно использовать конвейерные конструкции:

# users=`who | wc -l`

# echo There are $users users logged in

There are 5 users logged in

 

3.3 Команды UNIX

3.3.1 man - Справочная информация по командам и ключам

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

Формат команды: man [-] [-M path] [section] name ...

man -f file ...

или

man имя_команды

man -k ключевое_слово - список команд, относящихся к ...

3.3.2 pwd - Выдать имя текущей директории

Пример:

# pwd

/work/users/EKostq

3.3.3 cd - Сменить текущую директорию

Формат команды: cd [директория]

cd .. - перейти на вышележащую директорию

cd - перейти в домашнюю директорию

Пример:

# cd /work/users/EKostq

Если директория не указана, произойдет переход в "домашний" каталог $HOME.

3.3.4 ls - Распечатать информацию о файлах или директориях

Формат команды: ls [ключи] [имена]

ls [ -1ACFLRabcdfgilmnopqrstux ] [files]

имена - имена файлов или директорий; для директорий распечатывается список входящих в нее файлов, для файлов - повторяется имя файла и дополнительная информация в соответствии с ключами. Имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущей директории.

ключи - по умолчанию выдаются только имена файлов, в одну колонку и в алфавитном порядке:

-a - вывести все файлы (даже те, имена которых начинаются с точки);

-x - вывод в 4 колонки;

-t - имена файлов сортируются не по алфавиту, а по времени последнего изменения (сначала идут самые свежие, только что измененные файлы);

-R - рекурсивно пройти по всем подкаталогам.

Примеры:

ls -la - вывод в длинном полном формате:

           число
          линков         группа      время модификации 
атрибуты  (имен) владелец      размер                 имя файла
total 4329
drwx------    13 EKostq  users   1024  Mar 21 13:43   .
drwxr-xr-x    16 root    system   512  Mar  3 21:53   ..
-rwx------     1 EKostq  users    361  Feb 25 16:32   .X11Startup
-rw-r--r--     1 EKostq  users   2007  Feb 27 17:40   .Xdefaults
-rwx------     1 EKostq  users   2341  Mar 11 16:03   .login
drwxr-xr-x     3 EKostq  users    512  Mar 20 16:53   .netscape
-rw-r--r--     1 EKostq  users    567  Mar 11 16:07   DXnotepad
-rwxrwxrwx     1 EKostq  users   5561  Feb 11 17:27   DXterm
drwxr-xr-x     6 EKostq  users    512  Mar 20 16:30   WORK
-rwxr-xr-x     1 EKostq  users   3246  Feb 11 16:25   keymap
drwx------     2 EKostq  users    512  Feb 13 16:22   mail
-rw-r--r--     1 EKostq  users   1738  Feb 10 13:22   mbox
drwxr-xr-x     2 EKostq  users    512  Mar 25 16:23   mounter
^^  ^  ^
||  |  +----- права всех "прочих" по отношению к файлу
||  +-------- права одной с ним группы
|+----------- права "владельца" файла
+------------ "-" - значит файл, "d" - директория

Атрибуты:

r - файл доступен для чтения,

w - файл доступен для записи,

x - файл является выполнимым,

- - данное право доступа отсутствует.

ls -CF - оглавление каталога в несколько столбиков

ls -al - оглавление в полном формате

 

3.3.5 cp - Копировать файлы

Формат команды: cp file1 file

cp file1 file2 [...] каталог

Эта команда копирует file1,... , в file. Если file - это директория, то file1 и др. копируются в нее под своими именами. Если file не существовал, то он создается, если существовал, его старое содержимое теряется.

 

3.3.6 mv - Переместить (переименовать) файлы

Формат команды: mv file1 file

mv file1 [file2 ...] каталог

Команда аналогична команде cp, но не сохраняет исходного файла. Ее основная роль - переименование файлов и перенос файлов из одной директории в другую.

Пример:

# mv /work/users/EKostq/DX* /work/users/EKostq/WORK

 

3.3.7 ln - Создать ссылку на файл

Эта команда создает файлу file1 еще одно имя. В итоге file1 и file2 на самом деле физически являются одним и тем же файлом. Если создать так называемый "символический линк", (используя ключ "-s"), то файл file1 при этом не обязан существовать. Имя "file2" при этом все равно будет создано.

Формат команды: ln file1 file2 - создается "жесткий" линк

ln -s file1 file2 - создается "символический" линк

 

3.3.8 rm, rmdir - Удалить файл или директорию

Формат команды: rm [-efirR] file ...

-i - просить подтверждения на каждое удаление

-r - рекурсивно удалить вместе с подкаталогами

-f - не просить подтверждения, а сразу удалить

Для удаления пустой директории можно воспользоваться командой rmdir.

Формат команды: rmdir директория ...

Чтобы удалить не пустую директорию нужно выполнить команду:

rm -r директория

Ввиду того, что под шаблон ".*" подходит каталог ".." никогда не следует выполнять команду: rm -r .* .

3.3.9 mkdir - Создать директорию

Для создания директории применяется команда mkdir.

Формат команды: mkdir имя_директории ...

3.3.10 du - Вывод информации о размерах файлов в каталогах

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

Формат команды: du [-a | -s] [-klrx] [file ...] [directory ...]

Пример:

# du -k

-k - результат выдается в килобайтах

 

3.3.11 df - Сообщения о свободных и занятых блоках

Команда df дает список свободных и используемых блоков для каждой смонтированной файловой системы.

Формат команды: df [-eiknP] [-t fstype] [file| file_system ...]

Пример:

# df -k

-k - результат выдается в килобайтах

 

3.3.12 cat - Вывести содержимое файла

cat читает каждый из указанных файлов и выводит их содержимое на стандартный вывод.

Формат команды: cat file1 [file2... ]

Примеры:

# cat file

распечатывает содержимое файла file, а

cat file1 file2 > file3

сливает первые два файла и помещает результат в третий. Чтобы добавить file1 к file2, надо выполнить команду:

# cat file1 >> file2

для создания файла можно воспользоваться следующими способами:

# cat > file - создает файл file и пишет в него из стандартного ввода. Запись в файл закончится после нажатия Ctrl+D.

 

3.3.13 more, pg - Просмотреть файл постранично

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

Формат команды: more file_name ...

Просмотром можно управлять с помощью клавиш:

q - завершить просмотр

ПРОБЕЛ - показать следующую страницу

ENTER - сдвинуться на одну строку

b - показать предыдущую страницу

/ - поиск

h - Help - посмотреть список всех возможных команд

more - используют, чтобы посмотреть "длинную" информацию, выдаваемую командой с остановкой:

# ls -la | more - просмотреть оглавление

# ps -e | pg - просмотреть список работающих процессов

 

3.3.14 echo - Вывести аргументы командной строки

Echo - выводит на стандартный вывод свои аргументы:

Примеры:

Вывести на терминал Hello:

# echo Hello

Hello

Вывести на терминал символ Ctrl-O, он же 017 восьмиричное (восстанавливает латиницу на терминалах типа vt220 и at386.):

# echo "\017"

 

3.3.15 grep - Команда поиска "фильтрует" строки

Команда grep/egrep "фильтрует" строки - оставляя только "подходящие" под шаблон:

 

Формат команды: grep шаблон [ file ... ]

В шаблон могут входить обыкновенные символы (представляющие сами себя), а так же спецсимволы, выполняющие служебные функции шаблона:

. - любой произвольный символ

* - "множитель" (предыдущий символ любое число раз)

.* - любая последовательность символов

^шаблон - привязать шаблон к началу строки

шаблон$ - привязать шаблон к концу строки

[символы] - ровно один символ из тех, что стоит в скобках

Примеры:

Вывести всех привилегированных пользователей:

# grep ':0:0:' /etc/passwd

Вывести всех непривилегированных пользователей:

# grep -v ':0:0:' /etc/passwd

Вывести всех пользователей, имена которых начинаются с букв a,b,e,d

# cat /etc/passwd | grep "^[abed].*"

 

3.3.16 find - Команда поиска файлов

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

 

Формат команды: find файл [ ... ] ключи/условия/действия

 

Ключи-условия команды find:

 

-name "*.c" - простое имя подходит под шаблон *.c

-type f - брать только обыкновенные файлы

-type d - брать только каталоги

-size +500 - файлы размером больше 500*512 байт

-mtime -3 - дата модификации меньше 3-х дней

-newer filename - дата модификации нашего файла меньше, чем у заданного файла filename

Команда find использует стандартные SHELL'овские шаблоны, а команда grep использует шаблоны другого формата, называемые регулярными выражениями.

Ключи-действия команды find:

-print - распечатать маршрутное имя файла

-exec - команда над файлом {} \;

Напечатать имена всех файлов, изменившихся за последние 4 дня в текущем каталоге и его подкаталогах:

# find . -type f -mtime -4 -print

Уничтожить все файлы с окончаниями *.bu, *%, которые не менялись больше месяца:

# find / \( -name "*.bu" -o -name "*%" \) -type f \ -atime +30 -exec rm {} \;

запись "rm {} \;" - обозначает команду UNIX, которая будет выполняться для всех таких найденных файлов. Вместо значка "{}" будет подставляться каждый раз имя найденного файла.

3.3.17 wc - Подсчет числа строк или символов

Команда wc подсчитывает число единиц текста в текстовом файле. Обычно она сообщает число байт, строк, символов или слов во входных файлах или стандартном вводе, если имя файла не указано. Ключи служат для задания единиц измерения текста: c - байты, l - строки, m - символы, w - слова.

Формат команды: wc [-clmw] [file...]

 

3.3.18 chmod - Изменение прав доступа к файлам/каталогам

Команда chmod меняет атрибуты (права доступа) файла/каталога. Более подробную информацию можно посмотреть в разделе "Атрибуты доступа".

Формат команды: chmod attrib file

Поставить файлу право на чтение, запись и выполнение для собственника:

# chmod 700 file

Формат символьного режима следующий:

[u|g|o|a] op permission

где: u - разрешение видов доступа для собственника

g - разрешение видов доступа для группы

o - разрешение видов доступа для остальных

a - разрешение видов доступа всем потребителям (ugo)

op - операция: + - добавлять режим доступа

- - отменять режим доступа

= - задавать режим доступа

permission - комбинация букв "r", "w" и "x", которые означают соответственно чтение, запись и исполнение.

Поставить файлу право на выполнение (или создать исполняемый файл):

# chmod u+x file

Разрешить остальным пользователям исправлять файл:

# chmod a+w file

3.3.19 chgrp - Изменение группы

Владелец файла (file) может изменить группу доступа к файлу (на group), воспользовавшись командой chgrp:

Формат команды: chgrp group file ...

Пример:

# ls -l

- rw- r-- r-- 1 EKostq users 1738 Feb 10 13:22 mbox

# chgrp adm mbox

# ls -l

rw- r-- r-- 1 EKostq adm 1738 Feb 10 13:22 mbox

После этого члены группы adm получают права использование файла mbox в соответствии с установленными атрибутами.

3.3.20 chown - Изменение владельца

Владелец файла (file) может изменить владельца файла (на owner), хотя после этой операции он уже не сможет вернуть собственность обратно, это может сделать только новый собственник.

Формат команды: chown owner file ...

Пример:

# ls -l

- rw- r-- r-- 1 EKostq users 1738 Feb 10 13:22 mbox

# chown pgm mbox

# ls -l

- rw- r-- r-- 1 pgm users 1738 Feb 10 13:22 mbox

 

3.3.21 su - Получение прав суперпользователя или регистрация под другим именем

Команда su (superuser) дает право изменить обычные привилегии, на системные, если известен системный пароль. Если после команды su указать имя пользователя, то можно временно зарегистрироваться под именем этого пользователя. Для этого, конечно, нужно знать его пароль.

Пример:

# su pgm

Password:

 

3.3.22 newgrp - Перерегистрация к другой группе

Команда newgrp подобна команде su. В любой момент пользователь может изменить группу, к которой он принадлежит:

Пример:

# newgrp adm

3.3.23 who - Кто работает в системе

Команда who показывает, кто работает в системе:

Формат команды: who [-AabdHhlmMpqrsTtu] [am {i,I}] [file]

who am i - кто я такой

who - кто работает в системе

Примеры:

# who am i

EKostq ttyp2 Mar 24 11:29

# who

EKostq :0 Mar 24 11:26

EKostq ttyp1 Mar 24 11:27

EKostq ttyp2 Mar 24 11:29

pgm ttyp3 Mar 24 11:31

pgm ttyp4 Mar 24 11:34

3.3.24 id - Вывод идентификации пользователя и группы

Команда id записывает в стандартный вывод информацию об идентификаторе пользователя и группы текущего процесса. Если реальные и эффективные идентификаторы не совпадают, то выводятся оба.

Пример:

# id

uid=44(EKostq) gid=15(users)

3.3.25 finger - Вывод информации о локальных и удаленных пользователях

По умолчанию, команда finger показывает информацию о каждом зарегистрированном пользователе, включая login-имя, полное имя, имя терминала, время включения в систему и т.д. Когда finger используется для получения информации об удаленных пользователях, то имя удаленного пользователя должно специфицироваться как username@hostname.

Формат команды: finger [-bfhilmpqsw] username

finger [-l] username@hostname

-b подавляет вывод имени home-каталога

-f подавляет вывод заголовка

-h подавляет печать .project-файла

-i короткий формат выдачи информации

-l полный формат

-m соответствие аргументов пользовательскому имени

-p подавляет печать .plan-файла

-q быстрый выводной формат

-s короткий выводной формат

-w подавляет печать полного имени

Пример:

# finger

Login Name TTY Idle When Office

EKostq Konstantin_Ekimov *:0 Mon 11:26

EKostq Konstantin_Ekimov p1 3 Mon 11:27

EKostq Konstantin_Ekimov p2 Mon 11:29

pgm student-programmer p3 Mon 11:31

pgm student-programmer p4 Mon 11:34

3.3.26 ping - Посылка эхо-запроса к сетевому хосту

Команда ping проверяет доступность удаленных (в этом разделе будет означать - "находящихся на расстоянии") хостов. Она посылает специальный пакет "эхо-запрос" протокола ICMP к удаленному сетевому хосту, и если тот отвечает, то на экране появляется сообщение, что указанный хост существует. В противном случае появляется сообщение о неуспешной попытке соединения по сети.

 

Формат команды:

 

ping [-dfnqrvR] [-c count] [-i wait] [-l preload] [-p pattern] [-s packetsize] host

или

ping host [timeout]

ping -s [-drv] [data_size] [npackets]

 

-c число пакетов

-s указывает, что надо посылать дейтаграмму каждую минуту и немедленно выводить все приходящие ответы. В аргументах data_size и npackets можно указать желаемый размер и количество посылаемых пакетов

-d отладочный режим. Печатает ping-статистику на stdout

-r обходит таблицы обслуживания и посылает запрос, к непосредственно присоединенному хосту. Если хост не является непосредственно присоединенным к данной машине, то возвращается ошибка

-v проверочный режим. Заносит в список все ICMP-пакеты, отличающиеся от ECHO-RESPONSE

 

Пример:

 

# /sbin/ping -c 3 bender

PING bender.karelia.ru (193.232.254.81): 56 data bytes

64 bytes from 193.232.254.81: icmp_seq=0 ttl=255 time=1 ms

64 bytes from 193.232.254.81: icmp_seq=1 ttl=255 time=1 ms

64 bytes from 193.232.254.81: icmp_seq=2 ttl=255 time=1 ms

 

----bender.karelia.ru PING Statistics----

3 packets transmitted, 3 packets received, 0% packet loss

round-trip (ms) min/avg/max = 1/1/1 ms

 

 

3.3.27 last - Вывод информации о пользователях, входивших и выходивших из системы

Команда last выдает информацию о пользователях входивших и выходивших из системы. Для этого она пользуется информацией из файла /var/adm/wtmp.

 

Формат команды: last [-n] [name...] [tty...]

Пример:

# last

EKostq	ttyp2			Fri	May	16	16:58	still	logged in
EKostq	ttyp2			Fri	May	16	16:56  -	16:58	(00:01)
student	ttyp3	bender.karelia.ru	Fri	May	16	16:55	still	logged in
student	ttyp3	bender.karelia.ru	Fri	May	16	16:49  -	16:55	(00:05)
EKostq	ttyp2			Fri	May	16	16:47  -	16:56	(00:08)
EKostq	ttyp1			Fri	May	16	16:38	still	logged in
EKostq	ttyp1			Fri	May	16	16:00  -	16:38	(00:37)
EKostq	:0			Fri	May	16	16:00	still	logged in
pavel	:0			Fri	May	16	15:59  -	16:00	(00:00)
pavel	ttyp1			Fri	May	16	15:31  -	15:58	(00:27)
pavel	:0			Fri	May	16	15:31  -	15:58	(00:27)
VEB	ttyp1			Fri	May	16	15:26  -	15:28	(00:02)
VEB	ttyp1	lab127c.dfe.pgu.	Fri	May	16	15:24  -	15:26	(00:02)
VEB	ttyp1			Fri	May	16	15:02  -	15:11	(00:08)
VEB	:0			Fri	May	16	15:02  -	15:11	(00:08)
Vad	ttyp1			Fri	May	16	15:02  -	15:02	(00:00)
Vad	:0			Fri	May	16	15:01  -	15:02	(00:00)
student	ttyp5			Fri	May	16	14:14  -	14:34	(00:19)
student	:0			Fri	May	16	14:12  -	14:40	(00:27)
student	ttyp2			Fri	May	16	14:12  -	14:12	(00:00)
student	:0			Fri	May	16	14:11  -	14:12	(00:01)
student	ttyp1	bender.karelia.r	Fri	May	16	14:07  -	14:29	(00:22)
VitMan	ttyp3	lab221b.dfe.pgu.	Fri	May	16	14:06  -	16:43	(02:37)
...
wtmp	begins	Mon	Apr  10	13:05

# last shutdown
shutdown   ~			Thu	May	08	14:51
shutdown   ~			Mon	May	05	19:37
shutdown   ~			Wed	Apr	30	16:56
shutdown   ~			Tue	Apr	29	20:51
shutdown   ~			Mon	Apr	28	17:54
shutdown   ~			Mon	Apr	28	17:40
...
wtmp	begins	Mon	Apr  10	13:05

 

3.3.28 ps - Узнать номера выполняемых процессов

Сообщает номера процессов, которые выполняются в системе.

Форматы команды:

ps [-Aedamjflr] [-oO format] [-t tlist] [-p plist] [-u ulist] [-U ulist] [-g glist] [-G glist] [-s slist] [-n nlist]

или BSD совместимый:

ps [aAeghjlLmsSTuvwx] [oO specifier][=header],... [t tty] [process_number]

Примеры:

ps - вывести процессы, запущенные только с этого терминала

ps -A - вывести все процессы

ps -f - вывести в "полном" формате

# ps -Af

USER	PID	PPID	%CPU	STARTED  TT	TIME	COMMAND
...
root	340	336	0.0	13:43:02 ??	8:33.67	/usr/bin/X11/X
root	1607	336	0.0	17:21:20 ??	0:01.54	-:0 (xdm)
EKostq	1623	1622	0.0	17:21:50 ??	0:01.57	dxsession
EKostq	1628	1623	0.0	17:21:53 ??	0:03.62	/usr/bin/X11/mwm
EKostq	1629	1623	0.0	17:21:56 ??	0:01.23	/usr/bin/X11/dxclock
EKostq	1642	1623	0.0	17:22:31 ??	0:03.19	/usr/bin/X11/dxnotepad
root	1728	1666	0.0	17:32:27 p2	0:00.08	ps -Af

 

3.3.29 tty - Вывод имени терминала

Команда tty выводит имя специального файла, которое ассоциируется с терминалом пользователя. Флаг -s подавляет вывод имени терминала, и вместо этого формируется только код завершения.

Формат команды: tty [-s]

Пример:

# tty

/dev/ttyp1

3.3.30 set - Установка режимов, переменных и вывод установленных значений

Команда set устанавливает переменные и режимы, а также выводит их значение.

Формат команды: set переменная=значение

/work/users/EKostq/WORK> set var="Hello"

/work/users/EKostq/WORK> set

argv ()

cwd /work/users/EKostq/WORK - текущий каталог

home /work/users/EKostq - домашний каталог

mail /usr/spool/mail/root - каталог для почты

path (/usr/bin /usr/bin/X11 . /usr/local/bin) - список путей, по которым ищутся выполнимые файлы

prompt /work/users/EKostq/WORK> - приглашение

shell /bin/csh - командный интерпретатор

status 0 - статус

term vt300 - тип терминала

user EKostq - имя пользователя

var Hello - установленная переменная

Команда set без параметров выводит список установленных переменных.

 

3.3.31 kill - Прервать процесс

Команда kill посылает указанному процессу сигнал немедленной остановки.

Формат команды: kill -l

kill [-signal_name | -signal_number] process_ID ...

-l - распечатать список сигналов

# kill -l

HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

Пример (см. описание команды ps):

Прервать процесс номер 1642, т.е. /usr/bin/X11/dxnotepad (номер (PID) можно узнать командой ps -Af):

# kill -9 1642

-9 - удалить немедленно

Прервать программу на вашем терминале, запущенную не в фоновом режиме, можно нажатием клавиши Ctrl-C, или клавиши Ctrl-\ .

 

3.3.32 nohup - Выполнение команды с защитой от прерываний

Команда nohup выполняет указанную команду command, с возможностью игнорирования ей сигналов SIGHUP и SIGQUIT. Стандартный вывод команды направляется в файл nohup.out .

Формат команды: nohup command [arguments]

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

# nohup mon&

После этого можно закрыть терминал и выйти из системы, при этом программа mon будет продолжать работать.

 

3.3.33 at - Исполнение задания в определенный момент

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

Форматы команды:

at [-c|-k|-s] [-m] [-f file] [-q{a|b|e|f}] [ time [date] [inc] | -t [[CC]YY]MMDDhhmm[.SS] ]

at -l [-o] [-q{a|b|e|f}] [user ...]

at -r [-Fi] job ... | -u user

3.3.34 passwd - Сменить пароль

Эта команда позволяет пользователю сменить пароль входа в систему. Для этого ему необходимо:

- набрать passwd

- ввести старый пароль (может и не потребуется)

- ввести новый пароль

- подтвердить новый пароль.

3.3.35 shutdown - Отключение системы UNIX

Формат команды: shutdown [ -krhfn ] shutdowntime [ message ]

Перед выключением компьютера, следует, будучи пользователем root выполнить команду:

/sbin/shutdown -h time или /sbin/shutdown -h now

-h - выполнить shutdown и выключить систему

time - указывает время разгрузки системы в формате - чч:мм, вместо времени можно указать параметр now для немедленного исполнения

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

# /sbin/shutdown -r

Перезагрузить или разгрузить систему можно также и из меню системного администратора команды sysadm.

 

 

 

 

 

 

 

 

4 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

4.1 Сетевые приложения

4.1.1 mail, mailx - Программы работы с электронной почтой

Электронная почта (также называемая e-mail) - наиболее распространенный способ использования преимуществ работы с сетью. При хорошем соединении с удаленной системой, электронная почта может достичь адресата почти сразу же. Существует возможность посылать электронную почту группам пользователей и на все подключенные к данной сети компьютеры. Почтовые сообщения можно читать, сохранять в файлах, сортировать.

Для этого в UNIX существуют две наиболее распространенные команды - это mail и mailx.

4.1.2 pine - Программа работы с почтой и конференциями

Программа pine интересна тем, что предоставляет лучший интерфейс по сравнению с mailx и доступна из telnet сессии.

4.1.3 talk - Диалог с пользователями сети

Программа talk позволяет осуществить диалог в реальном времени между пользователями сети. Она разделяет экран пополам, позволяя печатать в верхней половине, и видеть, что отвечает другой пользователь в нижней половине.

4.1.4 telnet - Обеспечение виртуального доступа к машине

Команда telnet обеспечивает пользователям возможность удаленного (в этом разделе будет означать - "находящегося на расстоянии") доступа к системе. При этом отображение и ввод производится на локальной системе, а все действия на удаленной, таким образом, для пользователя эта работа абсолютно прозрачна, как если бы он сидел за той машиной реально. Для того чтобы при этом исполнялись еще и графические приложения с удаленной машины (для telnet'ов, поддерживающих X Window) необходимо добавить графический интерфейс удаленной станции командой xhost. Предположим необходимо на машине "Alpha", с сетевым адресом dfe3300.karelia.ru, запускать графические приложения с машины "DEC5000", сетевой адрес которой bender.karelia.ru, тогда нужно выполнить следующее:

1. Добавить графический интерфейс удаленной станции:

# /usr/bin/X11/xhost +bender.karelia.ru

2. Войти telnet'ом на "DEC5000":

# /usr/ucb/telnet bender.karelia.ru

3. Сделать соответствующие установки дисплея:

# setenv DISPLAY dfe3300.karelia.ru:0.0

От установок переменной DISPLAY зависит, на какой дисплей будет производится вывод графических приложений: на "DEC5000", "Alpha" или другие. Вообще, ее значение должно соответствовать значению переменной DISPLAY той машины, на которую мы хотим выводить эти приложения.

Для предоставления доступа с удаленной станции посредством telnet'а необходимо на локальной UNIX-машине запустить соответствующий демон telnetd.

Сейчас сторонними фирмами выпускается Telnet Server и для Windows NT, поддерживающий DOS-режим, что открывает еще большие возможности для взаимодействия между этими системами.

 

4.1.5 ftp, ncftp - Программы для передачи файлов

Команда ftp позволяет осуществлять передачу файлов между локальными и удаленными системами. Для установки FTP-сервера на данной машине, необходимо запустить демон ftpd, обеспечивающий взаимодействие между локальной и удаленной системами.

Существует более удобный вариант этой программы ncftp, который существенно упрощает работу в сети. Она позволяет восстанавливать соединение после разрыва соединения, оказываясь в том же каталоге, где произошел обрыв, и позволяет догружать файлы. Автоматически подставляет почтовый адрес пользователя в качестве пароля при входе anonymous и многое другое. Ниже приведен список операций поддерживаемых командой ftp:

ftp> ?

!		cr		ls		prompt		runique
$		delete		macdef		proxy		send
account		debug		mdelete		sendport	status
append		dir		mdir		put		struct
ascii		disconnect	mget		pwd		sunique
bell		form		mkdir		quit		tenex
binary		get		mls		quote		trace
bye		glob		mode		recv		type
case		hash		mput		remotehelp	user
cd		help		nmap		rename		verbose
cdup		image		ntrans		reset		?
close		lcd		open		rmdir

ftp>

Список операций поддерживаемых командой ncftp:

NcFTP> ?

Commands may be abbreviated. 'help showall' shows aliases, invisible and
unsupported commands. 'help <command>' gives a brief description of <command>.

!	dir	lcd	ls	pdir	redir	rm	version
cd	echo	lls	mkdir	pls	rename	rmdir
close	get	lookup	mput	predir	quit	set
create	help	lpage	open	put	quote	site
debug	hosts	lpwd	page	pwd	rhelp	type

NcFTP>

4.1.6 Netscape - Программа для просмотра информации в Internet

Netscape Navigator является одной из самых новых графических программ для просмотра информации в Internet. Она имеет очень удобный графический интерфейс и позволяет работать в сети, используя протоколы: http, ftp и telnet.

При использовании http информация представляется в виде красиво оформленных web-страниц, содержащих: текст, графику, музыку, видео и т.д. (поддержка этих компонентов зависит от конкретного состава Netscape).

Использование ftp позволяет перемещаться по каталогам и качать файлы.

Одна из последних версий Netscape - Netscape Gold. В отличие от других, он позволяет менять кодировку для представления текста (поддерживает русскую кодировку koi8-r), посылать и принимать почту, работать с конференциями и содержит встроенный редактор web-страниц.

Внешний вид Netscape с домашней страничкой кафедры информационно-измерительных систем и физической электроники, представлен на Рис.3 Приложения 2.

4.1.7 Инсталляция WEB-сервера Apache

Apache - WEB-сервер, свободно распространяемый в исходных кодах на языке C (можно найти по адресу: http://www.apache.org). Для его установки требуется компиляция, но, как правило, такие пакеты программ содержат в своих каталогах уже готовые скрипты (файлы, выполняющие установленную последовательность действий) для инсталляции. При этом, достаточно только указать в файле Configuration используемый компилятор, т.е. присвоить параметру - СС его имя (например: CC= cc или CC= gcc). Далее, необходимо создать пользователя для WEB-сервера (например: http), прописав его в файле /etc/passwd . Настроить файл httpd.conf , например так:

...

ServerType inetd - тип сервера один из двух: inetd или standalone

...

Port 80 - порт, на котором работает сервер

...

User http - имя пользователя, зарегистрированного в системе, как WEB-сервер

Group users - группа, к которой принадлежит этот пользователь

...

ServerRoot /work/APPLICATION/SERVER/Apache - директория, где находятся

конфигурация сервера, ошибки и log-файлы

...

и файл srm.conf , например так:

...

DocumentRoot /work/APPLICATION/SERVER/Apache/htdocs - директория, из которой, по умолчанию, читаются документы (home-page и др.)

...

UserDir public_html - имя директории, добавляющейся в пользовательские home- директории, если пользователи запрашивают прием

...

DirectoryIndex index.html- имя файла или имена файлов используемых для предварительного чтения HTML указателей

...

Затем, нужно запустить файл Configure, а потом make. После этого можно считать WEB-сервер сынсталлированным остается только его запустить. Для этого прописываем в файле inetd.conf следующую строчку:

http stream tcp nowait www /work/APPLICATION/SERVER/Apache/src/httpd httpd -f

/work/APPLICATION/SERVER/Apache/conf/httpd.conf

ключ -f позволяет использовать конфигурационный файл httpd.conf из указанной директории.

После этих изменений необходимо перезагрузить компьютер.

Теперь если использовать какой-нибудь Browser (например: netscape) и обратиться по адресу http://адрес_WEB-сервера (например: http://dfe3300.karelia.ru) к этому компьютеру, то при соединении на экран будет выдана домашняя страничка из файла index.html этого WEB-сервера. Этот файл должен быть расположен в директории указанной в параметре DocumentRoot файла srm.conf .

4.1.8 Samba - Lan Manager совместимый сервер для UNIX

Этот пакет программ (можно найти по адресу: ftp://nimbus.anu.edu.au/pub/tridge/samba) предоставляет большие функциональные возможности для взаимодействия с Microsoft Lan Manager сервером. Он поддерживает удаленный доступ к файловому пространству и принтерам UNIX с Lan Manager совместимых клиентов. В специальном файле smb.conf указывается, какие клиенты могут соединяться и использовать файлы UNIX как локальные файлы и принтеры UNIX как локальные принтеры. Наиболее известные Lan Manager совместимые клиенты: Lan Manager, Windows for Workgroups, OS/2 и Windows NT.

Какой бы ни был клиент, он должен поддерживать TCP/IP протокол, чтобы связаться с UNIX-хостом и воспользоваться шлюзом Samba. Обычно Lan Manager-совместимые клиенты используют для этого протокол NetBEUI. В случае Windows for Workgroups, TCP/IP расширение свободно доступно на ftp.microsoft.com (искать WFWTCP.EXE). Нужно заметить, что TCP/IP может сосуществовать с NetBEUI и всеми другими протоколами поддерживаемыми Windows for Workgroups.

Набор программ Lan Manager совместимого сервера:

smbd

nmbd

smbclient

testprns

testparm

smbprint

smbd

Программа smbd непосредственно сервер, который обслуживает соединения клиентов, т.е. предоставляет ресурсы UNIX (файлы, принтеры, CD-ROM и т.д.) в общее пользование, основываясь на информации в конфигурационном файле smb.conf .

 

nmbd

Программа nmbd обслуживает имена netbios. Почти во всех случаях инсталлируя smbd, может потребоваться инсталляция и nmbd. Когда клиент ищет соединения с хостом, он сначала посылает широковещательный запрос службе имен, как бы спрашивая: "Я имею имя - какой IP адрес?". Nmbd отвечает на такие запросы, позволяя клиентам устанавливать соединение.

 

smbclient

Эта программа - клиент, работает подобно ftp. Используя smbclient, пользователь может передавать файлы из UNIX и в UNIX, печатать, смотреть директории и так далее. Smbclient отличается от программ клиентов PC тем, что они не обеспечивают переназначение. То есть ресурсы этих соединений не представляются удаленному пользователю так, как если бы они были локальные.

testprns

Очень простая test-программа, позволяющая посмотреть имя принтера.

testparm

Тоже небольшая программа, делающая синтаксическую проверку smb.conf файла. Там могут находиться ошибки, но если программа говорит OK, тогда, по крайней мере, проблемы не в файле конфигурации.

smbprint

Это текстовый драйвер, соответствующий печатающей подсистеме host'а, который разрешает печатать удаленному Lan Менеджеру на принтере.

4.1.9 Инсталляция программы Samba

Исходники Samba в соответствии с GNU-проектом свободно распространяются. Это значит, что ее можно скомпилировать практически на любой UNIX-машине.

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

BASEDIR =/work/APPLICATION/SERVER/Samba - директория куда компилируется Samba

MANDIR =/usr/share/man - директория, куда устанавливаются соответствующие man'ы

WORKGROUP=dfe - имя домена, к которому принадлежит машина

GUESTACCOUNT=ftp - разрешить доступ по ftp

Далее нужно выполнить команду make, а потом make install. После этого Samba уже должна скомпилироваться остается только сделать соответствующие установки в конфигурационных файлах.

Необходимо убедиться, что в файле /etc/services присутствуют строки:

...

netbios-ns 137/udp

netbios-ssn 139/tcp

т.е. настроить порты.

В файл /etc/inetd.conf нужно добавить строки:

...

netbios-ns    dgram    udp	wait	root	/work/APPLICATION/SERVER/Samba/bin/nmbd nmbd
netbios-ssn  stream   tcp	nowait	root	/work/APPLICATION/SERVER/Samba/bin/smbd smbd

И, наконец, произвести настройку файла smb.conf в соответствии с предоставляемыми ресурсами. Пример файла smb.conf приведен в Примере 2 Приложения 1.

4.2 Другие программы

4.2.1 DECTerm - Терминал

Терминал DECTerm (dxterm) предназначен для ввода команд и вывода текстовой информации. Его внешний вид представлен на Рис.2 Приложения 2.

4.2.2 Notepad - Простой текстовый редактор

Это простейший текстовый редактор, имеющийся в стандартной поставке UNIX. Он позволяет: просматривать, редактировать, осуществлять поиск и замену в текстовом файле.

4.2.3 Ted - Текстовый редактор

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

4.2.4 xv - Просмотрщик и преобразователь графических файлов

xv - очень удобный просмотрщик и преобразователь графических файлов, позволяющий просматривать и конвертировать файлы в форматах: gif, tiff, jpeg, Post Script и др., а также захватывать изображение с экрана и многое другое. Его внешний вид показан на Рис.4 Приложения 2.

4.2.5 Paint - Графический редактор

Этот простейший графический редактор из стандартной поставки UNIX работает с форматами img и позволяет делать то же самое, что и аналогичный ему редактор Paint Brush под Windows - рисовать линии, дуги, прямоугольники, делать заливку областей и другие действия необходимые для создания рисунка.

4.2.6 Clock - Часы-будильник

Часы тоже имеются в стандартной поставке UNIX. Они показывают время в двух форматах, дату, а также позволяют установить будильник на определенное время и задать сообщение, которое будет выдаваться при его срабатывании.

 

 

 

 

 

 

5 Администрирование в системе UNIX

5.1 Административные каталоги и файлы

К наиболее важным каталогам и файлам операционной системы относятся следующие:

 

Каталоги:

 

/bin Ссылка на каталог /usr/bin. Содержит основные пользовательские команды, которые поставляются с UNIX. К ним относятся: cd, ls, mkdir, rm, rmdir и другие.

/sbin Содержит все программы UNIX внутреннего пользования, а также команды администратора.

/dev Содержит специальные файлы UNIX, которые определяют все устройства в системе. Эти файлы непосредственно связаны с аппаратными средствами компьютера.

/etc Содержит административные программы и таблицы. А также большую часть информации необходимой UNIX для загрузки. Например, здесь хранятся такие важные файлы как passwd и inittab.

/lib Ссылка на каталог /usr/lib. Содержит системные библиотеки, используемые компилятором языка C.

/mnt Используется для временного монтирования файловых систем во время восстановления системы с промежуточного носителя.

/tmp Место хранения временных файлов. Многие приложения создают свои временные файлы в процессе работы. При перезапуске системы все файлы из этого каталога удаляются.

/usr Используется корневой файловой системой для хранения всех основных системных файлов:

/usr/bin Хранит все основные команды UNIX.

/usr/lib Содержит все основные библиотеки UNIX и промежуточные каталоги наиболее важных подсистем, включая mail uucp и др.

/usr/lib/X11 Содержит графическую систему UNIX.

/var Используется корневой файловой системой, для сохранения изменяемых системных файлов, с символической связью к другим директориям. А также содержит каталог spool (используемый при печати) и каталог mail (для хранения поступающей почты пользователей).

 

Файлы:

 

/etc/gettydefs Содержит информацию, которая используется командой getty для установления скорости и характеристик терминальной линии.

/etc/group Описывает каждую группу в системе. При создании новой группы добавляется новая строка к этому файлу.

/etc/netconfig Содержит специальную информацию, относящуюся к функционированию локальной вычислительной сети.

/etc/passwd Содержит информацию, описывающую пользователей в системе.

/etc/profile Стандартный конфигурационный файл для всех пользователей в системе.

/etc/rc.local Запускает все основные процессы и демоны.

/sbin/shutdown Содержит командную процедуру для корректного останова операционной системы.

/var/adm/wtmp Содержит историю всех регистраций пользователей в системе. При каждом новом login этот файл обновляется.

5.2 Суперпользователь

Процесс, который имеет идентификатор пользователя, равный нулю считается привилегированным пользователем. Независимо от кода защиты, он имеет доступ ко всем файлам в системе и может читать, писать и исполнять любую программу. Обычно в учетном файле пользователей в /etc/passwd имеется привилегированный пользователь с именем root. Как правило, им пользуется системный программист, отвечающий за сохранность системы и выполняющий функции администратора.

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

Известны два способа получения привилегированности. Первый способ состоит в том, войти в систему со специальным именем root, а второй - в том, чтобы работать под своим обычным именем, но, когда необходимо выполнить команду su. В обоих случаях система запросит привилегированный пароль. Если введенный пароль корректен, то дальнейшая работа начнется в привилегированном режиме.

 

5.3 Добавление пользователей в систему

Добавление новых пользователей в систему производится привилегированным пользователем с помощью команды /usr/sbin/adduser или вручную.

При использовании команды adduser нужно последовательно отвечая на подсказки, указать: имя пользователя, его пароль, уникальный номер пользователя (обычно по порядку), группу, к которой он будет принадлежать, полное имя пользователя, каталог, в который пользователь попадает при входе в систему (домашний каталог), тип Shell'а, которым он будет пользоваться (csh, sh, ksh,...).

Однако это можно сделать и вручную. Для этого нужно занести строку с соответствующими параметрами в файл /etc/passwd , а затем выполнить команду /usr/sbin/mkpasswd /etc/passwd. Ниже расписаны значения полей в этой строке:

 

имя:пароль:id_номер:группа:полное_имя:домашний_каталог:тип_Shell

имя - имя пользователя

пароль - пароль пользователя

id_номер - уникальный номер пользователя

группа - номер группы (соответствие номера и группы указывается в файле /etc/group)

полное_имя - полное имя пользователя

домашний_каталог - каталог, в который пользователь попадает при входе в систему

тип_Shell - тип Shell'а, которым пользуется пользователь (csh, sh, ksh, ...)

 

Примеры строк из файла /etc/passwd:

 

root:wE3Da6OabQw:0:1:system PRIVILEGED account:/:/bin/sh

...

pgm:2/Erjml9Tc5S.:12:15:Karelian student,,,:/work/users/pgm:/bin/csh

...

EKostq:lA9/erDsoQ2s:17:15:Konstantin Ekimov:/work/users/EKostq:/bin/csh

...

ftp:aWxc45aBEspPNm:20:15:Anonymous FTP-server:/home/ftp:/bin/csh

http:slDhJx9Oq/sQ:21:15:WWW-server:/work/APPLICATION/SERVER/Apache:/bin/csh

...

pavel:OkVe5/nWQdLEtP:28:15:Pavel Petukhov:/home/pavel:/bin/csh

Пример файла /etc/group:

system:*:0:root

daemon:*:1:daemon

uucp:*:2:uucp

mem:*:3:

kmem:*:3:root

bin:*:4:bin,adm

sec:*:5:

mail:*:6:mail

terminal:*:7:

tty:*:7:root

news:*:8:uucp

opr:*:9:root

auth:*:11:

lp:*:12:

lpr:*:12:root

backup:*:13:

cron:*:14:

users:*:15:pgm,SKipr,EKostq,Vad,IKH,AIvanov,Arthur,ftp,http,GII,SSmirnov,SKurskov,Maximus,Alex,VitMan,pavel,VEB

sysadmin:*:16:

tape:*:17:

tcb:*:18:

adm:*:19:adm

operator:*:20:

ris:*:21:

Для добавления новых терминальных линий используется файл /etc/inittab.

 

5.4 Удаление пользователей из системы

Удаление пользователей производится привилегированным пользователем с помощью команды /usr/sbin/removeuser (или deluser) или вручную.

При использовании /usr/sbin/removeuser нужно выполнить эту команду и ввести имя пользователя.

Можно удалить и в ручную, удалив соответствующую строку в файле /etc/passwd и выполнив /usr/sbin/mkpasswd /etc/passwd.

5.5 Команды XSysAdmin, ttyadm

В UNIX большинство операций, выполняемых системным администратором автоматизировано, сведено в одну большую меню-ориентированную программу, которая обычно называется XSysAdmin (/usr/tcb/bin/XSysAdmin), sysadm, sysadmsh или sam, в зависимости от типа используемого компьютера и операционной системы. С помощью этой программы, особенно не вдаваясь в подробности, можно выполнять различные действия, используя выбор из меню, в том числе: добавление новых пользователей и новых внешних устройств, модификацию системных параметров, конфигурацию сети, управление файловыми системами, копирование и восстановление системы. Это очень удобно, но не избавляет системного администратора от необходимости знать где, что и в каком именно файле и каталоге должно находиться, потому что в случае повреждения системных файлов или серьезных сбоев, связанных с неправильной эксплуатацией системы или некорректной инсталляцией системных пакетов, sysadm уже вряд ли поможет, особенно там, где требуется точная и адресная ручная настройка.

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

Заключение

В ходе дипломной работы была изучена операционная система UNIX OSF/1: ее команды, сетевые средства, возможности взаимодействия с другими компьютерами. После ознакомления с системой создано описание, в котором изложены вопросы: ее инсталляции, настройки, запуска, администрирования и работы с использованием разнообразных возможностей UNIX.

На примере машин кафедральной сети (см. Рис.1 Приложения 2) были изучены способы установления связи с другими операционными системами сети, такими как: Windows NT, Windows for Workgroups, OS/2, Novell NetWare с помощью протоколов FTP, TELNET, HTTP и специальной программы-шлюза, для взаимодействия с Lan Manager совместимым сервером - Samba. Изучены способы русификации UNIX, настроек локального и удаленного пользовательского интерфейса (для запуска приложений с других машин сети), контролирования действий пользователей.

Посредством NFS осуществлен доступ к каталогам UNIX-машин с компьютера с операционной системой OS/2, что позволило осуществить распределенный эксперимент. Данные снимаются с CAMAC'а (который присоединен к машине с OS/2), и направляются непосредственно в каталоги UNIX-машин, где они сразу могут быть обработаны с помощью специальной программы PAW или другими средствами.

На обоих UNIX-машинах были произведены соответствующие настройки для запуска графических приложений между ними, чтобы посредством Telnet'а, на одной такой машине, можно было запускать графические приложения другой. Например, теперь программу для обсчета экспериментальных данных и вывода графиков - PAW, можно запускать не только на "DEC5000" (на которой он находятся), но и на машине "Alpha". А это особенно важно при необходимости увидеть изображение в цвете и с большим разрешением, т.к. "Alpha" имеет цветной 16" монитор с разрешением 1280x1024 True Color, а на "DEC5000" установлен монохромный 1024x768 точек.

На машине "Alpha" установлены следующие сервера: FTP, TELNET и WEB. Для WEB-сервера была сделана домашняя страничка кафедры информационно-измерительных систем и физической электроники, а также установлены ссылки на соответствующие документы, расположенные на других серверах. На компьютере "DEC5000" установлены сервера FTP и TELNET. Все это позволило использовать эти машины для обмена информацией в рамках сети Internet и для распределенной обработки данных экспериментов.

На языке командного интерпретатора C-Shell была написана программа (mon) для отслеживания действий пользователей. Она запускается системой или администратором и через определенные промежутки времени выполняет команду ps -Af, которая выводит список запущенных процессов в системе, с указанием их владельца. Ее результаты записываются в файл с именем, соответствующим текущей дате. Таким образом, просматривая эти файлы, появилась возможность более эффективного контроля над действиями пользователей. Текст программы можно посмотреть в Примере 3 Приложения 1.

В процессе работы на машине "Alpha", был осуществлен переход к новой версии ОС OSF/1 3.0 (раньше была 2.0). После ее установки была произведена переконфигурация системы, установлены заново приложения и зарегистрированы пользователи.

За время работы с машинами "Alpha" и "DEC 5000" была замечена их высокая производительность и надежность, которые обеспечиваются операционными системами UNIX OSF/1 и ULTRIX, и значительной производительностью процессоров Alpha и MIPS. Это позволяет использовать эти машины для организации многопользовательского взаимодействия с другими системами сети и для проведения сложных экспериментов.

 

 

 

 

Литература

1. Дегтярев Е.К. "Введение в UNIX"., Москва, 1991.

2. Дунаев С. "UNIX SYSTEM V Release 4.2", 1992.

3. Ларри Шамер, Крис Негус "UNIX без проблем", под ред. С.Каратыгина, Москва, Бином,1996.

4. "DEC3000 Model 300/300L AXP", Hardware Reference Guide.

 

 

 

 

Приложения

Приложение 1 (тексты)

Пример 1. Результат выполнения команды setld -i :

Subset          Status     Description

CMPDEVENH320    installed  Development Enhancements for OSF/1 AXP Systems (Software Development)
LDBBASE3016     installed  DECladebug Debugger
LDBSRV3016                 DECladebug Debugger remote server
OSFACCT320      installed  System Accounting Utilities (System Administration)
OSFADVFS320                POLYCTR advfs (System Administration)
OSFADVFSBIN320             POLYCTR advfs Kernel Objects (Kernel Build Environment)
OSFAFM320       installed  Adobe Font Metric Files (Printing Environment)
OSFATMBASE320              ATM Commands (Network-Server/Communications)
OSFATMBIN320               ATM Kernel Objects (Network-Server/Communications)
OSFBASE320      installed  Base System (- Required -)
OSFBIN320       installed  Standard Kernel Objects (Kernel Build Environment)
OSFBINCOM320    installed  Kernel Header and Common Files (Kernel Build Environment)
OSFC2SEC320     installed  C2-Security (System Administration)
OSFCDAPGMR320   installed  CDA(tm) Software Development (Software Development)
OSFCLINET320    installed  Basic Networking Services (Network-Server/Communications)
OSFCMPLRS320    installed  Compiler Back End (Software Development)
OSFCOMAGENT320  installed  Common Agent (General Applications)
OSFCTABLOC320              Obsolete Locale databases (System Administration)
OSFDCMT320      installed  Doc. Preparation Tools (Text Processing)
OSFDCMTEXT320   installed  Doc. Preparation Tools Extensions (Text Processing)
OSFDECC320      installed  DEC C (cc -migrate) (Software Development)
OSFDECW320      installed  Additional DECwindows Applications (Windows Applications)
OSFDMS320       installed  Dataless Management Services(Network Server/Communications)
OSFDPSFONT320   installed  Adobe Fonts (Windowing Environment)
OSFEMACS320     installed  GNU Emacs (General Applications)
OSFEURLOC320    installed  Single-Byte European Locales (System Administration)
OSFEXER320      installed  System Exercisers (System Administration)
OSFFONT15320    installed  DECwindows 100dpi Fonts (Windowing Environment)
OSFFONT320      installed  DECwindows 75dpi Fonts (Windowing Environment)
OSFHWBASE320    installed  Base System - Hardware Support (- Required -)
OSFHWBIN320     installed  Hardware Kernel Objects (Kernel Build Environment)
OSFHWBINCOM320  installed  Hardware Kernel Header and Common Files(Kernel Build Environment)
OSFINET320      installed  Additional Networking Services (Network-Server/Communications)
OSFKTOOLS320    installed  Kernel Debugging Tools (System Administration)
OSFLAT320       installed  Local Area Transport (LAT) (General Applications)
OSFLEARN320     installed  Computer Aided System Tutor (General Applications)
OSFLSMBASE320   installed  Logical Storage Manager (General Applications)
OSFLSMBIN320    installed  Logical Storage Manager Kernel Objects(Kernel Build Environment)
OSFLSMBINCOM320 installed  Logical Storage Manager Kernel Header and Common Files(Kernel Build Environment)
OSFLSMPGMR320   installed  LSM Software Development (Software Development)
OSFLSMX11320    installed  Logical Storage Manager GUI (General Applications)
OSFLVM320       installed  Logical Volume Manager (General Applications)
OSFMANOP320     installed  Ref Pages: Programming (Reference Pages)
OSFMANOS320     installed  Ref Pages: Admin/User (Reference Pages)
OSFMANRT320     installed  Ref Pages: Realtime (Reference Pages)
OSFMANWOP320    installed  Ref Pages: Windows Programming (Reference Pages)
OSFMANWOS320    installed  Ref Pages: Windows Admin/User (Reference Pages)
OSFMH320        installed  RAND Corp. Mail Handler (MH) (Mail Applications)
OSFMITFONT320   installed  X Fonts (Windowing Environment)
OSFMOTDEM320    installed  Additional Motif Demo Sources (Software Development)
OSFNFS320       installed  NFS(tm) Utilities (Network-Server/Communications)
OSFOBSOLETE320             Obsolete Commands and Utilities (System Administration)
OSFPGMR320      installed  Software Development Environment (Software Development)
OSFPRINT320     installed  Local Printer Support (Printing Environment)
OSFRCS320       installed  GNU Revision Control System (Software Development)
OSFRIS320                  Remote Installation Service (Network-Server/Communications)
OSFRTDEV320     installed  Realtime Software Development (Software Development)
OSFSCCS320      installed  Source Code Control System (Software Development)
OSFSER320       installed  X Servers (Windowing Environment)
OSFSVID2320     installed  UNIX(tm) SVID2 Compatibility (General Applications)
OSFUUCP320      installed  UNIX(tm) to UNIX(tm) Copy Facility (General Applications)
OSFVET320       installed  Verifier/Exerciser Tool (System Administration)
OSFX11320       installed  Basic X Environment (Windowing Environment)
OSFXC2SEC320    installed  C2-Security GUI (System Administration)
OSFXCDADEV320   installed  CDA(tm) for X/Motif Development (Software Development)
OSFXDEV320      installed  X Window Software Development (Software Development)
OSFXIEDOC320    installed  XIE Version 5 Online Documentation (Supplemental Documentation)
OSFXMAIL320     installed  DECwindows Mail Interface (Mail Applications)
OSFXMIT320      installed  Additional X Applications (Windows Applications)
OSFXOEM320      installed  X Customizations for OEM (Windowing Environment)
OSFXVET320      installed  Verifier/Exerciser GUI (System Administration)
XR6DOC320                  X11R6 ADK manpages and documentation
XR6PROG320                 X11R6 ADK libraries and headers
XR6SERVER320               X11R6 ADK X server and font server

 

 

 

 

Пример 2. Пример файла smb.conf :

[global]

printing = bsd

printcap name = /etc/printcap

load printers = yes

guest account = guest

; This next option sets a separate log file for each client. Remove

; it if you want a combined log file.

log file = /work/APPLICATION/SERVER/Samba/log.%m

log level = 1

[homes]

comment = Home Directories

browseable = no

read only = no

create mode = 0750

[printers]

comment = All Printers

browseable = no

printable = yes

public = no

writable = no

create mode = 0700

; Other examples.

;

; A private printer, usable only by fred. Spool data will be placed in fred's

; home directory.Note that fred must have write access to the spool directory,

; wherever it is.

;[fredsprn]

; comment = Fred's Printer

; valid users = fred

; path = /homes/fred

; printer = freds_printer

; public = no

; writable = no

; printable = yes

;

; A private directory, usable only by Arthur. Note that Artur requires write

; access to the directory.

;[Arthur Ivanov]

; comment = Arthur Ivanov's Service

; path = /home/Arthur

; valid users = artur

; public = yes

; writable = yes

; printable = no

;

; A publicly accessible directory, but read only, except for people in

; the staff group

[Pub Archive]

comment = Alpha-AXP Public Stuff

path = /home/ftp/pub

public = yes

only guest = yes

writable = no

printable = no

write list = @staff

;

; a service which has a different directory for each machine that connects

; this allows you to tailor configurations to incoming machines. You could

; also use the %u option to tailor it by user name.

; The %m gets replaced with the machine name that is connecting.

;[pchome]

; comment = PC Directories

; path = /usr/pc/%m

; public = no

; writeable = yes

;

;

; A publicly accessible directory, read/write to all users.Note that all files

; created in the directory by users will be owned by the default user, so

; any user with access can delete any other user's files. Obviously this

; directory must be writable by the default user. Another user could of course

; be specified, in which case all files would be owned by that user instead.

[Guest]

comment = Alpha-AXP /writeable/

path = /home/ftp/incoming

public = yes

only guest = yes

writable = yes

printable = no

;

;

; The following two entries demonstrate how to share a directory so that two

; users can place files there that will be owned by the specific users.In this

; setup, the directory should be writable by both users and should have the

; sticky bit set on it to prevent abuse. Obviously this could be extended to

; as many users as required.

;[myshare]

; comment = Mary's and Fred's stuff

; path = /usr/somewhere/shared

; valid users = mary fred

; public = no

; writable = yes

; printable = no

; create mask = 0765

[CDROM]

comment = Alpha-AXP's CD-ROM

path = /cdrom

public = yes

only guest = yes

writable = no

printable = no

 

 

 

 

Пример 3. mon - Программа для отслеживания действий пользователей:

DatForm="%d_%h_%Y_%a"

while cd /work/users/EKostq/SYSLOG

do

ls -t > /work/users/EKostq/MON/dirinfo

tail +8 /work/users/EKostq/MON/dirinfo > /work/users/EKostq/MON/dirinfo.cut

rm `cat /work/users/EKostq/MON/dirinfo.cut`

for i in 1 2 3 4 5

do

DatFil=`date +$DatForm`

echo "" >> `echo $DatFil`

echo "Time: "`date +"%T"`" Date: "`date +$DatForm"` >> `echo $DatFil`

echo "" >> `echo $DatFil`

ps -Af >> `echo $DatFil`

sleep 1200

done

done

 

 

 

 

Приложение 2 (рисунки)

 

Рис.1. Сеть кафедры информационно-измерительных систем и физической электроники.



Рис.2. DECwindows Motif интерфейс (приложения: Clock, DECterm).



Рис.3. Netscape - Программа для просмотра информации в Internet.

 

Рис.4. xv - Просмотрщик и преобразователь графических файлов.