Руководство по ОС UNIX
                     НПКО Мекомп при ММ СССР

			 UNIX SystemЪV

                        Operating  System

		     Руководство по ОС UNIX
		      ( UNIX  Tutorial )


     Информация, содержащаяся в этом документе,  может быть под-
вергнута изменениям без предупреждения и не  представляет  собой
обязательств со стороны The Santa Cruz Operation,  Inc,  а также
Microsoft Corporation. Программное обеспечение, описанное в этом
документе, поставляется по соглашению о лицензии, или же по сог-
лашению о нераспространении.  Программное обеспечение может  ис-
пользоваться или   копироваться только в соответствии с пунктами
соглашения. Незаконным является копирование программного обеспе-
чения на магнитную ленту,  диск или какой-либо другой носитель с
целями, отличными от собственных нужд покупателя.


     Portions 1980,  1981, 1982, 1983, 1984, 1985, 1986, 1987,
     1988  Microsoft Corporation.
     All rights reserved.
     Portions 1983,  1984,  1985,  1986,  1987, 1988 The Santa
     Cruz Operation, Inc.
     All rights reserved.



     Всякое использование,   дублирование или любое другое расп-
ространение правительством     будет    подвергнуто    следующим
ограничениям: подоглавления (b) (3) (ii) для ограничения прав на
компьютерное программное обеспечение ,  и подоглавления (b)  (2)
для ограничения  прав на технические данные; и то,  и другое см.
52.227-7013.


     Microsoft, MS-DOS   и   XENIX  являются  торговыми  марками
Microsoft Corporation.
     UNIX является торговой маркой AT&T Bell Laboratories.

     SCO номер документа: XG-5-16-88-5.0
.
                          Содержание.
     ________________________________________________________

     1.   Введение

     1.1    Введение  1-1
     1.2    Об этом руководстве  1-1
     1.3    Способы обозначений  1-2

     2.   Основные концепции

     2.1    Введение  2-1
     2.2    Бюджет  2-1
     2.3    Файлы  2-2
     2.4    Способы именований  2-6
     2.5    Команды  2-10
     2.6    Ввод и вывод  2-13

     3.   Регистрация в системе

     3.1    Введение  3-1
     3.2    Получение доступа к системе  3-1
     3.3    Обеспечение безопасности ваших ресурсов  3-5
     3.4    Изменение типа вашего терминала  3-6
     3.5    Ввод команд  3-7

     4.   Работа с файлами и каталогами

     4.1    Введение  4-1
     4.2    Работа с каталогами  4-1
     4.3    Редактирование файлов с помощью редактора vi  4-7
     4.4    Распечатка файлов  4-10
     4.5    Работа с файлами  4-13
     4.6    Обработка текстовых файлов  4-20
     4.7    Использование режимов доступа к файлам и каталогам  4-23

     5.   Сопровождение системы

     5.1    Введение  5-1
     5.2    Создание резервных копий  5-1
     5.3    Копирование дискет  5-9
     5.4    Извлечение информации о статусе системы  5-10
     5.5    Управление процессами  5-12
     5.6    Программирование на языке Shell  5-17
.
     6    Утилиты непосредственного взаимодействия UNIX

     6.1    Введение  6-1
     6.2    Использование системных часов и календаря  6-1
     6.3    Почтовые услуги  6-2
     6.4    Автоматические напоминания системы  6-7
     6.5    Использование системного калькулятора  6-8
.
                         Ч А С Т Ь  1.

                        В в е д е н и е
     _______________________________________________________

     1.1    Введение  1-1
     1.2    Об этом руководстве  1-1
     1.3    Способы обозначений  1-2
.
                              1-1

     1.1    Введение

     Это руководство является введением в  операционную  систему
UNIX. Оно  предназначено для пользователей, слабо или совсем не
знакомых с UNIX или XENIX.
     ОС UNIX состоит из двух сотен команд и  программ.   Данный
самоучитель не дает разъяснений,  как пользоваться всеми двумяс-
тами. Однако, здесь вы найдете описания наиболее часто использу-
емых и наиболее важных команд и программ.
     Цель данного руководства состоит в том,  чтобы как возможно
быстро научить   вас практической работе в ОС UNIX.  Для этого,
как мы считаем, нет необходимости обеспечивать вас всей полнотой
информации об ОС UNIX. Если вам все же нужно знать все, обрати-
тесь к UNIX User's Reference и к UNIX User's Guide.

     1.1    Об этом руководстве

     Данное руководство составлено следующим образом:

     .  Часть 1, "Введение",  содержит общий обзор и показывает,
        как пользоваться самоучителем.
     .  Часть 2,  "Основные  концепции",  объяснит  те принципы,
        знание которых повысит эффективность вашей работы в сре-
	де UNIX. Части, следующие   после второй,  предполагают
        знание данной части.
     .  Часть 3,  "Вход в  систему", объясняет, как войти в сис-
        тему,  как  защитить  ваши  записи,   как  редактировать
	подсказки системы, а также  как вводить команды UNIX.
     .  Часть 4, "Работа  с файлами  и   каталогами", описывает,
        как   выполнять  основные  задачи,   включающие работу с
        файлами  и  каталогами.  Здесь  вы  узнаете,  как созда-
        вать  файлы  и  каталоги,  как  перемещать,  копировать,
        уничтожать и  переименовывать  файлы  и каталоги.  Также
        эта глава дает пояснения,   как  использовать  различные
	утилиты текстового процессора UNIX,  и как организовать
        доступ к файлам и каталогам.
.
                              1-2

     .  Часть  5,  "Сопровождение системы", объясняет, как поль-
	зоваться служебными утилитами UNIX.  Показано, как соз-
        давать  резервные  копии, как  копировать  дискеты,  как
        узнать информацию о статусе системы  и как устанавливать
        фоновый  режим  выполнения  команд.  Также в пятой части
	содержится обсуждение стиля программирования в ОС UNIX.
     .  Часть  6,  "Утилиты   непосредственного   взаимодействия
	UNIX", рассказывает об использовании утилит типа "рабо-
	чий  стол" UNIX: об автоматических напоминаниях и  под-
        сказках  системы, о связи  с другими пользователями и об
        использовании системных вычислений.

     Вы наилучшим образом используете данное руководство,   если
начнете с чтения части 2. Прочтя ее, вы получите информацию, не-
обходимую для понимания последующих глав.  Затем вы можете  про-
честь части с 3 по 6,  одновременно в качестве упражнений выпол-
няя на вашем компъютере примеры, описанные в тексте.
     Все главки каждой части являются самостоятельными единицами
информации. Необязательно читать предыдущие главки для понимания
материала, изложенного в последующих. Для того, чтобы знать, как
выполнять специальные задачи,  такие,  например,  как распечатка
текстового файла,  если вы знаете, как его создать, обратитесь к
соответствующей главке. В данном случае это будет 4.4 в части 4.
Для того, чтобы понять 4.4, вам не обязательно читать главки 4.1
- 4.3.

     1.3   Способы обозначений

     В данном  руководстве приняты следующие соглашения о спосо-
бах обозначений:

     .  Примеры, приведенные в тексте, реальные.
     .  Команды,  которые  вы будете вводить,  напечатаны жирным
        шрифтом.
     .  Клавиши, которые нужно нажимать, напечатаны жирным шриф-
        том. Например, клавиша Return представлена как
             RETURN.
.
                              1-3

     .  Комбинации клавиш выделены  жирным  шрифтом и печатаются
        через дефис. Например:
             Ctrl-d.
        Чтобы  выполнить  команду,   представленную  комбинацией
        клавиш,  нажмите  первую  клавишу,  и,  не  отпуская ее,
        нажмите  следующую.  В  данном примере  нажмите  клавиши
        Control и d.
     .  Заглавные буквы  в круглых  скобках часто  употребляются
        в названиях команд, например:
             touch(C)
	О  буквах  в  круглых  скобках   можно  прочесть в UNIX
        User's  Reference,  где  содержится полная информация  о
        командах.
.


                            ЧАСТЬ 2.

                      Основные концепции.
     ___________________________________________________________

     2.1    Введение  2-1
     2.2    Бюджет  2-1
            2.2.1    Бюджет пользователя  2-1
            2.2.2    Бюджет привилегированного пользователя  2-2
     2.3    Файлы  2-2
            2.3.1    Обычные файлы  2-2
            2.3.2    Файлы специальных устройств  2-3
            2.3.3    Каталоги  2-3
            2.3.4    Справочные структуры  2-4
     2.4    Способы именований  2-6
            2.4.1    Имена файлов  2-6
            2.4.2    Маршруты  2-6
            2.4.3    Имена шаблонов  2-7
            2.4.4    Специальные символы  2-8
     2.5    Команды  2-10
            2.5.1    Командная строка  2-11
            2.5.2    Синтаксис  2-12
     2.6    Ввод и вывод  2-13
            2.6.1    Переадресация  2-13
            2.6.2    Каналы  2-14
.
                              2-1

     2.1    Введение

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

     2.2    Бюджет.

     2.2.1    Бюджет пользователя

     Распределение ресурсов (бюджет)  должно уже существовать  к
тому моменту, как вы зарегистрируетесь в системе UNIX. Ваш бюд-
жет должен содержать следующие компоненты:

     .  Ваше регистрационное имя.  Это то имя,  по которому вы
        будете  известны  системе. Это имя вам нужно ввести по
        подсказке системы о регистрации.
     .  Ваш пароль. Каждый пользователь в целях повышения безо-
        пасности системы  и  своих записей может иметь  пароль.
        Этот пароль вводится во время регистрации в системе.
     .  Идентификатор вашей группы. Каждый пользователь извес-
        тен системе как индивидуальный пользователь и как член
        группы. Групповое  участие  -  важный способ повышения
        надежности системы. В качестве члена группы вы получа-
        ете доступ к тем файлам и каталогам, к которым не име-
        ет доступа индивидуальный пользователь.
     .  Ваш "начальный каталог". Это - место в файловой систе-
        ме, где вы можете хранить ваши собственные файлы.  При
        первой регистрации в системе вы  должны  указать  свой
        начальный каталог.
     .  Вашу "регистрационную оболочку". Эта программа считыва-
	ет и  выполняет  вводимые  вами  команды   UNIX.    В
        большинстве случаев  вашей  регистрационной  оболочкой
        будет Bourne Shell, которая выдает в качестве подсказ-
        ки знак доллара ($).  Однако,  может быть использована
        конфигурация с оболочкой C-Shell со  знаком  процентов
        (%) в подсказке,  или Visual Shell,  являющаяся интер-
        фейсом меню-устройства. Во всем данном руководстве под
	выражением "подсказка UNIX", или "приглашение UNIX",
        подразумевается знак доллара или  знак  процентов.
.
                              2-2

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

     2.2.2    Бюджет привилегированного пользователя

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

     2.3    Файлы

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

     2.3.1    Обычные файлы

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

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

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

     В многопользовательских системах часто появляется необхо-
димость "защиты" определенных файлов,  ограничения доступа не-
которых пользователей к файлам в то время,  когда к ним открыт
доступ других.  Файлы защищаются тем, что пользователям назна-
чается "режим доступа". UNIX поддерживает три режима доступа:

     чтение         Если доступ только по чтению, то пользова-
                    тель с содержанием файла с помощью  команд
                    cat и  more.  Пользователь,  имеющий режим
                    доступа только по чтению, не может вносить
                    в файл изменения.

     запись         Пользователь, имеющий режим доступа по за-
                    писи, имеет право редактировать файл.

     выполнение     Если файл является программой, то  пользо-
                    ватель, имеющий режим доступа по  выполне-
                    нию, может выполнить эту программу. Вам не
                    удастся выполнить  эту программу,  если вы
                    не имеете данного режима доступа.

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

     2.3.2    Файлы специальных устройств.

     Каждому физическому устройству в системе, будь то твердый
или флоппи-диск, строчный принтер, терминалы или системная па-
мять, поставлены    в соответствие так называемые "специальные
файлы". Эти  файлы называются также файлами  специальных  уст-
ройств. Данное  руководство не описывает эти файлы. Интересую-
щиеся могут обратиться к UNIX Administrator's Guide.

     2.3.3    Справочные файлы или каталоги.

     Справочные файлы - это, скорее, картотеки, чем файлы. Это
места, где   размещены файлы (концептуально,  а не физически).
Часто справочные файлы называют также "каталогами".
.
                              2-4

     Каталог содержит имена и числовые дескрипторы файлов.  Чис-
ловые дескрипторы входят в простую систему числовых дескриптров,
использующуюся в UNIX для организации файловой системы. Система
числовых дескрипторов входит в единый файл параметров,  содержа-
щий информацию о файлах: о типе файлов, о числе связей с ними, о
размещении файлов на диске, о размерах файлов, об имени владель-
ца или группы,  о режимах доступа к файлам и о времени последней
модификации.
     Также как и обычные файлы,  каталоги  могут  быть  защищены
назначением режимов  доступа.  Доступом может быть разрешение на
чтение, на  запись и на выполнение. Чтобы сделать что-нибудь по-
лезное в данном каталоге, пользователь должен иметь режим досту-
па "по выполнению" относительно данного каталога. Чтобы добавить
файл или исключить его из данного каталога, необходимо иметь ре-
жим доступа "запись" и "выполнение".  Чтобы просмотреть содержа-
ние данного каталога,  нужно иметь режим доступа "чтение" и "вы-
полнение". Режим  доступа к каталогу назначается его владельцем.
Если нет владельца как такового, то им считается создатель ката-
лога.

     2.3.4    Структура каталога.

     При многопользовательской работе с большим количеством фай-
лов возникает необходимость в создании особого механизма быстро-
го просмотра файловой системы.  Особенностью системы UNIX явля-
ется   "инвертированная   древовидная    структура"    каталога,
позволяющая эффективно организовать большое  количество  файлов.
Связанные файлы  могут быть сгруппированы вместе в отдельном ка-
талоге. Наряду с обычными файлами, каталоги могут содержать дру-
гие каталоги, называемые иногда "подкаталогами". В свою очередь,
подкаталоги могут содержать как обычные файлы,  так и новые под-
каталоги, и  т.д. Команда cd служит для перехода из одного ката-
лога в другой. Типичным деревом файлов является приведенный ниже
пример, где  "корень" (root) располагается сверху, а "ветви" де-
рева растут вниз.  Катлоги являются "узлами" дерева,  а  обычные
файлы -   "листьями".  На рисунке 2-1 изображена инвертированная
древовидная структура каталога:

                         / root
           _________________|___________________
          |                 |                   |
         bin               usr                 dev
          |       __________|__________         |
          |      |                     |        |
        chmod  gwenl                markt     ttyla
               __|______        _______|__
              |         |      |          |
            mail      news   text       data

         Рис. 2-1  Типичная файловая система
.
                              2-5

     На рисунке 2-1 имена bin,  usr, dev, gwenl и markt являются
названиями каталогов,  и все они представляют собой узлы дерева.
В вершине дерева находится корневой каталог, который представлен
знаком слэш (/).  Имена mail,  news,  text и  data  представляют
обычные файлы,  на рисунке это - "листья" дерева. Файл chmod яв-
ляется именем команды, которая может быть выполнена. Идентифика-
тор ttyla  - имя файла специального устройства.  Он представляет
терминал и также содержится в древовидной структуре.
     Если каталог  содержит  идущие  вниз ветви,  представляющие
другие файлы или каталоги,  то такие файлы и каталоги называются
"содержащимися" в данном каталоге. На рис. 2-1 файлы mail и news
содержатся в каталоге gwenl, который, в свою очередь, содержится
в каталоге usr. А каталог usr содержится в корневом каталоге.
     Любому файлу в системе можно дать имя,  начиная от корня  и
двигаясь по какой-либо ветви до желаемого файла.  ФайлБ которому
дается имя.  соотносится с каким-либо каталогом.   Соглашения  о
способах именований в UNIX обсуждается ниже.

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

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

                        usr
           ______________|______________
          |              |              |
        adam            eve            mary
          |      ________|________      |
          |     |                 |     |
        text  text              temp   text

     Рис. 2-2.   Типичный каталог пользователя

     На рисунке 2-2 показано, что каталог usr содержит начальные
каталоги каждого пользователя.  В данной системе три пользовате-
ля: adam, eve и mary.
.
                              2-6

     2.4    Способы именований.

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

     2.4.1    Имена файлов.

     Имя файла - последовательность,  содержащая от 1 до 14 сим-
волов, которыми  могут быть буквы, цифры и некоторые специальные
символы, такие,  например, как подчеркивание (_). Каждый отдель-
ный файл,  каталог и устройство в системе имеет имя.  Хотя можно
использовать почти любые символы в имени файла,   лучше  ограни-
читься алфавитно-цифровым  набором символов и точкой.  Остальные
символы, в особенности символы управления,  не стоит употреблять
для этой цели.
     Имена файлов должны как-то отражать их содержание.   Напри-
мер, файл,  содержащий список необходимых покупок, скорее должен
иметь имя покупки,  а не file1.  Заметим,  что имя файла  должно
быть уникально только в пределах данного каталога,  но совсем не
обязательно во всей системе.  Различные каталоги могут содержать
разные файлы  с одинаковыми именами.  Например,  различные файлы
могут иметь одинаковое имя text, если они находятся в разных ка-
талогах. (См. рис. 2-2).
     Когда имя файла начинается с точки,  то сам  файл  является
"скрытым", и   его имя не отображается на дисплее по команде lc.
Часто файлы системной конфигурации (System configuration  files)
являются скрытыми.   Команды lc -a не выводят имена скрытых фай-
лов. Тире  (-)  используется в специальных опциях команд,  и его
следует избегать в именах файлов. Наконец, никогда не должны ис-
пользоваться в именах файлов знак вопроса (?),   звездочка  (*),
скобки ([ и ]) и другие разделители, так как они имеют свое тол-
кование в среде UNIX.  (Более подробную информацию об этих сим-
волах можно   получить  из главки "Специальные символы",  ниже в
этой части).

     2.4.2    Маршруты.

     Маршрут - это последовательность имен каталогов,  представ-
ляющий собой путь в файловой системе к данному файлу, где каждое
следующее имя отделяется от предыдущего наклонной чертой -  слэ-
шем. Если название маршрута начинается со слэша, то путь в иско-
мый файл начинается от корневого каталога всего дерева  системы.
В обратном случае,  если название маршрута начинается непосредс-
твенно с имени файла,  то путь к искомому файлу должен  начаться
от текущего   каталога  (рабочего каталога).  Введя команду pwd,
можно узнать имя текущего каталога.
.
                              2-7

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

    2.4.3    Имена шаблонов.

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

     /                 Имя корневого каталога.
     /bin              Каталог, содержащий  большинство наибо-
		       лее часто используемых команд UNIX.
     /usr              Каталог, содержащий  все каталоги поль-
                       зователей. В  подкаталоге  /usr/bin со-
                       держатся те наиболее часто используемые
		       команды UNIX, которые не вошли в /bin.
     /dev              Каталог, содержащий  файлы  специальных
                       устройств.
     /dev/console      Файл  специального устройства - систем-
                       ной консоли.
     /dev/ttyXX        Имена  файлов  специальных  устройств -
                       системных портов. XX представляет собой
                       номер, например,  la или 006. Большинс-
                       тво портов - терминалы.
     /lib              Каталог, содержащий "библиотечные" фай-
                       лы, используемые  для системного разви-
                       тия.
     /usr/lib          Каталог, содержащий приложения UNIX.
     /tmp              Каталог, содержащий временные файлы.
     /usr/joe/run      Типичный пример  полного  маршрута. Это
                       путь к файлу run, которым владеет поль-
                       зователь по имени joe.
.
                              2-8

     bin/skript        Относительный  маршрут.  Путь  к  файлу
                       skript подкаталога  bin от текущего ка-
                       талога.  Если текущим является корневой
                       каталог (/), то    имя    пути    будет
                       /bin/skript.   Если   текущий   каталог
                       /usr/joe, то          имя          пути
                       /usr/joe/bin/skript.
     file1             Имя обычного файла в текущем каталоге.

     Все файлы и каталоги,  за исключением корневого, имеют "ро-
дительский" каталог.    Этот каталог расположен "непосредственно
выше" данного каталога или файла в дереве файловой системы. Фай-
ловая система   UNIX  поддерживает специальную стенографическую
нотацию для родительского и текущего каталогов:

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

     2.4.4    Специальные символы.

     UNIX поддерживает возможность объединения  наборов  файлов
по специальным шаблонам. Представьте, к примеру, что вы работае-
те над большой книгой. Отдельные главы этой книги могут хранить-
ся в   виде  отдельных файлов,  называющихся,  например,  chpt1,
chpt2, chpt3  и т.  д. Вы также можете каждую главу разделить на
несколько частей в виде файлов,  и иметь,  таким образом,  файлы
chpt1.1, chpt1.2, chpt1.3 и т.д.
     Когда вы соберетесь напечатать всю книгу с помощью строчно-
го принтера, вы можете ввести следующую команду:

          lp chpt1.1 chpt1.2 chpt1.3 ...
.
                              2-9

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

     *     Соответствует нулю или более символов.
     []    Соответствует какому-либо символу в скобках.
     ?     Соответствует какому-либо одному символу.

     Например, вы можете ввести:

            lp chpt*

     Звездочка означает  "нуль  или более символов произвольного
типа", и  поэтому команда, приведенная выше, означает следующее:
"послать сообщения   файлам,   имена которых начинаются со слова
chpt, о  выводе на печать". Этот быстрый и эффективный путь рас-
печатки всех файлов поможет закончить вашу книгу.
     Такая сокращенная запись свойственна не только команде  lp.
Она может быть использована и в любой другой команде.  Например,
вы можете пролистать список имен файлов вашей  книги  с  помощью
команды

            lc chpt*

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

            cat *

     Эта команда выведет все файлы текущего каталога  на  экран.
Звездочка -   не единственный универсальный символ,  позволяющий
группировать имена. Представьте, что вам нужно распечатать части
только с 1 по 4 и 9. Вы можете ввести:

            lp chpt[12349]*
.
                              2-10

     Скобки ([  ])   означают "соответствие одному из символов в
скобках". Если  должно быть поставлено  соответствие  нескольким
символам, то  это можно записать более коротко, с использованием
следующей команды:

            lp chpt[1-49]*

     (Заметим, что эта запись должна рассматриваться как  после-
довательность с chpt1 по chpt4 и chpt9,  а не как последователь-
ность с chpt1 по chpt49). В этом примере показано, что символы в
скобках могут   записываться через тире:  "[a-z]",  что означает
"любой символ от а до z".
     Знак вопроса (?) соответствует какому-либо одному символу:

            lc ?

     По этой  команде  будут  выведены все файлы,  имена которых
состоят из одного символа.  Следующая команда выведет информацию
о первом файле из каждой главы (т.е. chpt1.1, chpt2.1, ...).

            lc chpt*.1

     Если вам понадобилось отключить специальное значение симво-
лов *,  ?,  [],  то заключите их в одинарные кавычки.  Например,
следующая команда   распечатает только файлы с именем '?',  а не
все файлы с односимвольными именами:

            lc '?'

     Шаблоны обсуждаются в части  "Оболочка"  руководства  UNIX
User's Guide.

     2.5    Команды

     Вы уже  немного  знакомы с тремя полезными командами UNIX,
lc, lp  и cat. Команда lc используется для вывода содержания ка-
талога, команда  lp для распечатки файлов, команда cat - для вы-
вода содержимого файла.
     Команды являются выполнимыми программами.  Когда вы вводите
имя команды,  UNIX пытается найти программу с таким именем и, в
случае удачи, выполнить ее. В командной строке могут содержаться
также аргументы и опции или файлы,  если программе это необходи-
мо. Командная    строка  и ее синтаксис описаны в двух следующих
главках.
.
                              2-11

     2.5.1    Командная строка.

     Среда UNIX считывает строку символов,  называемую "команд-
ной строкой",  и воспринимает ее как команду. Далее оболочка оп-
ределяет, какие именно действия нужно выполнить. (Существует три
оболочки UNIX:   Bourne Shell,  C-Shell и Visual Shell).  UNIX
считывает имя команды с командной  строки,   находит  выполнимую
программу, связанную    с  именем этой команды,  затем выполняет
программу. Когда  завершится выполнение программы,  среда  UNIX
возобновляет чтение и анализ командной строки.  Когда вы вводите
команду, фактически вы редактируете текстовую строку, называемую
"буфером командной строки".  Буфер командной строки будет содер-
жать саму командную строку только после нажатия клавиши  RETURN.
Изменение буфера командной строки осуществляется нажатием клавиш
BKSP и Ctrl-u.  Если нажать клавишу INTERRUPT прежде RETURN, ко-
мандная строка,  содержащаяся в буфере, будет стерта. (Большинс-
тво клавиатур используют клавишу DEL для обозначения INTERRUPT).
     В одной  командной  строке  может содержаться несколько ко-
манд, при  этом они разделяются точкой с запятой. Например, сле-
дующая командная  строка вызовет печать текущей даты и имени те-
кущего каталога:

            date; pwd

     Команды могут подчиняться "фоновому процессу",  если в  ко-
мандную строку   добавить  знак амперсанда (&).  Эта модификация
нужна для выполнения "пакетных" процессов других систем.  Основ-
ным преимуществом   фонового  выполнения команд является возмож-
ность одновременного выполнения других команд в приоритетном ре-
жиме. Например, следующая команда выводит статистику обращений к
диску в каталоге /usr,  фактически расходующей  время  операции,
без постоянной связи с терминалом:

            du /usr > diskuse &

     Команда du будет выводить информацию в файл diskuse,  когда
произошла переадресация выводного потока,  на что указывает знак
" > ". (Переадресация ввода и вывода обсуждается в главе "Ввод и
вывод" ниже. Фоновые процессы описаны в главе "Задачи с развиты-
ми свойствами").
.
                              2-12

     2.5.2    Синтаксис.

     Общий синтаксис команды таков:

            cmd [опции] [аргументы] [имена файлов] [...]

     По определению, названия команд печатаются строчными буква-
ми.
     Опции не являются обязательными атрибутами. От имени коман-
ды они отделяются через тире (-).  Используются опции в качестве
модификаторов команд. Например, команда lc вызовет печать содер-
жания каталога в сжатом виде в несколько столбцов. Эта же коман-
да с опцией -l (lc -l)  распечатает содержание каталога в расши-
ренном виде.
     В некоторых  случаях  одна  опция  может представлять собой
комбинацию нескольких, как в следующей команде:

            lc -rl

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

            copy -a -v  начало конец

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

            grep 'строка текста' data.file

     В этом примере строка текста - единственный аргумент, и это
та строка,  которую команда grep будет искать в файле data.file.
.
                              2-13

     2.6    Ввод и вывод.

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

            cat

     Теперь эта команда ждет ввода с вашей клавиатуры. Все стро-
ки,  а  их  может  быть  много, будет восприниматься как ввод до
тех пор,   пока вы не введете Ctrl-d,  что будет означать "конец
файла" или "индикатор конца трансмиссии".
     Например, введем:

            это две строчки  RETURN
            ввода  RETURN
            Ctrl-d

     Команда cat сразу же выводит на экран каждую вводимую стро-
ку. Таким образом, вывод будет в точности повторять напечатанную
вводимую строку. Вот что вы увидите на экране дисплея:
     _________________________________________________________
     |
     |   $ cat
     |   это две строчки
     |   это две строчки
     |   ввода
     |   ввода
     |   $

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

     2.6.1    Переадресация

     В UNIX файл может и вводиться с терминала, и выводиться на
терминал. Следующая команда выводит список файлов на экран ваше-
го терминала:

            lc
.
                              2-14

     Но если ввести видоизмененную команду,  список файлов будет
выведен не   на экран,  а в файл filelist (который будет создан,
если еще не существует):

            lc > filelist

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

            cat f1 f2 f3 > temp

     Эта команда  помещает  копии  нескольких файлов в файл temp
путем переадресации вывода команды cat в этот файл.
     Еще один  символ,   используемый в выводе ( >> ),  работает
аналогично символу переадресации вывода, а значение его - "доба-
вить конкатенацию  file1,  file2 и file3 в конец файла temp,  не
перекрывая и не уничтожая уже имеющееся там содержимое":

            cat file1 file2 file3 >> temp

     Как и в случае переадресации вывода,  если файл temp еще не
существует, то он создается при таком обращении.
     Аналогично, символ переадресации ввода  (  <  )   означает:
"взять вводной поток для программы из файла, имя которого следу-
ет после знака " < ",  а не с терминала".  Следующая команда пе-
решлет копии   файла letter.txt нескольким пользователям UNIX с
помощью команды mail:

            mail adam eve mary < letter.txt

     (О команде mail смотрите Часть 6 данного руководства).

     2.6.2    Каналы.

     Интересной концепцией среди многих других в UNIX  является
концепция каналов.  Каналы - простой способ использования вывода
одной команды в качестве ввода другой.   Последовательность  ко-
манд, реализующих этот механизм, называется "конвейером".
.
                              2-15

     Например, предположим,  что вам нужно найти все  уникальные
строки в frank.txt,  george.txt и hank.txt и просмотреть резуль-
тат. Вы можете ввести следующую последовательность команд:

            sort frank.txt george.txt hank.txt > temp1
            uniq < temp1 > temp2
            more temp2
            rm temp1 temp2

     Но при  этом совершается работа,  большая,  чем необходимо.
Вам нужно вывод sort соединить с вводом uniq,  затем вывод  uniq
присоединить к  more.  Вы бы употребили следующую последователь-
ность команд:

            sort frank.txt george.txt hank.txt | uniq | more

     Вертикальная черта (|)  употреблена между командами uniq  и
sort, чтобы  показать,  что вывод sort, который обычно поступает
на терминал,  может быть использован как входной  поток  команды
uniq, который, в свою очередь, отправляет свой выходной поток на
обзор с помощью команды more.
     Следующая команда  -  другой  пример конвейера.  Команда wc
подсчитывает количество строк,  слов и символов в ее входном по-
токе. Команда  who распечатывает текущий список зарегистрировав-
шихся пользователей,  каждое имя на новой строке. Таким образом,
следующий конвейер   информирует  вас о числе зарегистрированных
пользователей путем подсчета количества строк,   распечатываемых
по команде who:

            who | wc -l

     Обратите внимание на разницу в выводе между wc -l и wc. Ко-
манда wc подсчитывает число строк,  слов и символов  во  входном
потоке, а команда wc -l сообщит вам лишь число строк.
     Любая программа,  входным потоком которой может быть ввод с
клавиатуры, может  получать входной поток и по каналу. Аналогич-
но, любая  программа,  которая может посылать выводной поток  на
экран терминала,  может выводить также и посредством канала.  Вы
можете иметь столько элементов конвейера, сколько пожелаете.
.

                         Ч А С Т Ь  3

                     Регистрация в системе.
     _________________________________________________________

     3.1    Введение  3-1
     3.2    Получение доступа к системе  3-1
            3.2.1    Регистрация в системе  3-1
            3.2.2    Выход из системы  3-3
            3.2.3    Изменение пароля  3-3
     3.3    Обеспечение безопасности ваших ресурсов  3-5
            3.3.1    Безопасность пароля  3-5
            3.3.2    Безопасность - это ваши хорошие привычки  3-5
            3.3.3    Использование бюджета других
                     пользователей  3-6
     3.4    Изменение типа вашего терминала  3-6
     3.5    Ввод команд  3-7
            3.5.1    Ввод командной строки  3-7
            3.5.2    Стирание командной строки  3-8
            3.5.3    Останов вывода на экран  3-8
.
                              3-1

     3.1    Введение

     Прочтя эту главу,  вы узнаете,  как выполнить следующие ос-
новные задачи UNIX:

     .  Вход в систему
     .  Выход из системы
     .  Изменение пароля
     .  Использование бюджета других пользователей
     .  Переопределение типа вашего терминала
     .  Ввод команд UNIX
     .  Стирание командной строки, содержащей ошибки
     .  Приостановление и возобновление вывода на экран

     Материал этой части лучше всего изучать непосредственно  за
терминалом, вводя команды, описанные в примерах.
     Команды, описанные в этой части,  не разобраны  в  деталях.
Для более   полного  ознакомления  обращайтесь  к  UNIX  User's
Reference.

     3.2    Получение доступа к системе.

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

     3.2.1    Регистрация в системе.

     Прежде чем войти в систему,  вы должны иметь свой системный
бюджет (выделенные вам ресурсы). В большинстве случаев созданием
вашего бюджета  займется системный администратор.  Однако,  если
вам по каким-либо причинам нужно сделать это самостоятельно, об-
ратитесь к UNIX Sistem Administrator's Guide,  откуда можно по-
черпнуть всю необходимую информацию.  В данной части вы  найдете
описания ваших действий уже после создания бюджета.
.
                              3-2

     Система, готовая начать работу с вами, высвечивает на экра-
не дисплея приглашение-подсказку "login:". Если на экране появи-
лись блики или какая-нибудь абракадабра,  нажмите несколько  раз
клавишу INTERRUPT (или DEL).
     Когда же,  наконец,  подсказка "login:" появилась на  вашем
экране, ваши действия должны быть следующими:

     1.  Наберите ваше регистрационное имя  и  нажмите RETURN.
         Если в  наборе  имени  вы  допустили  ошибку, нажмите
         Ctrl-u для появления той же  командной  строки  снова
         (надавите Ctrl,  и,  не отпуская, нажмите клавишу u).
         После того, как вы нажмете RETURN, на экране появится
         запрос "Password:".

     2.  Введите ваш пароль и нажмите RETURN. При этом вводимые
         вами символы не высвечиваются на экране и  курсор  не
         сдвигается. Это  делается,   чтобы  скрыть  от других
         пользователей ваш пароль и,  таким образом,  защитить
         ваши записи.  Если вы введете регистрационное имя или
         пароль неверно, то система высветит на экране следую-
         щее сообщение:

         _____________________________________________________
         |
         |   Login incorrect
         |   login:
         |

         Увидев такое сообщение, введите имя или пароль снова.

     3.  В зависимости от того,  какую конфигурацию имеет ваша
         система, ею может быть задан  вопрос  о  типе  вашего
         терминала. В этом случае на экране вы увидите следую-
         щее:

         _____________________________________________________
         |
         |   TERM=(unknown)
         |

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

     Если вся информация введена правильно,  на экране  появится
"символ приглашения". В среде Bourne Shell это знак доллара ($),
и в среде C-Shell это знак процентов (%).  Этот символ подскажет
вам, с какой именно версией UNIX вы имеете дело.
     В зависимости от конфигурации,  система может также поинте-
ресоваться о текущей дате.

     3.2.2    Выход из системы.

     Обычный способ  выхода из системы - это на очередной символ
приглашения ответить logout (после % в C-Shell)  или exit (после
$ в Bourne Shell). Также иногда для выхода используется комбина-
ция клавиш Ctrl-d.  Однако,  некоторые системы не  предоставляют
возможности выходить по Ctrl-d. Причина тому - стандартное обоз-
начение конца файла в UNIX знаком Ctrl-d,  и частое его исполь-
зование для   сообщения  о  конце ввода с клавиатуры.  Некоторые
пользователи ошибочно могут нажать Ctrl-d несколько раз,  и  тем
самым ненамеренно выйти из системы. Для предотвращения такой пу-
таницы системный администратор  может  отключить  такую  функцию
Ctrl-d.
     Проэкспериментируйте, работает ли на вашей системе Ctrl-d в
качестве указания о выходе. Если нет, то попытайтесь выйти с по-
мощью exit или logout.  Если вы не находитесь в системе, войдите
в нее и затем попробуйте выйти по Ctrl-d, exit или logout.

     3.2.3   Изменение вашего пароля.

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

     1.  Введите следующую команду и нажмите RETURN:

            passwd
.
                              3-4

         Вы видите:
         _____________________________________________________
         |
         |  Changing password for user
         |  Old password:
         |

         При этом  ваше регистрационное  имя появится на месте
         слова user.

     2.  Внимательно введите старый пароль .Он не высветится на
         экране. Если вы допустили ошибку, нажмите RETURN. По-
         явится сообщение "Sorry",  затем приглашение системы.
         Начните все снова с шага 1.

     3.  Следующее сообщение появится, когда вы введете старый
         пароль и нажмете RETURN:

         _____________________________________________________
         |
         |   New password:
         |

         Введите ваш новый пароль и нажмите RETURN.  Хорошо бы
         использовать в пароле комбинацию строчных и прописных
         букв.

     4.  Вы видите следующее сообщение:

         _____________________________________________________
         |
         |   Re-enter new password:
         |

         Снова введите новый пароль.  Если вы  ошибетесь,   то
         увидите следующее:
         _____________________________________________________
         |
         |   They don't match; try again
         |
.
                              3-5

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

     3.3    Обеспечение безопасности ваших ресурсов.

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

     3.3.1    Безопасность пароля.

     Несколько полезных советов о специфике безопасности пароля:

     1.  Не используйте пароль,  который легко разгадать.  Па-
         роль должен содержать не меньше шести символов, вклю-
         чающих буквы,  цифры и знаки пунктуации.   (Например:
         frAiJ6*)
     2.  Пароль не должен быть именем (даже прозвищем),  собс-
         твенным существительным  или  другим словом,  которое
         можно найти в /usr/dict/words. (Не используйте пароль
         типа terry9)
     3.  Всегда держите свой пароль в секрете. Никогда не запи-
         сывайте его,   не  посылайте  электронной почтой и не
         произносите вслух.

     3.3.2    Безопасность - это ваши хорошие привычки.

     Это достаточно просто - иметь хорошие привычки для безопас-
ности. Здесь приводятся несколько общих советов.

     1.  Не забудьте, прежде чем уйти от терминала,  выйти  из
         системы.
     2.  Покидая терминал, даже на короткое время, используйте
         утилиту lock(C).
     3.  Некоторые "особо  чувствительные" файлы не просматри-
         вайте публично.  (В Части 4 вы найдете  информацию  о
         том, как это сделать)
     4.  Убирайте флоппи-диски и ленты с  конфиденциальной ин-
         формацией в ящик с замком,  который не забывайте  за-
         пирать.
.
                              3-6

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

     3.3.3    Использование бюджета других пользователей.

     Вы можете найти необходимым работать с файлами других поль-
зователей. Однако,  запросто может так   быть, что установленный
для этих файлов режим доступа позволяет лишь владельцу  редакти-
ровать его.   Чтобы обойти эту проблему,  используйте команду su
для изменения вашего текущего распределения  ресурсов,   включив
часть бюджета другого пользователя. Для использования команды su
вам необходимо знать соответствующий пароль.
     Например, чтобы  войти  в бюджет пользователя по имени joe,
введите на очередное приглашение UNIX  (но  не  на  приглашение
login) следующую команду:

            su joe

     Когда появится запрос о пароле, введите пароль пользователя
joe. Отменить  действие команды su и вернуться в ваш собственный
бюджет можно, нажав клавишу Ctrl-d.

     3.4    Изменение типа вашего терминала.

     В большинстве систем конфигурация позволяет сразу использо-
вать системную консоль для работы с UNIX.  Но и  многие  другие
серийные терминалы  различных типов могут быть подключены к сис-
теме UNIX.  Если вам предстоит работать на серийном  терминале,
важно знать, как специфицируется тип терминала.
     Тип терминала высвечивается на его экране  всякий  раз  при
регистрации. Вы можете изменить значение типа вашего терминала с
помощью редактирования файла .profile в вашем начальном каталоге.
Если вы работаете с C-Shell,  то вместо файла .profile, которого
у вас нет, редактируйте файл .login, который у вас есть.
     Могут быть по крайней мере две причины, по которым вы може-
те захотеть изменить значение высвечиваемого типа терминала:

     .  У вас может появиться новый терминал,  модель которого
        не совпадает с моделью вашего прежнего  терминала.   В
        этом случае тот тип терминала, который появится на эк-
        ране благодаря старому файлу .profile (.login),  будет
        неверным.
.
                              3-7

     .  Может  быть  так, что  значение  типа терминала  сооб-
        щается системой   как   "unknown"  (неизвестный)   или
        "ansi" (стандартный),  что неверно для вашего термина-
        ла. Тогда каждый раз при регистрации вам  будет  задан
        вопрос о типе терминала.  Для настройки среды  на  ваш
        терминал в   этом  случае  достаточно  нажать  клавишу
        RETURN в ответ на запрос о типе  терминала.   Необяза-
        тельно явно вводить тип терминала.

     Чтобы изменить высвечиваемый тип терминала,  воспользуйтесь
редактором vi для исправления .profile (.login). Часть 4 данного
руководства показывает, как пользоваться редактором vi.
     Находясь в vi,  подгоните курсор к строке, которая выглядит
так:

            eval 'tset -m :\?unknown -s -r -Q'

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

            eval 'tset -m :|?vt100 -s -r -Q'

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

            TERM = (vt100)

     Нажмите RETURN,  и теперь тип терминала  установлен  vt100.
Нет необходимости вводить vt100.

     3.5    Ввод команд.

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

     3.5.1    Ввод командной строки.

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

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

            lc -la
            du -a
            lc -Fa

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

     3.5.2    Стирание командной строки.

     Вполне вероятно,   что  вы можете допустить ошибку в наборе
команды. Стереть  всю текущую командную строку вы можете  с  по-
мощью команды  Ctrl-u.  Когда вы нажмете Ctrl-u,  снова появится
приглашение системы, а команда выполнена не будет.

     3.5.3    Останов вывода на экран.

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

            ls /bin
.

                           Ч А С Т Ь 4.

                Работа с файлами и каталогами.
     ___________________________________________________________

     4.1    Введение  4-1
     4.2    Работа с каталогами  4-1
            4.2.1    Печать имени вашего рабочего каталога  4-2
            4.2.2    Распечатка содержания каталога  4-2
            4.2.3    Изменение вашего рабочего каталога  4-3
            4.2.4    Создание каталогов  4-4
            4.2.5    Уничтожение каталогов  4-5
            4.2.6    Переименование каталогов  4-6
            4.2.7    Копирование каталогов  4-6
     4.3    Редактирование файлов с помощью редактора vi  4-7
            4.3.1    Ввод текста  4-7
            4.3.2    Движение курсора  4-8
            4.3.3    Удаление текста  4-8
            4.3.4    Вставка текста  4-9
            4.3.5    Выход из редактора vi  4-9
     4.4    Распечатка файлов  4-10
            4.4.1    Использование lp  4-10
            4.4.2    Использование опций lp  4-11
            4.4.3    Отмена запроса о печати  4-12
            4.4.4    Нахождение состояния запроса о печати  4-12
     4.5    Работа с файлами  4-13
            4.5.1    Отображение на экране содержания файла  4-14
            4.5.2    Удаление файлов  4-16
            4.5.3    Комбинирование файлов  4-16
            4.5.4    Переименование файлов  4-17
            4.5.5    Перемещение файлов  4-18
            4.5.6    Копирование файлов  4-18
            4.5.7    Нахождение файлов  4-19
.

     4.6    Обработка текстовых файлов  4-20
            4.6.1    Сопоставление файлов  4-20
            4.6.2    Сортировка файлов  4-21
            4.6.3    Поиск шаблонов в файле  4-21
            4.6.4    Подсчет слов, строк и символов  4-22
     4.7    Использование режимов доступа к файлам и каталогам  4-23
            4.7.1    Изменение режимов доступа к файлам  4-26
            4.7.1    Изменение режимов доступа к каталогам  4-28
.

     4.1    Введение.

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

     .  Напечатать имя текущего каталога,
     .  Просмотреть содержание каталога,
     .  Перейти в другой каталог,
     .  Создать, уничтожить, переименовать и скопировать ката-
        лог,
     .  Использовать при создании файла текстовый редактор vi,
     .  Распечатать файлы,
     .  Вывести на экран содержимое файла,
     .  Уничтожить, скомбинировать, переименовать, передвинуть,
        скопировать и найти файлы,
     .  Соотнести и рассортировать файлы,
     .  Найти шаблоны в файле,
     .  Подсчитать слова, строки и символы в файле,
     .  Использовать режимы доступа к файлам и каталогам.

     Эта часть построена как самоучитель. Изучать ее лучше всего
непосредственно за терминалом,  вводя данные в примерах команды.
     Ни одна из описанных здесь команд не дана в  деталях.   Для
более подробного     ознакомления   обратитесь  к  UNIX  User's
Reference.

     4.2    Работа с каталогами.

     Благодаря иерархической структуре файловой системы,   любая
система UNIX имеет много каталогов и подкаталогов.  UNIX вклю-
чает в себя несколько команд,  упрощающих работу  с  каталогами.
Эти команды описаны в следующих главках.
.
                                4-2

     4.2.1    Печать имени вашего рабочего каталога.

     Каталог, в котором вы сейчас находитесь,  на какое-то время
стал вашим рабочим каталогом.  Все вводимае команды  выполняются
относительно рабочего каталога.  Имя этого каталога можно узнать
по команде pwd,  которая  расшифровывается  как  "print  working
directory" ("напечатать рабочий каталог"). Узнать, каков ваш ра-
бочий каталог, можно, введя следующую команду:

            pwd

     Когда в системе вы впервые, вы находитесь в вашем начальном
каталоге.

     4.2.2    Распечатка содержания каталога.

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

            lc   Эта команда - вариант команды ls. Команда  ls
                 упорядочивает в алфавитном порядке и печатает
                 содержание каталога. Команда lc тоже упорядо-
                 чивает в алфавитном порядке содержание  ката-
                 лога и печатает его в виде стобцов.
            lf   Эта команда похожа на lc, и к тому же она от-
                 мечает каталоги слэшем (/) и выполнимые файлы
                 (компьютерные программы) звездочкой (*).

     Введите следующую   команду   для   распечатки   содержания
/usr/bin:

            lc /usr/bin

     Этот каталог содержит много выполнимых файлов,  с  которыми
вы работаете в среде UNIX. Введите команду lc без имени катало-
га для распечатки содержания текущего каталога.
.
                                4-3

     Также полезна команда l.  Она эквивалентна команде ls -l,
которая производит  "длинную"  распечатку содержания каталога.
Вывод будет примерно таким:

    __________________________________________________________
   |
   |   total 338
   |   -rw-rw-r--  1 markt pub  4448 Mar   1 09:16 1.intro.00
   |   -rw-rw-r--  1 markt pub  4457 Mar   1 09:29 1.intro.s
   |   -rw-rw-r--  1 markt pub 33836 Mar   1 09:30 2.consepts.00
   |   -rw-rw-r--  1 markt pub 35096 Mar   1 12:49 2.consepts.s
   |   -rw-rw-r--  1 markt pub 52197 Mar   1 15:09 3.basic.s
   |   -rw-rw-r--  1 markt pub 39835 Feb  16 11:02 4.advan.s
   |

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

     .  Режим доступа
     .  Число каналов связи
     .  Владелец
     .  Группа
     .  Размер в байтах
     .  Время последней модификации
     .  Имя файла

     Запись в верху списка показывает общее число "блоков",  ис-
пользуемых на диске для хранения всех этих файлов. Один блок со-
держит 512 байтов. 338 блоков, или 173056 байтов, необходимо для
хранения описанных выше файлов.

     4.2.3    Изменение вашего рабочего каталога.

     Ваш рабочий каталог - это то место в файловой системе,  где
вы находитесь.   Перейти в другой каталог файловой системы UNIX
можно по команде cd.
.
                                4-4

     Введя команду  cd без параметров,  вы окажетесь в вашем на-
чальном каталоге.  Попробуйте. Введите cd. Чтобы быть уверенным,
что вы   находитесь в вашем начальном каталоге,  проверьте это с
помощью команды pwd.
     Чтобы перейти в каталог,  отличный от вашего начального ка-
талога, специфицируйте нужный каталог как аргумент в команде cd.
Например, введя следующую команду, вы окажетесь в /usr/bin:

            cd /usr/bin

     Проверьте, что вы в /usr/bin, введя pwd.
     Попасть в корневой каталог можно по команде:

            cd /

     Корневой каталог - "вершина" файловой системы.  (Игра слов,
так как дерево файлов инвертировано.)  Все прочие каталоги нахо-
дятся "ниже" его. Посмотрим с помощью команды lf файлы и катало-
ги, содержащиеся  в корневом каталоге.  Затем вернемся в ваш на-
чальный каталог.  (О начальном каталоге более подробно  смотрите
Часть 2 данного руководства.)
     Некоторые стенографические нотации помогут  более  быстрому
перемещению в файловой системе.  Для того, чтобы попасть в ката-
лог на один уровень выше текущего, введите:

            cd ..

     Введите следующую команду - и вы на два уровня выше:

            cd ../..

     Если вы введете последнюю команду, находясь в своем началь-
ном каталоге,  то, вероятнее всего, окажетесь в корневом катало-
ге. Проверьте это (pwd).

     4.2.4    Создание каталогов.

     Находясь в вашем рабочем каталоге, вы можете создать подка-
талог с помощью команды mkdir.  Ведите cd для перехода в ваш на-
чальный каталог и затем введите следующую команду  для  создания
подкаталога с именем tempdir:

            mkdir tempdir
.
                                4-5

     Проверьте с помощью команды lf, что tempdir существует. Пе-
рейдите в tempdir с помощью команды cd и проверьте,  что tempdir
пуст (по lf). Наконец, воспользуйтесь командой touch(C) для соз-
дания в tempdir двух пустых файлов:

            touch tempfile1 tempfile2

     Введите снова lf для проверки,  что tempfile1  и  tempfile2
созданы.
     Если вы хотите создать подкаталог в каталоге,  то  это  вам
удастся лишь в том случае, если вы имеете режим доступа по запи-
си. Если вы такого режима доступа не имеете и воспользуетесь ко-
мандой mkdir, вы получите следующее сообщение:

            mkdir: cannot acctss directory_name

     В этом  сообщении  directory_name  будет представлять собой
имя каталога,  в котором вы пытались создать подкаталог.  Попро-
буйте проделать это в каталоге /etc, где вы скорее всего не име-
ете режима доступа по записи:

            mkdir /etc/temp

     4.2.5    Уничтожение каталогов

     Для уничтожения каталога используйте команду rmdir. Эта ко-
манда неприменима  к каталогам,  содержащим подкаталоги и файлы.
Проверьте это: перейдите в ваш начальный каталог посредством ко-
манды cd  и затем введите следующую команду для уничтожения соз-
данного в 4.2.4 каталога tempdir:

            rmdir tempdir

     Вы должны увидеть следующее сообщение:

            rmdir: tempdir not empty

     Чтобы уничтожить каталог tempdir с помощью rmdir, вы можете
прежде уничтожить   файлы tempfile1 и tempfile2,  содержащиеся в
нем. Но  не надо это проделывать сейчас, так как они нам понадо-
бятся в дальнейшем.
.
                                4-6

     4.2.6    Переименование каталогов.

     Для переименования каталога используйте кoманду mv.  Напри-
мер, перейдите  в ваш начальный каталог по команде  cd  и  затем
введите следующую команду для переименования tempdir - каталога,
созданного в 4.2.4, - в newdir:

            mv tempdir newdir

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

            lf newdir

     4.2.7    Копирование каталогов.

     Команда copy копирует каталоги. Конечно, прежде чем копиро-
вать содержание одного каталога в другой,  вы должны иметь режим
доступа по записи для второго каталога.
     Чтобы скопировать каталог /newdir, созданный в 4.2.6, и все
содержащиеся там файлы в tmp/newdir, введите следущую команду:

            copy $HOME/newdir /tmp/newdir

     В этой  команде  "$HOME" - стенографическое название пути к
вашему начальному каталогу.
     Чтобы проверить,   что  файлы из $HOME/newdir скопированы в
/tmp/newdir, введите следующую команду:

            lf /tmp/newdir

     Уничтожьте /tmp/newdir, введя следующие команды:

            rm /tmp/newdir/*
            rmdir /tmp/newdir
.
                                4-7

     Первая команда  уничтожит  все файлы в /tmp/newdir,  вторая
команда уничтожит    каталог   /tmp/newdir.    Проверьте,    что
/tmp/newdir уничтожено, вводя следующую команду:

            lf /tmp

     Уничтожьте $HOME/newdir, введя следующие команды:

            rm $HOME/newdir/*
            rmdir $HOME/newdir

     4.3    Редактирование файлов с помощью редактора vi.

     Текстовый редактор vi является экранным редактором,   вклю-
ченным в ОС UNIX. В этой главке сжато описано использование ре-
дактора vi. Для более подробного ознакомления обращайтесь к
 UNIX User's Guide.

     4.3.1    Ввод текста.

     Измените ваш  каталог на начальный с помощью команды cd,  и
введите следующую команду для создания файла tempfile:

            vi tempfile

     Появится сообщение, из которого вы узнаете, что создали но-
вый файл. Заодно вы попали в редактор vi.
     Существует два режима в vi:  режим вставки и режим  команд.
Используйте режим вставки для добавления текста в файл,  а режим
команд - для исправления существующего текста.  Так как tempfile
пуст, введите i для работы в режиме вставки.
     Введите следующие строки текста,  нажимая RETURN после каж-
дой строки.  Если вы сделали ошибку в наборе строки, используйте
клавишу BKSP для стирания и продолжайте набор символов:

            Этот самоучитель очень, очень помогает мне.
	    С ним легко изучать применение системы UNIX.
            Как я рад, что имею такой самоучитель.

     После того,  как вы введете последнююю строку, нажмите кла-
вишу ESC. При этом вы выйдете из режима вставки и попадете в ре-
жим команд.
.
                                4-8

     4.3.2    Движение курсора.

     Хотя существует много команд для перемещения курсора, оста-
новимся здесь лишь на четырех (всегда подразумевается,  что вы в
режиме команд):

     h    Находясь в режиме команд, нажимайте  h для перемещения
          на один символ влево.
     l    Перемещение на один символ вправо.
     k    Перемещение на одну строку вверх.
     j    Перемещение на одну строку вниз.

     Попробуйте использовать эти команды для перемещения курсора
во введенном   вами тексте.  Заметим,  что часто клавиши-стрелки
представляют клавиши h,l,k,j для управления движением курсора.

     4.3.3    Удаление текста.

     Удалить текст в редакторе vi очень просто.  Здесь есть раз-
личные команды для удаления символов, слов и целых строк.
     Для удаления одного символа подведите курсор под этот  сим-
вол и нажмите клавишу x.  Попробуйте,  как работает эта клавиша,
удаляя запятую в первой строке текста.
     Чтобы удалить  слово,   подведите  курсор под первый символ
слова и нажмите dw (нажмите d,  и,  отпустив, нажмите w). Попро-
буйте использовать   эту команду,  удаляя слово "очень" в первой
строке вашего текста.
     Чтобы удалить строку,  поместите курсор на любое место этой
строки и нажмите dd (нажмите d,  а потом,  отпустив,  снова  d).
Попробуте с   помощью  этой команды удалить третью строку вашего
текста. Теперь ваш текст должен выглядеть следующим образом:
      _________________________________________________________
     |
     |   Этот самоучитель очень помогает мне.
     |   С ним легко изучать применение системы UNIX.
     |
.
                                4-9

     4.3.4    Вставка текста.

     Клaвиши i  и o используются для вставки текста.  Мы уже ис-
пользовали клавишу i для вставки текста в пустой файл.  Если  вы
хотите добавить текст в существующую строку,  подведите курсор к
тому месту,  куда бы вы хотели поместить новый кусок,  нажмите i
для перехода в режим вставки,  введите текст и вернитесь в режим
команд, нажав  клавишу ESC.  Например,  подведите курсор к "л" в
слове "легко"   во  второй  строке,   нажмите  i,  введите слово
"очень", нажмите пробел и вернитесь в режим команд с помощью ESC
. Вторая строка будет выглядеть так:
      __________________________________________________________
     |
     |   С ним очень легко изучать применение системы UNIX.
     |

     Клавиша o может быть использована для вставки новой строки.
Поместите курсор непосредственно выше того места в  файле,   где
будет помещена вставляемая строка,  и нажмите o.  Появится место
для новой строки,  при этом курсор попадет на начало строки.  Вы
автоматически попали в режим вставки.  Попробуйте, поместив кур-
сор во вторую строку tempfile и нажав o.  Теперь  введите  новый
текст. Нажмите ESC, когда закончите.

     4.3.5    Выход из редактора vi.

     Через какое-то время вы захотите сохранить ваш файл,  преж-
де, чем покинуть vi. Чтобы сделать это, перейдите в режим команд
и наберите :x.  Эта команда сохранит файл, который вы редактиро-
вали, и вернет вас в среду UNIX.
     В некоторых  случаях вам понадобится выйти из редактора без
сохранения вашей работы. Для этого в режиме команд наберите :q!.
Эта команда   вернет  вас в среду UNIX без внесения изменений в
тот файл, с которым вы занимались.
     Выйдите из  tempfile,  нажав :x.  Снова войдите в tempfile,
введя следующую команду:

            vi tempfile
.
                               4-10

     Вставьте какой-либо текст с помощью i или o,  нажмите ESC и
введите :q!    для  выхода  без  сохранения внесенных изменений.
Прсмотрите tempfile с помощь следующей команды:

            cat tempfile

     Вы заметите,  что последние изменения не высветились. Унич-
тожьте tempfile с помощью команды

            rm tempfile

     4.4    Распечатка файлов.

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

     4.4.1    Использование lp.

     С помощью  команды  cd  перейдите в ваш начальный каталог и
введите следующую команду для создания файла,  с  которым  можно
поэкспериментировать:

            cp /etc/motd $HOME/printfile

     Эта команда  поместит копию /etc/motd в ваш начальный ката-
лог под названием printfile.  Файл /etc/motd - "message  of  the
day file"  - файл "сообщения о дате".  Его содержание появляется
на экране вашего дисплея каждый раз при регистрации в системе.
     Каталог должен  быть открыт для выполнения любому пользова-
телю, чтобы  вы могли распечатать какой-либо файл из него.   Это
означает, что   и другие пользователи должны иметь режим доступа
по выполнению в этом каталоге. Чтобы сделать каталог общеупотре-
бимым, введите следующую команду:

            chmod o+x $HOME

     (Смотрите "Использование режимов доступа к файлам и катало-
гам" далее в этой части, где более подробно об chmod(C).)
.
                               4-11

     Введите следующую команду для печати printfile:

            lp printfile

     Эта команда  по умолчанию пошлет одну копию файла printfile
на принтер для печати.  Заметим,  что вы можете распечатать нес-
колько файлов, помещая их имена в качестве аргументов команды lp.
    Когда вы печатаете с помощью lp,   на  экране  высвечивается
"сообщение ID", которое выглядит примерно так:

            pr4-532

     Первая часть этого сообщения (pr4)  - название принтера, на
котором вы печатаете.  Вторая часть (532) идентифицирует ваш ра-
бочий номер. Если вы захотите позже отозвать свой запрос о печа-
ти или изменить его состояние,  припомните сообщение ID. (Отмена
и изменение состояния запроса о печати описано ниже.)
     Также вы можете использовать lp с каналами.  Например, вве-
дите следующую команду для сортировки и последующей печати копии
файла /etc/passwd, содержащего информацию о системном бюджете:

            sort /etc/passwd | lp

     (Подробнее о sort(C)  смотрите "Сортировка файлов",  ниже в
этой части.)

     4.4.2    Использование опций lp.

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

            lp printfile -n2

     Часто с одной системой UNIX  связаны  несколько  различных
принтеров. С помощью опции -d вы можете специфицировать принтер,
на котором хотите распечатать ваш файл.  Для того, чтобы напеча-
тать две копии вашего файла printfile на принтере, который назы-
вается laser, введите:

            lp printfile -n2 -dlaser

     Вместе с вашим системным  администратором  проверьте  имена
ваших принтеров.
.
                               4-12

     4.4.3    Отмена запроса о печати.

     Используйте команду cancel для отмены запроса о печати. Ко-
манда cancel берет аргумент из ID-сообщения.  Например,  остано-
вить печать файла с ID-сообщением от laser-245 можно, введя сле-
дующую команду:

            cancel laser-245

     Попробуйте начать печать по команде lp и  затем  остановить
печать по  команде cancel.  Закончив,  введите следующую команду
для уничтожения printfile:

            rm printfile

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

            cancel laser

     Если вы прерываете печать чужого файла,  его владельцу тот-
час будет послано сообщение об этом.

     4.4.4    Нахождение состояния запроса о печати.

     Используйте команду lpstat для изменения состояния  запроса
о печати. Для этого просто введите следующее:

            lpstat

     Команда lpstat выдаст примерно такой текст:
      _________________________________________________________
     |
     |   prt1-121    cindum    450   Dec 15 09:30
     |   laser-450   cindum   4968   Dec 15 09:46
     |
.
                               4-13

     Заметим, что,  используя команду lpstat без опций, вы полу-
чите информацию только о своих файлах. Если вы интересуетесь по-
добной информацией о файлах всех пользователей данного компьюте-
ра, используйте  команду lpstat с опцией -o. Эта команда не даст
никакой информации, если работа принтера завершена.
     Первая колонка  выданного по команде lpstat текста содержит
ID-сообщение для каждого файла,  находящегося в печати.   Вторая
колонка показывает  ваше регистрационное имя.  В третьей колонке
содержится число символов, которые будут напечатаны, и в четвер-
той колонке - дата и время поступления запроса о печати.
     Для изучения состояния отдельного файла используйте команду
lpstat с ID-сообщением файла. Например, для нахождения состояния
файла с ID-сообщением laser-256 введите следующую команду:

            lpstat laser-256

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

            lpstat -p

     Чтобы узнать состояние принтера laser, введите:

            lpstat -plaser

     Высветились ID-сообщение и информация о состоянии всех фай-
лов, ожидающих в данный момент печати на принтере laser.

     4.5    Работа с файлами.

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

     4.5.1    Отображение на экране содержания файла.

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

            --More--(XX%)

     XX% показывают,  сколько процентов текста уже напечатано на
экране. Для медленной, построчной выдачи текста нажимайте клави-
шу RETURN. Для поэкранной выдачи нажимайте пробел.
     Введите следующую команду:

            more /etc/rc

     При этом на эране начнет печататься файл /etc/rc.  Для пре-
рывания печати файла прежде, чем она будет завершена, нажмите q.
     Команда more не позволяет листать назад,  к  началу  файла.
Однако, вы можете, используя команду more, организовать поиск по
шаблону, взяв шаблон как аргумент через слэш (/). Например, вве-
дите следующую   команду  для  поиска  строки,  содержащей слово
"process" в /etc/rc :

            more /etc/rc

     Вверху на экране вы увидите следующее сообщение:
      ________________________________________________________
     |
     |   ...skipping
     |

     Если шаблон будет найден,  на экране под этим сообщением вы
увидите две искомые строки.  В противном случае будет выдано со-
общение "Pattern not found" ("Шаблон не найден").
     Если при  просмотре файла с помощью команды more вы находи-
те, что этот файл нужно редактировать, то в редактор vi вы може-
те попасть, нажав клавишу v. Конечно, вы должны иметь режим дос-
тупа по записи к этому файлу для редактирования с помощью  этого
или другого   редактора.  Для печати содержимого файла на экране
нужно иметь режим доступа по чтению.
.
                               4-15

     Вы можете  использовать команду more с каналами.  Например,
команда more полезна, когда вы хотите вывести содержание катало-
га в  длинном формате.  Введите следующую команду для поэкранной
печати содержания каталога /bin в длинном формате:

            l /bin | more

     (О каналах читайте Часть 2 данного руководства.)
     Команды head и tail выводят на печать соответственно начало
и конец файла.  Применяемые без опций,  они печатают по 10 строк
от начала и от конца файла. Введите следующую команду для печати
на экране 10 последних строк файла /etc/rc:

            tail /etc/rc

     Количество необходимых вам для просмотра  строк  вы  можете
указать точно.    Введите следующую команду для печати первых 20
строк /etc/rc:

            head -20 /etc/rc

     Введите для печати 20 последних строк /etc/rc:

            tail -20 /etc/rc

     Команда cat также выдает на экран содержание файла. Подобно
команде more,  cat непрерывно печатает файл до тех пор,  пока вы
не остановите просмотр нажатием Ctrl-s.  Ctrl-d продолжит  прос-
мотр. Просмотр  автоматически прекратится, когда будет достигнут
конец файла. Для прекращения просмотра до его завершения нажмите
INTERRUPT (Del).
     Введите следующую команду для  просмотра  содержания  файла
/etc/termcap. Используйте Ctrl-s и Ctrl-d для остановки и возоб-
новления просмотра и INTERRUPT для его досрочного завершения:

            cat /etc/tempcat
.
                               4-16

     4.5.2    Удаление файлов.

     Команда rm используется для удаления файлов. Мы уже показы-
вали на разных примерах этой части действие команды rm. Измените
ваш каталог на начальный с помощью команды cd и введите  следую-
щую команду для создания трех новых файлов:

            touch tempfile1 tempfile2 tempfile3

     Удалите файл tempfile3 командой:

            rm tempfile3

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

            rm -i tempfile1 tempfile2

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

            rm -i tempfile*

     (Использование универсальных символов в командах UNIX опи-
сано в Части 2 данного руководства.)

     4.5.3    Комбинирование файлов.

     Помимо печати на экране, команда cat может быть использова-
на для  комбинирования нескольких существующих файлов в один но-
вый файл. Это достигается путем переадресации вывода cat в новый
файл. Для    переадресации используется знак больше ( > ).  Если
этот новый файл не существует,  он будет  создан  автоматически.
(Если вы   не знакомы с переадресацией,  читайте Часть 2 данного
руководства.)
.
                               4-17

     Перейдите в  ваш  начальный  каталог с помощью команды cd и
введите следующую команду для комбинирования файлов /etc/motd  и
/etc/rc в один файл catfile:

            cat /etc/motd /etc/rc > catfile

     Теперь просмотрим содержимое нового файла catfile с помощью
команды more:

            more catfile

     Символ >> может быть использован для  подсоединения  одного
файла в  конец другого файла.  Например,  присоединим содержимое
/etc/motd к catfile, введя следующую команду:

            cat /etc/motd >> catfile

     Теперь в начале и в конце catfile находится /etc/motd. Про-
верим это с помощью следующих команд:

            head -20 catfile
            tail -20 catfile

     4.5.4    Переименование файлов.

     Команду mv в UNIX можно использовать двояко: для перемеще-
ния файлов   и для их переименования.  Перейдите в ваш начальный
каталог по команде cd.  Переименуйте ваш файл catfile, созданный
в 4.5.3, в catfile2, для этого введите:

            mv catfile catfile2

     После выполнения этой команды catfile закончит свое сущест-
вование. Файл  catfile2 будет размещен на его месте. Убедитесь в
этом:

            lc
.
                               4-18

     4.5.5    Перемещение файлов.

     Для перемещения файла в другой каталог используйте в коман-
де mv в качестве последнего аргумента имя нужного каталога.   Не
обязательно указывать имя файла в новом каталоге. Например, сле-
дующая команда перешлет файл catfile2,  созданный в 4.5.4, в ка-
талог /tmp:

            mv $HOME/catfile2 /tmp

     Чтобы быть уверенным,  что файл catfile2 находится в /tmp и
его нет в текущем каталоге, введите:

            lc . /tmp

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

            mv /tmp/catfile2

     Команда mv всегда проверяет, является ли последний ее аргу-
мент именем каталога. Если это так, то все файлы, являющиеся ар-
гументами этой команды, пересылаются в этот каталог. Однако, ес-
ли в  этом каталоге вы не имеете режима доступа по записи,  ваши
попытки пересылки файлов не увенчаются успехом.

     4.5.6    Копирование файлов.

     Команда cp служит для копирования файлов.  Эта команда  су-
ществует в двух вариантах: первый - когда файлы копируются в ка-
талог, и второй - когда файл копируется в другой файл.
     Перейдите в ваш начальный каталог с помощью команды cd. За-
тем с помощью  следующей  команды  скопируйте  содержание  файла
catfile2, созданного в 4.5.4, в файл catfile3:

            cp catfile2 catfile3

     Теперь вы имеете два файла с идентичным содержанием.  Чтобы
скопировать файлы catfile2 и catfile3 в каталог /tmp, введите:

            cp catfile2 catfile3 /tmp
.
                               4-19

     Упростим эту последнюю команду с помощью использования уни-
версального символа:

             cp catfile* /tmp

     Подобно команде  mv,   cp всегда проверяет,  является ли ее
последний аргумент именем каталога.  Если это так, то все файлы,
имена которых являются аргументами этой команды,  будут скопиро-
ваны в этот каталог.  Однако, в отличие от команды mv, cp остав-
ляет обработанные файлы без изменений. Теперь в системе будет по
две копии файлов catfile2 и catfile3,  по одногй копии каждого в
текущем каталоге, и по одной - в /tmp.

     4.5.7    Нахождение файлов.

     Файловая сисема UNIX может содержать тысячи файлов. Поэто-
му довольно просто потерять файл.  С помощью команды find  можно
организовать просмотр файловой системы для поиска файла. Эта ко-
манда имеет вид:

            find pathname -name filename -print

     pathname - маршрут к каталогу,  который вы хотите  просмот-
реть. Просмотр рекурсивный: он перебирает все файлы и просматри-
вает все подкаталоги каталога, имя которого вы указали.
     Опция -name сообщает,  что вы проводите поиск файлов, имена
которых - filename.  Опция -print позволяет напечатать на экране
дисплея маршруты   ко всем файлам,  имена которых указаны в этой
команде.
     Введите следующую  команду  для поиска всех тех каталогов и
подкаталогов, где есть файл catfile2, созданный в 4.5.4:

            find / -name catfile2 -print

     Выполнение этой команды займет,  быть может,  несколько ми-
нут. Выдача  этой команды покажет, что файл catfile2 встречается
по меньшей мере в дважды:  один в каталоге /tmp и один  в  вашем
начальном каталоге.  Удалим catfile2 и catfile3 из /tmp и вашего
начального каталога путем ввода команды:

            rm /tmp/catfile* $HOME/catfile*
.
                               4-20

     4.6    Обработка текстовых файлов.

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

     4.6.1    Сопоставление файлов.

     Команда diff позволяет сопоставлять содержание двух  файлов
и печатать те строки,  которые в этих файлах различаются.  Чтобы
попробовать эту возможность в работе,  войдите в редактор vi для
создания двух файлов и работы с ними. Пусть эти файлы называются
men и women. Сначала войдите по команде cd в ваш начальный ката-
лог. Затем на приглашение UNIX введите следующую команду:

            vi men

     Теперь, попав в редактор, войдите в режим вставки - нажмите
i - и наберите следующий текст:

            Настало время всем добрым мужчинам
            Прийти на помощь своей партии.

     Перейдите в режим команд (Esc)  и сохраните файл men, введя
:w. Находясь в режиме команд, создайте файл women:

            :n women

     Вы увидите следующее сообщение:

            "women" No such file or directory

     Вы находитесь теперь в файле women.  Нажмите i для перехода
в режим вставки и введите следующие строки:

            Настало время всем добрым женщинам
            Прийти на помощь своей партии.

     Нажмите Esc для возврата в режим команд,  затем наберите :x
и выйдите  из редактора vi.  Теперь у вас есть два файла:  men и
women.
     Введите следующую команду для сопоставления содержания двух
файлов:

            diff men women
.
                               4-21

     Выполнение команды diff вызовет печать такого текста:
      _________________________________________________________
     |
     |   lcl
     |   < Настало время всем добрым мужчинам
     |   ---
     |   > Настало время всем добрым женщинам
     |

     Эти две строки - то, чем различаются два файла men и women.

     4.6.2    Сортировка файлов.

     Одной из наиболее полезных команд обработки файлов является
команда sort.   Команда  sort  без параметров располагает строки
файла в алфавитном порядке,  рассматривая строки с самого левого
символа. Рассортированные  таким  образом строки выводятся затем
на экран или,  в случае переадресации вывода, в файл. Данная ко-
манда не воздействует на содержимое текущего файла.
     Введите следующую  команду  для  распечатывания  на  экране
в алфавитном порядке списка всех пользователей,  имеющих систем-
ный бюджет:

            sort /etc/passwd

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

            who | sort

     4.6.3    Поиск шаблонов в файле.

     Команда grep выбирает и отделяет строки файла, печатая лишь
те из них, которые содержат совпадающие с данным шаблоном части.
С помощью   следующей   команды   распечатайте   строки    файла
/etc/passwd, содержащие вашу регистрационную информацию. Возмож-
но, вся эта информация уместится в одной строке:

            grep  login /etc/passwd
.
                               4-22

     Замените в этой команде login на ваше регистрационное  имя.
Выведенная информация будет иметь примерно такой вид:
 _______________________________________________________________
|
| markt:0V/WE/utnUkpc:6005:104:Mark Taub, Docland:/u/markt:/bin/csh
|
     Заметим, что всегда, когда  в  команде  grep  используется
универсальный  символ,  шаблон должен быть заключен в одинарные
кавычки ('). Заметим также, что использование шаблонов  требует
большой  тщательности.  Набрав  в  команде "joe", вы никогда не
найдете "Joe".
     Другой пример: предположим, что у вас есть файл - телефон-
ная книжка phonelist, содержащий имена и телефонные номера вла-
дельцев телефонов. В этом  файле  может  быть  несколько  тысяч
строк.  Вы можете использовать команду grep для поиска телефон-
ного номера какого-либо человека по имени Joe, чей номер  начи-
нается с цифр 822:

            grep 'Joe' phonelist | grep '822-' > joes.number

     Сначала утилита grep найдет в файле phonelist все  строки,
содержащие  слово  "Joe".  Вывод  этой команды будет просмотрен
другой командой grep, которая среди всех этих строк найдет  те,
в  которых  номер  начинается с "822-". Наконец, искомые строки
(скорее всего, лишь одна) будут помещены в файл joes.number.
     Еще две команды UNIX производят поиск шаблонов.  Это  ко-
манды  egrep  и fgrep. Для более подробной информации о команде
grep обращайтесь к UNIX User's Reference.

     4.6.4    Подсчет слов, строк и символов.

     Утилита wc подсчитывает количество слов в файле. Под  сло-
вами  эта  команда  подразумевает  все то, что отделено знаками
пунктуации, пробелами, знаками табуляции и переходом  на  новую
строку. Кроме слов, команда wc подсчитывает строки и символы.
.
                               4-23

     Перейдите  в  ваш  начальный  каталог по команде cd. Затем
введите следующую команду для подсчета строк, слов и символов в
файле men, созданнго в 4.6.1:

            wc men

     Выдача этой команды будет следующей:
      __________________________________________________________
     |
     |   2   10  55 men
     |

     Эти числа означают следующее: первое - число строк в файле
men, второе - число слов и третье - число символов. Теперь уда-
лите файлы men  и  women с помощью следующей команды:

            rm *men

     Для спецификации подсчета символов, слов и  строк  по  от-
дельности  существуют  опции -c, -w и -l соответственно. Напри-
мер, с помощью следующей команды вы  сможете  подсчитать  число
зарегистрированных в данный момент пользователей:

            who | wc -l

     Команда who создает список работающих с системой пользова-
телей, по одному на строке. Команда wc -l подсчитает получивши-
еся строки. Это и будет искомое число.

     4.7    Использование режимов доступа к файлам и каталогам.

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

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

     -    Обычный файл.

     b    Блок  специальных устройств - твердый и гибкий диск. И
          твердый, и флоппи-диск могут  быть  представлены  этим
          символом.

     c    Специальные  устройства  типа  строчного  принтера или
          терминала.

     d    Каталог.

     m    Совместно используемый файл данных.

     n    Имя специального файла.

     p    Имя канала.

     s    Семафор.

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

     .    Доступ владельца,

     .    Доступ группы и

     .    Доступ всех прочих пользователей.

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

     Для обычного файла разрешение имеет следующий смысл:

     r    Файл можно читать.
     w    Файл можно редактировать.
     x    Файл можно выполнять.
     -    Нет никакого доступа.

     Для каталогов это трансформируется следующим образом:

     r    Файлы данного каталога могут быть просмотрены; каталог
          в этом случае должен иметь также "x" разрешение.
     w    В данном каталоге можно создавать и удалять файлы. Ка-
          талог должен также иметь "x" разрешение.
     x    Каталог может быть просмотрен.  Он  должен  иметь  "x"
          разрешение, прежде чем в него можно попасть по команде
          cd,  обратиться  к файлам данного каталога или пролис-
          тать их. Помните, что каталог должен иметь "x" рареше-
          ние, чтобы вы могли сделать что-либо полезное в нем.

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

     d---------    Ни для кого нет доступа. Этот режим запрещает
                   доступ всем, кроме привилегированного пользо-
                   вателя.
     drwx------    Доступ  только для владельца каталога. Владе-
                   лец может  просмотреть  содержание каталога и
                   файлов в нем (если они имеют  соответствующее
                   разрешение), попасть в каталог по команде cd,
                   добавлять и удалять файлы в нем. Это типичный
                   режим для владельца каталога.
     drwxr-x---    Кроме разрешения для владельца каталога, опи-
                   санного  выше, здесь  добавляется  доступ для
                   группы на просмотр содержания каталога и фай-
                   лов в  нем,  а также на вход в данный каталог
                   по команде cd.  Однако, члены группы не могут
                   создавать или  удалять файлы в этом каталоге.
                   Это типичный пример доступа к файлам, который
                   предоставляет владелец каталога членам группы.
.
                              4-26

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

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

            l /etc | more

     4.7.1    Изменение режимов доступа к файлам.

     Команда chmod изменяет разрешение на чтение, запись, выпол-
нение и поиск в файлах и каталогах. Она имеет вид:

            chmod instruction filename

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

     u    Пользователь -  владелец файла или каталога.
     g    Группа, использующая файлы, принадлежащие их владельцу.
     o    Прочие, т.е. все пользователи, кто не вошел в u или g.
     a    Все пользователи системы.

     Доступ специфицируется следующим образом:

     r    Чтение, или разрешение на просмотр, но не на изменение
          или удаление файлов.
.
                              4-27

     w    Запись,  что  позволяет  пользователям редактировать и
          даже удалять файлы.

     x    Выполнение - разрешение на выполнение файлов как команд.

     Перейдите в ваш начальный каталог по команде cd. Затем вве-
дите следующую команду для создания файла tempfile:

            touch tempfile

     Вероятно, режим доступа к tempfile будет следующим:

            -rw-r--r--

     Убедитесь в этом путем ввода следующей команды:

            l tempfile

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

            chmod u+x tempfile

     С помощью  команды l проверьте,  что режим доступа изменен.
(Конечно, если файл tempfile не является объектным или загрузоч-
ным, что по умолчанию предполагает разрешение на выполнение).
     С помощью следующей команды задайте доступ по записи к фай-
лу tempfile для членов группы и прочих пользователей:

            chmod go+w tempfile

     Проверьте с помощью команды l, что режим доступа изменен.
     Вы имеете возможность и на отмену доступа,   что  позволяет
делать все та же команда chmod. Например, введя следующую коман-
ду, вы снимете разрешение с прочих  пользователей  на  запись  в
файле tempfile:

            chmod o-w temfile

     Удалите tempfile с помощью команды rm:

            rm tempfile
.
                              4-28


     4.7.2    Изменение режимов доступа к каталогам.

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

            drwxr-xr-x

     Убедитесь в этом, введя следующую команду:

            l -d $HOME

     Вы, вероятно, видите теперь следующее:
      ___________________________________________________________
     |
     |   drwxr-xr-x  4 markt pub   240 Feb 10 09:09 /u/markt
     |

     Установленный таким образом режим доступа позволит вам, как
владельцу каталога,  входить в него по команде cd, просматривать
содержание каталога и файлов в нем (если,  конечно,  для  файлов
есть соответствующее  разрешение),   а также создавать и удалять
файлы в данном каталоге.  Для других членов группы и всех прочих
пользователей этот  режим  доступа позволяет переходить в данный
каталог по команде cd, просматривать содержание каталога и  всех
тех файлов в нем, что имеют соответствующее разрешение.
     Чтобы лишить других пользователей доступа для полезной  ра-
боты в вашем каталоге, введите следующую команду:

            chmod o-x $HOME

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

            l -d $HOME
.
                              4-29

     Вы должны увидеть следующее сообщение:
      __________________________________________________________
     |
     |   drwxr-xr--  4 markt pub   240 Feb 10 09:09 /u/markt
     |

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

            chmod o+d $HOME

.



                        Ч А С Т Ь  5.

                      Сопровождение системы
    ____________________________________________________________

     5.1    Введение  5-1

     5.2    Создание резервных копий  5-1
            5.2.1    Форматирование дискет и лент
            5.2.2    Использование  команды tar для создания ре-
                     зервных копий
            5.2.3    Просмотр содержимого копий
            5.2.4    Извлечение файлов из копий
            5.2.5    Стенографическая запись команды tar

     5.3    Копирование дискет  5-9

     5.4    Как узнать информацию о статусе системы  5-10
            5.4.1    Кто сейчас работает в системе?
            5.4.2    Распознавание обращений к диску

     5.5    Управление процессами  5-12
            5.5.1    Установление фонового режима выполнения ко-
                     манд
            5.5.2    Отсрочка выполнения команд
            5.5.3    Какие процессы сейчас выполняются?
            5.5.4    Прерывание процессов

     5.6    Программирование на языке Shell  5-17
.
                             5-1

     5.1    Введение.

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

     .   Создание копий особо значимых файлов и каталогов,
     .   Извлечение файлов из резервной среды,
     .   Создание копий флоппи-дисков,
     .   Определение размера использованного/свободного дисково-
         го пространства,
     .   Выполнение команд в фоновом режиме,
     .   Отсрочка и прерывание выполнения команд,
     .   Использование  языка shell для автоматизации выполнения
         рутинных задач.

     Эта часть построена как самоучитель. Лучший способ изучения
данной части - читать ее непосредственно за дисплеем,   выполняя
все приведенные в тексте примеры.
     Команды описываются без подробностей. Для выяснения тонкос-
тей обращайтесь к UNIX User' Reference.

     5.2    Создание резервных копий.

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

     5.2.1    Форматирование дискет и лент.

     Чтобы сформатировать дискету  5.25  дюйма на 360К  (double-
sides, double-density) на первом флоппи-драйвере, введите следу-
ющую команду:

            format

     Вы прочтете, что нужно вставить дискету и нажать RETURN.
     Если нужно сформатировать дискету 5.25 дюйма на  1.2  мега-
байт (double-sides, high-density), введите следующую команду:

            format /dev/rfd096ds15

     Для форматирования  дискеты 3.5 дюйма на 720K (первый драй-
вер), введите:

            format /dev/rfd096ds9

     Чтобы производить форматирование на втором драйвере,  заме-
ните 0 после rfd на 1.
     Нет необходимости  форматировать  все  кассеты  с  лентами.
Однако, те из них,  которые используются на ленточных мини-драй-
верах, необходимо форматировать. Для этого введите:

            format /dev/rctmini

     5.2.2    Использование команды tar для создания
                       резервных  копий.

     Для создания копий используется команда tar. Ее синтаксис:

            tar [key] [files]

     Аргумент key  управляет  действием  команды  tar.  Аргумент
files специфицирует те файлы, для которых создаются копии.
.
                              5-3

     Наиболее часто используются следующие аргументы key:

     c   Создание копий.
     x   Извлечение файлов из резервной среды.
     t   Просмотр содержания резервной среды.
     v   Высвечивание имен всех текущих процессов.
     f   Создание копий специальных устройств.

     Создание копий.

     Далее приводится описание процесса копирования всех  файлов
вашего начального каталога на дискету. Проделайте все шаги этого
процесса с командой tar.
     Для копирования другого каталога перейдите в него по коман-
де cd и выполните все следующие шаги.  Для копирования на  ленту
подставьте на  место  арумента files имя файла специального уст-
ройства, ассоциированного с лентой: dev/rctmini или /dev/rct0.

     1.  Загрузитесь с консоли. Это позволит  работать  с  флоп-
         пи-драйвером вручную.
     2.  Определите, сколько дискет вам необходимо, и отформати-
         руйте их,   используя команду format,  описанную выше в
         5.2.1. Для определения нужного количества дискет введи-
         те следующую команду:

            du -a
.
                              5-4


     Вывод будет выглядеть примерно так:
      __________________________________________________________
     |
     |   12    ./1.intro.s
     |   74    ./2.concepts.s
     |   14    ./2.concepts.err
     |   0     ./.err
     |   60    ./5.house.s
     |   32    ./3.log.s
     |   2     ./err
     |   2     ./0.title
     |   30    ./6.desk.s
     |   112   ./4.files.s
     |   12    ./4.files.err
     |   4     ./3.log.err
     |   356   .
     |

     Число  внизу - суммарное число 512-ти байтовых блоков, за-
нимаемых файлами данного каталога. В данном примере  необходимо
356х512  байт, или около 183К. Для создания копии данного ката-
лога достаточно одного флоппи-диска.

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

            tar cvf /dev/fd048ds9 .

         Если дискета 5.25 дюйма на первом драйвере сформатиро-
         вана на 1.2 мегабайт, введите:

            tar cvf /dev/fd096ds15 .

         Если при выполнении команды tar потребуется более  од-
         ного  диска,  то  появится  сообщение  о необходимости
         вставить другой "volume". В этом случае вставьте новую
         дискету. Выполнение команды tar завершится тогда, ког-
         да снова появится подсказка системы.

     Чтобы перенести только один файл на дискету 1.2  мегабайт,
введите:

            tar cvf /dev/fd096ds15 ./filename

     Заметим,  что имя файла (filename) отделено точкой и косой
чертой (./). Это заставляет  команду  tar  трактовать  filename
скорее как "относительное", а не абсолютное имя файла. (Для по-
лучения более подробной информации о команде tar см. tar(C).)
.
                                5-5

     Команда  tar размещает в резервной среде и все подкаталоги
данного каталога. Так, если каталог /bin содержится в вашем на-
чальном  каталоге,  tar создаст копию этого каталога и всех его
файлов.

     5.2.3    Просмотр содержимого копий.

     Для  просмотра содержимого дискеты 5.25 дюйма 360К, разме-
щенной на первом дисководе, на которой команда tar создала копию,
введите:

            tar tvf /dev/fd048ds9 .

     Аналогично, для дискеты 1.2 мегабайт, введите:

            tar tvf /dev/fd096ds15 .

     Для дискеты 3.5 дюйма введите:

            tar tvf /dev/fd096ds9 .

     Проэкспериментируйте с опциями  команды  tar,  помещая  на
первый  дисковод  дискету  с копией вашего начального каталога,
созданную в 5.2.2. Введите приведенные  команды  для  просмотра
содержимого копий.

     5.2.4    Извлечение файлов из копий.

     Мы  рекомендуем размещать файлы, извлекаемые из "хранения"
в резервной среде, во временном каталоге на  твердом  диске.  А
уже  оттуда  с  помощью  команды mv можно поместить извлеченный
файл на его место в файловой системе. Причина такой осторожнос-
ти состоит в том, что могут совпасть имена файлов коренной фай-
ловой системы и извлекаемых из резерва, и команда tar может при
записи затереть нужный файл по недосмотру пользователя.
     Для возврата файлов из резервной среды с дискеты 5.25 дюй-
ма 360К, находящейся на первом дисководе, введите:

            tar xvf /dev/fd048ds9
.
                                5-6

     То же самое для дискеты 1.2 мегабайт:

            tar xvf /dev/fd096ds15

     Чтобы  достать  только  один  файл с дискеты 1.2 мегабайт,
введите:

            tar xvf /dev/fd096ds15 ./filename

     Заметим, что filename отделяется  точкой  и  косой  чертой
(./), так как команда tar копировала filename на дискету с точ-
кой (.), как в примерах в 5.2.2. Когда вы копируете файлы с по-
мощью команды  tar  на флоппи-диск с точкой, имени файла должны
предшествовать символы "./". Так как вы должны были вводить имя
файла точно в таком виде, как было указано, то вы должны ввести
./filename, если filename было скопировано на диск с точкой.
     Поместите дискету с созданной там копией (5.2.2) на первый
дисковод и попробуйте применить команду tar. Для  этого  проде-
лайте следующее:

     1.  Перейдите в каталог /tmp по команде

            cd /tmp

     2.  Создайте в /tmp подкаталог:

            mkdir  login

         Замените login на ваше регистрационное имя.
     3.  Введите:

            cd login

     4.  Если  вы работаете со средой Bourne shell, и на перовм
         дисководе у вас стоит дискета 1.2 мегабайт, попробуйте
         извлечь файл .profile с помощью следующей команды:

            tar xvf /dev/fd096ds15 ./.profile
.
                                5-7


         Если вы пользователь C shell, введите:

            tar xvf /dev/fd096ds15 ./.login

         Если у вас дискета не 1.2 мегабайт, укажите соответст-
         вующее имя файла для специального устройства.

     5.  Чтобы  проверить,  какие именно файлы скопировались на
         твердый диск, введите:

            lc -a

         Опция -a заставит команду lc распечатать скрытые  фай-
         лы, т.е. начинающиеся с точки (.).

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

            tar xvf /dev/fd096ds15

         Если у вас дискета не 1.2 мегабайт, укажите соответст-
         вующее имя файла для специального устройства.


     5.2.5    Стенографическая запись команды tar.

     UNIX поддерживает стенографическую нотацию  команды  tar.
Эта  нотация  позволяет  вам  специфицировать необходимые файлы
специальных устройств. Файл /etc/default/tar содержит  информа-
цию  о различных устройствах флоппи-дисков и лент. Введите сле-
дующую команду для выдачи на экран содержимого /etc/default/tar:

            more /etc/default/tar
.
                                5-8

     Вы увидите примерно следующее:
      _________________________________________________________
     |
     |  #    device                 block   size   tape
     |  archive0=/dev/rfd048ds9     18      360    n
     |  archive1=/dev/rfd148ds9     18      360    n
     |  archive2=/dev/rfd096ds15    10      1200   n
     |  archive3=/dev/rfd196ds15    10      1200   n
     |  archive4=/dev/rfd096ds9     18      720    n
     |  archive5=/dev/rfd196ds9     18      720    n
     |  archive6=/dev/rfd0135ds18   18      1440   n
     |  archive7=/dev/rfd1135ds18   18      1440   n
     |  archive8=/dev/rct0          20      0      y
     |  archive9=/dev/rtcmini       20      0      y
     |  #   The default device...
     |  archive=/dev/rfd096ds15     10      1200   n
     |

     После букв rfd цифра 0 означает первый драйвер 360К,  1  -
второй  драйвер 360К, 2 - первый драйвер 1.2 мегабайт, 3 - вто-
рой драйвер 1.2 мегабайт , и т.д.
     Чтобы скопировать все файлы текущего каталога  на  дискету
360К (5.25 дюйма), первый дисковод, введите:

            tar cv .

     (По  умолчанию,  текущее устройство есть устройство 0. Его
не нужно явно указывать.)
     Для копирования всех файлов текущего каталога  на  дискету
5.25 дюйма 1.2 мегабайт на первом дисководе, введите:

            tar cv2 .

     Для  извлечения файла с дикеты 3.5 дюйма 720К (перывй дис-
ковод), введите:

            tar xv4 ./filename

     Заметим, что версия /etc/default/tar вашей  системы  может
отличаться от приведенной выше. Системный администратор по сво-
ему  усмотрению  может  редактировать этот файл. Прежде чем ис-
пользовать стенографическую нотацию,  дважды  проверьте,  какая
запись соответствует какому устройству в вашей системе.
.
                                5-9

     5.3    Копирование дискет.

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

     1.  Поместите в ваш основной дисковод тот флоппи-диск, ко-
         торый  вы  хотите  копировать.  Если вы, как описано в
         5.2.2, создали на дискете резервную копию  вашего  на-
         чального каталога, попробуйте все описываемые действия
         проделать с этой дискетой.
     2.  Поместите другой диск на другой дисковод. Это диск-ад-
         ресат. Заметим, что информация,  уже  содержащаяся  на
         данном диске, будет утрачена.
         Если в вашей машине только один дисковод, оставьте там
         исходный  диск. В этом случае копия будет переслана на
         твердый диск, а уже оттуда - на диск-адресат.
     3.  Для  форматирования нового диска на 360К перед перене-
         сением туда копии введите команду:

            diskcp -f

         Для форматирования на 1.2 мегабайт введите:

            diskcp -f -96
.
                               5-10


         Если у вас нет необходимости форматировать новый диск,
         и если исходный диск 360К, введите:

            diskcp

         Если диск 1.2 мегабайт, введите:

            diskcp -96

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

            disk -d

     4.  Затем на вашем экране появятся инструкции по дальнейшим
         действиям. Так, если ваша система  имеет  только  один
         дисковод,  появится  просьба  вынуть  исходный  диск и
         вставить диск-адресат.
     5.  Если вы копировали резервную копию  вашего  начального
         каталога, поместите диск с только что созданной копией
         в  первый дисковод и проверьте, что копирование завер-
         шилось удачно, вводя следующую команду:

            tar tvf /dev/fd096ds15

         Если дискета 360К, введите:

            tar tvf /dev/fd048ds9

         Заметим, что вы можете  использовать  стенографическую
         нотацию команды tar, о чем можно прочесть чуть выше.

     5.4    Как узнать информацию о статусе системы.

     Поскольку система UNIX есть достаточно большая, загружен-
ная в компьютер среда, то многие вещи  о ее состоянии можно уз-
нать у нее самой, например, кто из пользователей  дольше  всего
работает в ней или какое количество дискового пространства сво-
бодно. Ниже вы сможете прочесть о том, как это сделать.
.
                               5-11


     5.4.1    Кто сейчас работает в системе?

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

            who

     На экране появится примерно такая информация:
      ________________________________________________________
     |
     |  arnold  tty1a  Apr7  10:02
     |  daphne  tty1b  Apr7  07:47
     |  elliot  tty1c  Apr7  14:21
     |  ellen   tty2a  Apr7  08:36
     |  gus     tty2b  Apr7  09:55
     |  adrian  tty2c  Apr7  14:21
     |

     Для  тех  же целей - узнать, кто работает в системе, может
быть использована команда finger. Она  выдаст  более  детальное
сообщение. Для ее использования просто введите finger.

     5.4.2    Распознавание обращений к диску.

     Команда  df выводит информацию о свободном дисковом прост-
ранстве. Использованная без опций, эта команда выдает сводку  о
числе  свободных блоков и свободных индексных дескрипторов фай-
лов. Блок - это 512 байтов. Введите следующую команду для выда-
чи информации о свободном пространстве:

            df

     Вы увидите примерно такую строку:
      _________________________________________________________
     |
     |  /   (/dev/root):   5956 blocks  1437 inodes
     |

     Это означает, что в файловой системе /dev/root 5956 блоков
и 1437 индексных дескрипторов файлов свободны. 5956 блоков сос-
тавляют около 3 мегабайт.
.
                               5-12


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

            df -v

     Вывод будет аналогичен следующему:
      _________________________________________________________
     |
     |  Mount Dir   Filesystem  blocks  used   free  % used
     |  /           /dev/root    80152  70192   9960    88%
     |  /y          /dev/y       82194  34314  47880    42%
     |  /u          /dev/u       50000  37840  12160    76%
     |

     Видно,  что  в  файловой  системе /dev/root 88%, или 70192
блока из общего количества 80152, использованы; остальные  9960
свободны.


     5.5    Управление процессами.

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

     5.5.1    Установление фонового режима выполнения команд.

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


     Для помещения  команды в фоновый режим напечатайте знак ам-
персанда (&) в конце командной строки. Например, введите следую-
щую команду  для  создания  и подсчета символов в большом файле.
Заметьте, что эта команда занимает две длинные строчки.  Тем  не
менее команда будет воспринята как одна благодаря обратной косой
черте, помещенной в конце первой строчки.  Обратная косая  черта
сообщит выполняющей оболочке shell о том, что команда будет про-
должена на следующей строке:

         cat /etc/tempcar /etc/tempcar /etc/tempcar > lagefile; \
         wc -c lagefile > characters &

     Вывод команды wc будет переадресован в characters.  Если не
задатьэтой переадресации,  то вся информация будет  выведена  на
экран, хотя вы можете быть заняты в это время выполнением совсем
других процессов.  Это может оказаться очень некстати для выпол-
няющихся команд.   Переадресация  вывода  этой команды - простой
путь избежать этих неприятностей.
     Просмотрите содержание  characters  с  помощью команды cat.
Когда закончите, удалите characters и largefile с помощью коман-
ды rm.
     Помещая выполнение процесса в фоновый режим, вы уже не смо-
жете   прервать   его   выполнение  с  помощью  нажатия  клавиши
INTERRUPT, что можно проделать с  приоритетным  процессом.   Для
прерывания фонового  процесса  вы  должны  использовать  команду
kill. Эта команда описана ниже, в части 5.5.4.

     5.5.2     Отсрочка выполнения команд.

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

            at time day < file

     Аргумент file  является  именем файла,  содержащего команду
или команды,  подлежащие выполнению.  Аргумент time - время дня,
записанное цифрами,  за которыми следует указание am (первая по-
ловина дня),  или pm (вторая половина дня).  Одна или две  цифры
этого числа  интерпретируются как час,  а три или четыре цифры -
как час и минуты начала выполнения.  Нельзя,  чтобы этот аргумет
содержал более  чем четыре цифры.  Аргумент day является опцией.
Она может выглядеть следующим образом: имя месяца, следующего за
номером дня,  или день недели. Если day специально не указывает-
ся, команда будет выполнена в ближайшее указанное время.
.
                              5-14


     Представьте, что вам нужно напечатать большой файл,  но  вы
не хотите делать это в рабочее время, т.к. эта работа монопольно
займет принтер на долгое время.  Вы можете использовать  команду
at для отсрочки печати на ночь,  когда в офисе никого нет. Чтобы
сделать это,  во-первых,  создайте с помощью редактора vi  файл,
содержащий команду  печати.  Назовите этот файл printfile.  Этот
файл должен содержать следующую строку:

            lp filename

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

            at 11pm wed < printfile

     Нет необходимости делать эту команду фоновой. Вы введете ее
и нажмите RETURN. Снова появится приглашение UNIX. Ваша команда
начнет выполняться в 11 вечера в среду.
     Заметим, что команда at будет работать после вашего  выхода
из системы. Можно просмотреть список тех процессов, чье выполне-
ние отложено с помощью команды at. Для этого используйте команду
at -l. Она выдаст следующую информацию:

     .  ID-номер файла.
     .  Команда, требующая файл (at или batch).
     .  Дата и время начала выполнения файла.

     Для отмены  действия  команды at вам необходимо просмотреть
список отложенных файлов и запомнить ID-номер нужного файла. Ис-
пользуйте команду  at -r для удаления файла из этого списка фай-
лов.
     Команда at -r  имеет следующий синтаксис:

            at -r ID-номер

     Например, следующая   команда   удалит   файл   с   номером
504510300.а, удаляя все команды, включенные в этот файл:

            at -r 504510300.a

     Заметим, что пользователь может  так  распоряжаться  только
своими файлами.
.
                              5-15


     Файлы /usr/lib/cron/at.allow и /usr/lib/cron/at.deny  конт-
ролируют допуск пользователей,  имеющих право пользования окман-
дой at.  Во многих системах это разрешается только  привилегиро-
ванному пользователю.  Если вам необходимо использование команды
at, но вы не имеете к ней доступа, обратитесь к системному адми-
нистратору.

     5.5.3    Какие процессы сейчас выполняются?

     Команда ps устанавливает "статус процесса" и выводит инфор-
мацию о тех процессах,  выполняющихся в данное время. Эта инфор-
мация необходима  в том случае,  если вы хотите прервать фоновый
процесс.
     Чтобы вывести на экран информацию о текущих процессах, вве-
дите:

            ps

     Вы увидите сообщение, подобное следующему:
      __________________________________________________________
     |
     |       PID   TTY   TIME   COMMAND
     |        49   2a    0:28   sh
     |     11267   2a    0:00   ps
     |

     В колонке PID содержатся уникальные идентифицирующие номера
процессов, которые  могут  быть использованы в случае прерывания
процесса. Колонка TTY содержит названия терминалов,  на  которых
идет процесс.  В колонке TIME показано совокупное время выполне-
ния процесса. И последняя колонка, COMMAND, содержит текущую вы-
полняющуюся команду.
     Введите следующую команду для  отображения  информации  обо
всех текущих процессах системы:

            ps -e

     Вы можете  также  узнать информацию о процессах,  идущих на
других терминалах.  Для этого вам нужно использовать опцию -t  и
специфицировать имя терминала. Например, с помощью следующей ко-
манды вы узнаете о процессах, ассоциированных с терминалом 2с:

            ps -t2c
.
                              5-16


     5.5.4    Прерывание процессов.

     Для прерывания   приоритетного   процесса  нажмите  клавишу
INTERRUPT. Ее часто замещает клавиша Del. Таким образом вы може-
те прервать   текущий приоритетный процесс.  Для прерывания всех
фоновых процессов вам нужно использовать следующую команду:

            kill 0

     Для прерывания только специфицированного фонового  процесса
введите:

            kill signal_number process_ID_number

     signal_number - опция. Иногда она необходима для прерывания
"упрямых" процессов. Такие процессы иногда могут быть прерваны с
помощью signal_number 9. Узнайте process_ID_number с помощью ко-
манды ps.
     В качестве примера попробуйте прервать процесс вашей работы
в shell.  Заметим, что при входе в систему вы попадаете в shell.
Прекращая shell-процесс,  вы выходите из системы. Введите ps для
того, чтобы узнать,  какой ID-номер у одного из процессов, поме-
ченных sh или csh в колонке COMMAND.  Предположим, что это номер
4831. Для прерывания вашего shell-процесса введите:

            kill -9 4831

     После ввода этой команды вы снова увидите приглашение к ре-
гистрации. Попробуйте сделать это!

_______________________________________________________________

     Замечание.

     Прерывание процесса,  ассоциированного с редактором vi, мо-
жет привести к непредсказуемому поведению терминала.  Так,  вре-
менные файлы,   которые  обычно создаются одновременно с началом
выполнения команды и удаляются после ее завершения, могут исчез-
нуть в  неизвестном  направлении  после применения команды kill.
Обычно временные файлы хранятся в каталоге /tmp.   Советуем  вам
периодически проверять  содержимое этого каталога и своевременно
удалять старые файлы.
________________________________________________________________
.
                              5-17



     5.6    Программирование на языке Shell.

     И Bourne  shell,  и  C shell обладают существенными отличи-
тельными особенностями. Если вы имеете опыт работы с MS-DOS,  вы
найдете, что  в  программировании в UNIX есть сходные вещи.  Мы
все же опишем некоторые приемы программирования на языке  shell.
Подробнее об  этом  вы  сможете  прочесть в главах "The Shell" и
"The C-Shell" в UNIX User's Guide.
     В 5.5.1  при  обсуждении выполнения команд в фоновом режиме
мы привели следующую команду для ввода:

         cat /etc/tempcar /etc/tempcar /etc/tempcar > lagefile; \
         wc -c lagefile > characters &

     Но ведь  можно поместить эту длинную команду в файл и затем
выполнить файл.
     Попробуйте создать с помощью редактора vi файл,  называемый
command.file. Пусть в этом файле будут следующие строки:

            cat /etc/tempcap > largefile
            cat /etc/tempcap >> largefile
            cat /etc/tempcap >> largefile
            wc -c largefile > characters

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

            chvod +x command.file

     Наконец, запустите  файл command.file на выполнение в фоно-
вом режиме:

            command.file &

     Немного обождав,  с помощью следующей команды  убедитесь  в
правильном выполнении файла command.file:

            cat characters
.
                              5-18


     На самом дел,  некоторые особенности shell-программирования
позволят вам управлять ходом текущих процессов.  Вы могли бы за-
писать содержание файла command.file так:

            for name in /etc/tempcap
            do
                  cat $name $name $name > largefile
            done
            wc -c largefile > characters

     Помещая команды UNIX в файл,  не забывайте сделать его вы-
полнимым с  помощью  команды chmod.  (Об этой команде читайте в
Части 4 данного руководства.)
.


                          Ч А С Т Ь  6

          Утилиты непосредственного взаимодействия UNIX
     ___________________________________________________________


     6.1    Введение  6-1

     6.2    Использование системных часов и календаря  6-1
            6.2.1    Как узнать дату и время  6-1
            6.2.2    Календарь на экране 6-2

     6.3    Почтовые услуги  6-2
            6.3.1    Посылка почтовых сообщений  6-2
            6.3.2    Прием почты  6-4
            6.3.3    Вывод на терминал  6-6

     6.4    Автоматические напоминания системы  6-7

     6.5    Использование системного калькулятора  6-8
.
                              6-1

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

     .  Вывести на экран дату, время и календарь,
     .  Связаться с другими пользователями,
     .  Использовать автоматическте системные напоминания,
     .  Использовать "калькулятор на экране".

     Эта часть построена как самоучитель. Лучший способ изучения
данной части - читать ее непосредственно за дисплеем,   выполняя
все приведенные в тексте примеры.
     Команды описываются без подробностей. Для выяснения тонкос-
тей обращайтесь к UNIX User' Reference.

     6.2    Использование системных часов и каландаря.

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

     6.2.1    Как узнать дату и время.

     Команда date печатает дату и время. Введите:

            date

     То, что  будет  напечатано на экране,  будет иметь примерно
следующий вид:
      __________________________________________________________
     |
     |   Mon Jan 25 08:26:14 PST 1988
.     |
                              6-2

     6.2.2    Календарь на экране.

     Команда cal  выводит на экран календарь того месяца или го-
да, который вы укажете. Например, выведете на экран календарь на
март 1952 года:

            cal mar 1952

     Вот что вы должны увидеть:
      __________________________________________________________
     |
     |    March 1952
     |
     |    S   M   Tu  W   Th  F   S
     |                            1
     |    2   3   4   5   6   7   8
     |    9  10  11  12  13  14  15
     |   16  17  18  19  20  21  22
     |   23  24  25  26  27  28  29
     |   30  31
     |

     Большинство аббревиатур  названий  месяцев очевидны.  Также
месяц можно обозначить в этой команде цифрами. Календарь на весь
год будет  напечатан,  если вы не будете указывать аргумент "ме-
сяц" в этой команде.  Год всегда нужно указывать полностью.  Ко-
манда cal 88 напечатает календарь на 88 год от Рождества Христо-
ва, а не на 1988.

     6.3     Почтовые услуги.

     Несколько программ    предоставляют     вам     возможность
связываться с  другими пользователями.  Две наиболее полезных из
них - это mail и write.  Команда mail позволяет отправлять сооб-
щения в "почтовый ящик" пользователей системы. Команда write по-
сылает сообщение непосредственно на терминал пользователя,  если
он зарегистрировался в системе. Обе эти команды описаны ниже.

     6.3.1    Посылка почтовых сообщений.

     Одной из   особенностей   системного   расширения  является
программа mail,  позволяющая вам обмениваться сообщениями с дру-
гими пользователями.  Попробуйте эту программу в работе, посылая
сообщение себе. Для этого введите:

            mail login

     Замените здесь login на ваше регистрационное имя.
.
                              6-3


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

            Subject:

     Если такая аодсказка появилась,  введите краткую суть этого
сообщения. В данном случае введите test.
     Теперь вы  можете  вводить  сам текст сообщения.  Закончив,
нажмите Ctrl-d для сигнала о завершении сообщения и для его отп-
равки. Однако,  это можно сделать и по-другому.  Можно ввести ~v
(тильда, предшествующая v),  и при этом попасть в  редактор  vi.
Находясь в  этом редакторе,  можно спокойно ввести текст сообще-
ния, не опасаясь опечаток.  Воспользуйтесь  всеми  возможностями
данного редактора,  а допущенные ошибки исправьте до посылки со-
общения. Если вы пользуетесь только командой mail, то ошибки ис-
править нелегко, а они могут исказить весь смысл сообщения.
     Составляя текст сообщения в редакторе vi,  введите по окон-
чании этого  процесса  :x,   а  затем  Ctrl-d.   Опять-таки,   в
зависимости от конфигурации,  система может в этом месте  выдать
следующее:

            Cc:

     Увидев это, введите имена тех пользователей, которые должны
получить "копию под копирку" текста этого сообщения.   Часто  по
умолчанию здесь подставляется значение yourself, т.е. имя самого
отправителя. Так как в данном случае вы посылаете сообщение сами
себе, сразу нажмите RETURN. Вы снова попадете в среду UNIX.
     Часто посылаются текстовые файлы другим пользователям  сис-
темы. Для  этого  можно использовать переадресацию.  Пусть файл,
который вы хотите послать,  называется schedule,  он находится в
текущем каталоге,  а имена пользователей,  которым вы хотите его
отправить, - Naomi и Bea.  Чтобы сделать это,  введите следующую
команду:

            mail naomi bea < schedule

     Этим путем можно посылать файлы достаточно быстро.
     У команды mail существует много опций.  Среди них есть те ,
что позволяют отправлять уже готовые сообщения, посылать ответы,
посылать сообщения,  подписываясь псевдонимом,  и т.д.  Обо всем
этом можно прочесть в UNIX User's Guide.
.
                              6-4


     6.3.2    Прием почты.

     Входя в систему, вы можете увидеть следующее сообщение:
      ___________________________________________________________
      |
      |  you have mail
      |

      Это значит, что в ваше отсутствие на ваше имя пришла "поч-
та". Чтобы прочесть ее, введите:

            mail

     Будет высвечен список заголовков сообщений под номерами. Вы
увидите примерно такую картину:
      __________________________________________________________
     |
     |  1  john  Wed  Sep  21 09:21  26/782 "Notice"
     |  2  sam   Tue  Sep  20 22:55   6/83 "Meeting"
     |  3  tom   Mon  Sep  19 01:23   6/84 "Invite"
     |

     Читая слева направо,  вы узнаете из данного сообщения,  кто
послал его,  дату и время отправления,  число строк и символов в
нем, а также суть сообщения.
     Чтобы прочесть  это  сообщение,  просто введите его номер и
нажмите RETURN.  Например, чтобы прочесть сообщение от sam, вве-
дите 2 и нажмите RETURN.  Прчтите сообщение,  которое вы послали
себе сами (см. предыдущую строницу данного руководства).
     После того,   как вы прочтете пришедшее к вам сообщение,  с
ним можно сделать следующее:  удалить его,  сохранить его  и/или
ответить на него.
     Для удаления сообщения нажмите d, номер сообщения и RETURN.
Чтобы сохранить сообщение в "почтовом ящике",  введите ho, номер
сообщения и нажмите RETURN. Для сохранения сообщения в файле те-
кущего каталога,  введите s,  затем номер сообщения и имя файла,
нажмите RETURN. Если файл с таким именем не существует, он будет
создан.
.
                              6-5

     Ответить на  почтовые сообщения позволяют две команды.  Это
команды r и R.  Нажав r,  затем номер сообщения,  RETUTN,  потом
введя ваш ответ,  вы отпроавите его автору сообщения. Если же вы
повторите все эти действия с командой R, то ваш ответ получит не
только автор  сообщения,   но и все пользователи,  находящиеся в
списке авторов сообщений к вам.
     После прочтения сообщений, вы можете снова просмотреть спи-
сок заголовков сообщений.  Для этого введите h и  RETURN.   Если
список заголовков занимает более чем одну страницу экрана,  вве-
дите h+ и RETURN.  По этой команде высветятся следующие 18 строк
этого списка. Для выдачи предыдущих 18 строк введите h-.
     Вы можете послать почту с помощью команды mail. Для отправ-
ления постового сообщения пользователю по имени joe, просто вве-
дите следующую команду:

            mail joe

     Следующие ваши шаги в этом случае описаны в 6.3.1  (Посылка
почтовых сообщений.)
     Чтобы выйти из режима почты, введите q и RETURN.
     Ответьте на сообщение, посланное вами самому себе. Для это-
го:

     1.  Введите mail.
     2.  Введите rnumber, где number - номер сообщения,  которое
         вы послали себе.
     3.  Нажмите RETURN.
     4.  Составьте ваш ответ. Помните,  что вы можете набрать ~v
         для подготовки текста ответа с помощью редактора vi.
     5.  По окончанию составления ответа нажмите Ctrl-d. Если вы
         подготовили текст  с помощью редактора vi,  наберите :x
         для выхода из редактора и нажмите Ctrl-d.
     6.  Нажмите RETURN для посылки сообщения.
     7.  Напечатайте restart. Эта команда заставит mail  напеча-
         тать все сообщения,  пришедшие к вам в то время, что вы
         работали с этой командой.
     8.  Вы увидите  тот ответ,  который вы сами себе послали на
         ваше же себе сообщение. Нажмите номер сообщения для его
         вывода на экран для чтения.
.
                              6-6


     9.  Закончив прсмотр сообщения,  введите  q  для  выхода из
         mail.

     6.3.3    Вывод на терминал.

     UNIX включает команду,  позволяющую посылать сообщения не-
посредственно на экран другого пользователя,  если только  он  в
данный момент зарегистрирован в системе. Это команда write. Нап-
ример, пошлите сообщение на терминал joe:

            write joe

     После того, как вы выполните эту команду нажатием RETURN, у
себя на экране joe увидит следующее:
      ___________________________________________________________
     |
     |  Message from login tty012...
     |

     Здесь login - ваше регистрационное имя. Для отзыва joe дол-
жен ввести:

            write login

     login - опять-таки ваше регистрационное имя.
     Далее каждая введенная вами строка будет отображена и на ва-
шем экране, и на экране joe. Каждая строка, введенная joe, также
будет видна на двух ваших экранах.  Для завершения ввода сообще-
ния для joe нажмите Ctrl-d в конце строки.  То  же  самое  может
сделать joe для завершения переговоров с вами.
     Типичным действием для координации обмена сообщениями таким
образом служит помечивание каждой введенной строки для распозна-
вания, последняя она или нет.  Так,  если строка  не  последняя,
вводите в  ее  конце  o  (over),  а в конце всего сообщения - oo
(over and out).
     Потренируйтесь с  командой  write,  посылая сообщение себе.
Для этого введите следующую команду:

            write login
.
                              6-7


     Замените login на ваше регистрационное имя.  Вы увидите та-
кое сообщение:

            Message from login ttynn...

     Теперь просто введите текст сообщения.  Так как  вы  пишете
сами себе,   каждая  введенная  строка будет повторена не экране
дважды.
     Например, это может выглядеть следующим образом:
      __________________________________________________________
     |
     |  Hello Mark o
     |  Hello Mark o
     |  Remember, we have meeting at 12:00. o
     |  Remember, we have meeting at 12:00. o
     |  Right, see you there. oo
     |  Right, see you there. oo
     |

     Нажмите Ctrl-d для завершения работы по обмену сообщениями.

     6.4    Автоматические напоминания системы.

     Для всех пользователей UNIX предоставляет возможность  ав-
томатического сервиса в виде подсказок и напоминаний.  Так, каж-
дый при регистрации UNIX просматривает файл  типа  "календарь",
находящийся в начальном каталоге данного пользователя,  содержа-
ние которого может быть примерно такое:
      __________________________________________________________
     |
     |  1/23 David's wedding
     |  2/9 Mira's birthday
     |  3/30 Paul's birthday
     |  4/27 Meeting at 2:00
     |  9/1 Karen's birthday
     |  10/3 License renewal
     |

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


     Файл calendar  не  создается для вас автоматически.  Это вы
должны сделать для себя сами, если имеете такое желание. Он дол-
жен находиться в вашем начальном каталоге.
     Для создания и исправления файла calendar  пользуйтесь  ре-
дактором vi.   Помещайте  сообщение  о дате/событии на отдельной
(одной) строке.  Даты могут быть указаны по разному. Вот, напри-
мер, различные записи одного и того же:

            9/7
            Sep.7
            september 7

     6.5    Использование системного калькулятора.

     С помощью  команды bc можно включить системный калькулятор,
использование которого напоминает использование обычного ручного
калькулятора. Ниже  приводятся команды, с помощью которых вы мо-
жете, находясь в UNIX, выполнять свои расчеты. Заметим, что ра-
бота в режиме калькулятора начинается с ввода команды bc,  и за-
канчивается вводом команды quit.  Комментарии  по  содержанию
операций приводятся на тех же сторках, что и сами команды.
.
                              6-9

     Ъ_Операция                      Комментарий

bc                             Вход в bc
123.456789+987.654321          Сложение и результат
1111.111110
9.0000000-9.0000001            Вычитание и результат
-.0000001
64/8                           Деление и результат
8
1.12345678934*2.3              Запись с сохранением точности
2.58395061549
19%4                           Нахождение остатка
3
3^4                            Возведение в степень
81
2/1*2                          Вычислить по правилам
4
2/(1*2)                        Вычислить по правилам
1
x=46.5                         Присвоить значение переменной x
y=52.5                         Присвоить значение переменной x
x+y+1.0000                     Сложение и результат
100.0000
obase=16                       Перевод в шестнадцатиричную
                               систему счисления
15                             Перевести в шестнадцатиричную
F                              систему счисления
16                             Перевести в шестнадцатиричную
10                             систему счисления
64                             Перевести в шестнадцатиричную
40                             систему счисления
255                            Перевести в шестнадцатиричную
FF                             систему счисления
256                            Перевести в шестнадцатиричную
100                            систему счисления
512                            Перевести в шестнадцатиричную
200                            систему счисления
quit

     Кроме этого,  возможно производить масштабирование, опреде-
ление функций, и программирование других действий с помощью язы-
ка C. Другие возможности - именование регистров и вызов подпрог-
рамм. Для более подробного ознакомления читайте "bc:ACalculator"
в UNIX User's Guide.


Популярность: 13, Last-modified: Fri, 27 Mar 1998 06:29:30 GMT