50

               4.   ОБЗОР ПРОГРАММНЫХ СРЕДСТВ

     4.1.   Управление офисом системы

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

     4.2.   Редактирования текста

     В этом подразделе описывается, как с помощью редакторов
создавать  и  редактировать  текстовые   файлы.   В   начале
подраздела дается объяснение, что такое  редактор  текста  и
как он работает. Затем приводится описание двух  редакторов:
строчный редактор ed и экранный редактор vi ( см. разд. 6  и
7).


     4.2.1.   Что такое редактор текста

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


     4.2.2.   Как работает текстовый редактор



     4.2.2.1.   Буфера редактора текста

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


                             51
во время процесса редактирования. Если вы  хотите  сохранить
файл, то должны дать текстовому редактору  команду  записать
содержимое  буфера  в  файл.  Файл  сохраняется   в   памяти
компьютера. Чтобы предотвратить потерю  содержимого  буфера,
редактор посылает вам напоминание о  том,  чтобы  не  забыть
записать  его  в  файл,  при  попытке  завершить  работу   с
редактором.
     Текст в буфере организуется  в  строки.  Строка  текста
является просто  набором  символов,  которые  появляются  на
экране  горизонтально,  и  завершается  строка  при  нажатии
клавиши  RETURN.  Иногда  строка  может  выходить  за  рамки
экрана.  Некоторые  терминалы   отображают   непоместившееся
продолжение строки на следующей строке, другие - нет.

     4.2.3.   Режимы

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


     4.2.4.   Построчный редактор

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


     4.2.5.   Экранный редактор

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


                             52
быть произведены  изменения.  Экранный  редактор  немедленно
отображает результат изменений.
     Экранный  редактор   предлагает   вам   набор   команд.
Например, команда number  позволяет  вам  перемещать  курсор
внутри файла. Другие команды  прокручивают  вперед  и  назад
файл на экране, помогают  изменить  существующий  текст  или
создать новый текст. Дополнительно к  своему  набору  команд
экранный редактор может иметь доступ к командам  построчного
редактора. В табл. 6 приведены характеристики редакторов  ed
и vi.
                                                   Таблица 6
                 Характеристики редакторов
 ----------------------------------------------------------
 Характеристика |       ed           |        vi
 ----------------------------------------------------------
 Рекомендуенмый |Видеотерминал или   |Видеотерминал
 тип терминала  |печатающий терминал |
 Скорость       |Настраивается на    |Наиболее   эффективно
                |низкоскоростные и   |работает  с высокоско-
                |высокоскоростные ли-|ростными линиями пере-
                |нии передачи данных |дачи данных (1200  бод
                |                    |и выше)
 Эксплуатацион- |Может быть указан   |Может быть использован
 ная гибкость   |для запуска из кома-|интерактивно во  время
                |ндного языка shell, |редактирования
                |также как использу- |
                |ется во время редак-|
                |тирования           |
 Сложность      |Изменяет текст быс- |Изменяет текст  легко,
                |тро; занимает срав- |однако   может  занять
                |нительно мало време-|достаточно       много
                |ни на обработку     |ресурсов компьютера
 Производитель- |Обеспечивает полный |Обеспечивает    собст-
 ность          |набор команд редак- |венные  команды редак-
                |тирования. Стандарт-|тирования    и   также
                |ный текстовый редак-|распознает     команды
                |тор системы UNIX    |построчного редактора
 Преимущества   |Чтобы использовать  |vi позволяет  вам уви-
                |редактор ed   вы    |деть  результаты реда-
                |должны изучить не-  |ктирования  текста не-
                |сколько команд      |медленно.  (Когда   вы
                |                    |используете    ed,  то
                |                    |выполнение   изменений
                |                    |и  просмотр  результа-
                |                    |тов  являются  отдель-
                |                    |ными шагами)
                |                    |
 -----------------------------------------------------------

     4.2.6.   Использование shell
     Каждый раз, когда вы регистрируетесь в системе UNIX, то
вступаете во взаимодействие с shell, которое продолжается до
выхода из системы. Однако,  если  вы  используете  текстовый
редактор, то ваше взаимодействие с shell приостанавливается,
оно  восстанавливается,  как  только  закончите   работу   с
редактором.
     shell подобна другим программам, за  исключением  того,
что вместо выполнения одного задания, как cat  или  ls,  она


                             53
является основой при вашем взаимодействии с  системой  UNIX.
Первой  функцией  shell  является   действие   как   команды
интерпретатора между вами  и  системой.  Как  интерпретатор,
shell транслирует ваши запросы на язык, понятный  компьютеру
и выполняет их.

     4.2.7.   Применение средств системы

     Используя shell различными способами,  вы  увеличиваете
используемые системные средства. Кроме применения shell  для
запуска отдельных программ, вы также можете:
     - интерпретировать   сокращенные   имена   файлов   или
справочников;
     - перенаправлять  поток  ввода  и   вывода   программы,
которую вы запустили;
     - выполнять  несколько  программ  одновременно  или   в
конвейерном формате;
     - разработать  ваше  окружение  компьютера,  отвечающее
вашим потребностям.
     Дополнительно к функциям  интерпретатора  языка  команд
shell является языком программирования. Более подробно shell
описан в разд. 9.

     4.2.8.   Окружение компьютера

     shell  может  быть  использован  для  управления  вашим
окружением. Когда вы регистрируетесь в системе  UNIX,  shell
автоматически устанавливает окружение компьютера для вас. По
умолчанию установленное окружение включает:
HOME - ваш регистрационный справочник;
LOGNAME - ваше регистрационное имя;
PATH - путь, который shell принимает для поиска  исполняемых
     файлов или команд (обычно PATH=:/usr/bin:/usr/usr/bin).
     Переменная PATH говорит shell, где  искать  исполняемую
программу, вызванную командой. Кроме того, она  используется
каждый раз, когда выдается команда.
     Вы  можете  использовать  предлагаемое   по   умолчанию
системой окружение или разработать  по  своим  потребностям.
Если вы будете модифицировать любую часть вашего  окружения,
то можете использовать один из двух способов для этого. Если
хотите  изменить  только  для   текущего   сеанса,   укажите
изменения  в  командной  строке.  Если  хотите  использовать
окружение, отличное от окружения по  умолчанию,  то  укажите
ваши  изменения  в  файле,   который   будет   устанавливать
требуемое окружение для вас автоматически каждый раз,  когда
вы регистрируетесь. Этот файл называется .profile  и  должен
быть в вашем собственном справочнике.
     Обычно  .profile  выполняет  некоторые   или   все   из
следующих задач: проверка почты, установка параметров  даты,
установка характеристик терминала,  назначение  символа  или
строки символов в качестве вашей регистрационной  подсказки,
назначение функций стирания и удаления клавишам.
     Вы можете определить задачи, которые хотите в .profile,
либо изменить в любое время. За инструкциями по  модификации
.profile обратитесь к разд. 9.
     Теперь проверьте, существует ли файл .profile. Если  вы
не находитесь в собственном справочнике,  то  воспользуйтесь
командой cd. Затем проверьте файл .profile, задав команду:


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

     4.2.9.   Программирование в shell

     Shell является не только интерпретатором команд,  но  и
языком программирования на уровне команд. Это означает,  что
вместо того, чтобы использовать shell только как взаимосвязь
между вами и компьютером, вы можете  программировать  с  его
помощью для  автоматического  повторения  последовательности
инструкций. Чтобы сделать  это,  нужно  создать  исполняемый
файл, содержащий список этих команд.  Эти  файлы  называются
процедурами shell. Создав такую процедуру  для  определенной
задачи,  вы  можете  просто  запросить  shell  прочитать   и
выполнить содержание процедуры.
     Подобно   другими   языкам    программирования    shell
обеспечивает такие возможности  как  переменные,  управление
структурами, подпрограммы, передача  параметров.  С  помощью
этих   возможностей   вы   можете   создавать    собственный
инструментарий.
     Например, вы можете скомбинировать три команды  системы
UNIX (date, who, wc) в простой процедуре shell и назвать его
users. Эта  процедура  отражает  дату,  время  и  количество
пользователей,  работающих  в  вашей  системе.   С   помощью
редактора vi создайте файл users:
     vi users
     Редактор выведет пустую  страницу  на  вашем  экране  и
будет ждать ввода  текста.  Введите  три  команды  на  одной
строке:
     date; who | wc -l
     Затем запишите текст в файл и выйдите из  файла,  задав
команду:
     :wq
     Сделайте файл users исполняемым:
     chmod ug+x users
     Теперь  попытайтесь  запустить  этот  файл.  На  экране
появится информация, подобная:
        $ users
        Sat  Mar  11   16:40:32   EST   1989
              4
        $
     Команда распечатывает дату и  количество  пользователей
(4).


     4.2.10.   Программирование с помощью awk

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




                             55
     4.3.   Электронная связь

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

     4.4.   Программирование в системе UNIX

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