
- •И.Н.Акуленок
- •Утверждено советом университета
- •Введение
- •Глава 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.2.1. Редактирование нескольких файлов
При первом вызове редактора viможно сразу указать несколько редактируемых файлов, а затем перемещаться между ними, применяя команды редактораex.
% vi файл1 файл2
По этой команде сначала редактируется первый файл, файл1. После окончания редактирования по команде:w редактораexэтот файл записывается (сохраняется), а по команде:nначинает редактироваться следующий файл,файл2. С помощью командыvi *вы можете задать редактирование всех файлов в каталоге.
При необходимости получить имя текущего файла задайте команду :f.
Команда :argsвыведет имена всех файлов, которые заданы в командной строке, и поместит в квадратные скобки имя текущего файла.
С помощью команды :eредактораexможно также в любое время переключиться на другой файл, который в командной строке не указан. Если вам необходимо в редактореvi отредактировать еще один файл, сохраните сначала текущий файл,(:w), а затем наберите команду
:e имя_файла.
Редактор vi«помнит» имена двух файлов, текущего и альтернативного. На эти имена можно сослаться, воспользовавшись символами%(имя текущего файла) и#(имя альтернативного файла).
Символ #особенно полезен при использовании команды:e,поскольку позволяет легко переключаться между двумя файлами. Команда:e#– это всегда команда “переключиться на другой файл”. В некоторых системах команда[CTRL–^]редактораvi является синонимом команды:e#, набирать эту клавиатурную комбинацию необходимо в командном режиме.
Если вы вначале не сохраните текущий файл, то редактор viне позволит переключиться на другой файл с помощью команды:eили:n(если только вы не прикажите ему сделать это безоговорочно, добавив после команды восклицательный знак).
Команда :e! также достаточно полезна. Она отвергает результаты редактирования и возвращает пользователя к последней сохраненной версии текущего файла.
Символ %, в противоположность символу#, полезен главным образом при записи содержимого результатов редактирования в новый файл. Например, вторую версию файлаletterможно сохранить посредством команды
:w %.new, не набирая команды
:w letter.new
1.2.2. Вставка текста из одного файла в другой
Когда буферу обмена присваивается однобуквенное имя, у пользователя появляется удобный способ перемещения текста из одного файла в другой. Именованные буферы не очищаются, когда по команде :eредакторviзагружает новый файл. Таким образом, путем копирования или удаления текста из одного файла в буфер (или в несколько именованных буферов, если это необходимо), вызова нового файла посредством команды:eи вставки содержимого именованного буфера в новый файл производится перемещение редактируемого материала между файлами.
Ниже показано, как переместить текст из одного файла в другой:
Команда “f4yy– копирует 4 строки текста в буфер.
Команда :w– сохраняет файл.
Команда :e letter– загружает новый файл в редактор. Переместите курсор в то место, куда будет помещен скопированный текст.
Команда “fp– поместит ранее скопированный текст из именованного буфераfпод курсором.
Если вы скопируете текст в буфер и наберете имя этого буфера прописными буквами, то новый текст будет добавлен к уже находящемуся в буфере.
Например, по команде“f4yyможно скопировать четыре строки в буфер, который носитимя f. Если вы затем переместитесь в какое–либо место и наберете команду“F6yy(букваFдолжна быть прописной), в этот же буферf будет добавлено еще шесть строк (т.е. всего их станет десять). Вы можете копировать в буфер, имя которого задается прописной буквой, столько данных, сколько вам заблагорассудится. Когда необходимо вывести весь скопированный текст, для задания имени буфера воспользуйтесь строчной буквой (как в команде“fp). Для того чтобы очистить буфер и начать заполнение сначала, укажите его имя строчной буквой(“fy…)еще раз.