- •И.Н.Акуленок
- •Утверждено советом университета
- •Введение
- •Глава 1. Текстовые редакторы
- •1.1. Редактор ed
- •1.1.1. Команды, не использующие адресации строк
- •1.1.2. Команды, использующие один адрес
- •1.1.3. Команды, использующие два адреса
- •1.1.4. Нумерация строк
- •1.1.5. Примеры использования команд
- •1.2. Редактор VI и ex
- •1.2.1. Редактирование нескольких файлов
- •1.2.2. Вставка текста из одного файла в другой
- •1.3. Потоковый редактор sed
- •1.4. Контрольные вопросы
- •Глава 2. Командные процессоры ос unix
- •2.1. Типы командных процессоров
- •2.2. Идентификация и смена оболочки
- •2.3. Запуск shell и стартовых shell–файлов
- •2.4. Установка переменных среды
- •2.5. Псевдонимы команд
- •2.6. Выполнение .Profile после его изменения
- •2.7. Контрольные вопросы
- •Глава 3. Интерпретатор shell
- •3.1. Shell–переменные
- •3.1.1. Задание значений переменных и их отмена
- •3.1.2. Экспорт переменных
- •3.2. Специальные символы
- •3.2.1. Использование двойных кавычек и апострофа
- •3.2.2. Обратные апострофы
- •3.2.3. Обратная наклонная черта
- •3.3. Позиционные переменные
- •3.4. Код завершения процесса
- •3.5. Конвейеры и списки
- •3.6. Композиции команд
- •3.5.1. Порожденный shell – оператор круглые скобки ( )
- •3.5.2. Оператор списка – фигурные скобки {}
- •3.6. Контрольные вопросы
- •Глава 4. Программные структуры
- •4.1. Команда test
- •4.1.1. Условия проверки файлов
- •4.1.2. Условия проверки строк
- •4.1.3. Условия сравнения целых чисел
- •4.1.4. Сложные условия
- •4.2. Команда expr
- •4.3. Команда read
- •4.4.Условный оператор if
- •4.5. Оператор цикла for
- •4.6. Операторы цикла while и until
- •4.7. Оператор вызова case
- •4.8. Функции в shell
- •4.9. Контрольные вопросы
- •5. Создание сценария командного процессора
- •5.1. Пример простейшего сценария
- •5.2. Основные этапы разработки сценария
- •5.3. Отладка командных процедур
- •5.4. Выполнение shell–программ
- •5.5. Создание новых команд
- •5.6. Контрольные вопросы
- •Список литературы
- •Оглавление
- •Акуленок Ирина Николаевна
1.1. Редактор ed
Редактор ed– интерактивный редактор, который был написанБилломДжоем(BillJoy) из университета Беркли. Это один из первых программных продуктов данного класса. Он был создан еще в то время, когда для работы с UNIX использовались простые терминалы телетайпного типа – единственные из доступных в то время типов терминалов.
Возможности edследует знать по четырем причинам.
В какой бы системе UNIX вы ни работали, в ней всегда можно найти старый надежный редактор ed, который в командном процессореБорна,СииКорнаработает одинаково, без каких–либо местных различий.
Базовые команды edлегко освоить и применять их для простых операций при создании файлов и быстрого их исправления (что особенно удобно для работы с короткими сценариями командного процессора и профилями регистрации).
Редактор edпозволяет использовать регулярные выражения – конструкции, которые применяются в других областях UNIX (grepиsed).
Редактор edявляется основой для многих других текстовых редакторов, поэтому знание его команд будет полезным и в других редакторах.
Работа с редактором начинается с ввода его имени, за которым следует имя редактируемого файла.
Например,
$ ed first
Если файла не существует, то он будет создан редактором. Непосредственно после ввода команды содержимое файла становиться доступным для редактирования. В командной строке допускается указывать только одно имя файла. Редактор edсообщает размер файла в символах (он не совпадает с размером файла, поскольку редакторedне учитывает невидимые символы конца строки), а под ним находится курсор. Когда вы пользуетесь редактирующей программой, вы работаете не с самим файлом, а с его копией, расположенной в буфере редактора, поэтому при ошибке редактирования с исходным файлом еще можно иметь дело, если не сохранять данные буфера.
Редактор имеет два режима работы: командный режимирежим ввода текста.
В первом из них редактор ожидает ввода команд. Все, что вводится, интерпретируется как команды, позволяющие изменять или печатать строки, читать или записывать файлы на диск, переходить в режим ввода. По умолчанию редактор всегда запускается в командном режиме.
В режиме ввода текста любой напечатанный вами текст будет добавлен в специальный буферный файл. Фактически вы редактируете временную копию своего исходного файла – файла buffer. На ваш исходный файл это пока никакого влияния не оказывает. Существует только один буферный файл, поэтому редакторedможет редактировать в каждый момент лишь один файл. Буферизованный подход позволяет вам отменить последние внесенные изменения.
Переключение режимов производится очень просто, гораздо труднее помнить о необходимости такого переключения. В командном режиме редактор edв случае ошибочного действия сразу же сообщит об этом, выводя вопросительный знак.
Для перехода в командный режим достаточно ввести строку текста, состоящую из единственной точки. Такая строка не становится частью файла, а вы переходите в командный режим. Теперь можно воспользоваться любой командой, вводя ее и нажимая клавишу Enter.
Команды edимеют простую и регулярную структуру: ноль, один или два адреса предшествуют односимвольной команде, после которой могут располагаться ее аргументы. Адреса задают одну или несколько строк из буфера. Команда может не иметь адреса, тогда редактирование происходит с текущей строкой. Если вы вводите незнакомую команду, редактор ответит вам знаком «?». Этот же результат вы получите, если ввели некорректный поиск.
Все команды редактора односимсвольные и делятся на три категории:
команды, не использующие адресации;
команды, использующие один адрес;
команды, использующие два адреса.