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 обеспечивает некоторыми дополнительными средствами, чтобы сделать развитие программного обеспечения легче.