
- •«Операционные системы.Командный интерфейс» конспект лекций Тема 1. Введение. Содержание курса
- •Тема 2. Классификация режимов работы ос
- •Диалоговый пакетный
- •Тема 3. Виды нтерфейсов пользователя ос unix
- •Тема 4. Обобщенные принцпы построения современных ос
- •Тема 5. Состав ос unix
- •Тема 6. Среда для работы пользователя
- •Тема 7. Регистрация пользователя в системе
- •Тема 8. Группа коммуникационных команд
- •Тема 9. Группа вспомогательных команд
- •Тема 10. Перенаправление ввода-вывода
- •Файловая система unix
- •Тема 11. Файлы unix
- •Тема 12. Генерация имен файлов
- •Тема 13. Структура системы каталогов unix
- •Тема 14. Управление каталогами в unix
- •Тема 15. Команды поиска файлов в системе каталогов
- •Тема 16. Управление файлами
- •Тема 17. Управление правами доступа к файлам и каталогам
- •Здесь файл fil1.C, владельцем которого является пользова-
- •Тема 18. Конвееры и фильтры
- •Тема 19. Создание и редактирование текстовых файлов
- •Команды удаления текста
- •Введение в shell- программирование
- •Тема 20. Операторы – команды
- •В unix при написании операторов важное значение отводится
- •Тема 21. Управление локальными переменными
- •Тема 22. Подстановка значений переменных
- •Тема 23. Экспортирование локальных переменных в среду shell
- •Тема 24. Проверка условий
- •2. Сравнение числовых значений:
- •3. Сравнение строк:
- •If список_команд1
- •Тема 25. Построение циклов
- •Тема 26. Управление процессами в unix
- •Тема 27. Создание фоновых процессов
- •Тема 28. Управление приоритетами
- •Тема 29. Завершение процессов
- •Тема 30. Перехватывание сигналов
- •Тема 31. Сетевые средства unix
Тема 19. Создание и редактирование текстовых файлов
Во всех версиях ОС UNIX имеется встроенный текстовый редактор vi экранного типа. Он может применяться практически на любом терминале, начиная с телетайпа. Редактор является универсальным средством, доступным в среде любой UNIX-подобной ОС.
Редактор богат своими функциональными возможностями. Мы ограничимся наиболее часто используемыми функциями при составлении обычных текстов, текстов процедур и пр..
Основная особенность – при редактировании текста в качестве управляющих использутся обычные клавиши алфавитно-цифровой клавиатуры, а позиционирование осуществляется только относительно текущего положения курсора.
Начало работы с редактором:
$vi имя_файла [*] вызов редактора и файла
Если файл не существует, то создается новый пустой
Редактируемый файл переписывается в буфер. Далее все изменения в редактируемом файле соответственно осуществляются в буфере в КОМАНДНОМ РЕЖИМЕ - нажатые клавиши интерпретируются как команды редактирования текста. В командный режим редактор переводится автоматически сразу же после входа в программу vi.
По завершении редактирования надо выйти из редактора с сохранением файла:
<Esc>:wq! - отредактированная копия замещает исходный файл. Если же требуется отменить все редактирование, то:
<Esc>:q!
В режиме редактирования, например, для ввода новых фрагментов текста файла; используются следующие клавиши
команды режима ввода текста (значения клавиш на экране не отображается):
a (append) - набор последующего текста в текущую строку после курсора
i (insert) - вставка текста в текущую строку после курсора
o (open) - вставить пустую строку после текущей
Замечание: если в качестве управляющей используется клавиша нижнего регистра – операция редактирования реализуется после курсора, если верхнего - перед курсором.
Операции ввода текста необходимо завершить командой
<Esc> - переводит редактор в режим редактирования последнего варианта текста. В командном режиме могут исполняться и другие группы команд.
Команды управления курсором в области текста файла. Два способа - использование специальных клавиш-команд (см справочник) или использование общеизвестных управляющих клавиш клавиатуры.
Команды удаления текста
х - удаление текущего символа
[#]dw - удаление # текущих слов
[#]dd -удаление текущих строк
dG - удаление всех строк от текущей до последней
d$ - удаление конца строки от текущей позиции
d^ - удаление начала строки до текущей позиции.
Замечание: удаленные фрагменты текста не пропадают а временно помещаются в буфер, откуда онимогут быть возвращены в текст или перемещены по файлу (см. ниже).
Команды отмены произведенных изменений в текущей строке:
u - отмена (undo) последнего изменения
U - отмена всех изменений.
Команды копирования указанного в команде объекта в буфер:
[#]yw - копирование (yank) текущего слова
[#]yy - копирование текущей строки
уG - копирование строк от текущей до конца файла
yS - копирование части строки от курсора до конца строки
y^ - копирование части строки от курсора до начала строки
Команды вставки буфера в текст:
P - перед курсором
p - после курсора
Команды изменения текста:
r<символ> - заменяет (change) текущий символ на указанный
с<объек> - заменяет указанный объект на текст, который вводится с клавиатуры - <Esc>
#cw -изменение текущего слова
#cc - всей текущей строки
cG - всех строк файла от текущей до последней
cS -части строки от курсора до конца строки
с^ - части строки от курсора до начала строки.
Команды поиска строки файла по фрагменту текста:
/<текст> - начиная от текущей строки до конца файла с переходом
на его начало
?<текст> - начиная от текущей строки до начала файла и по всему
n - поиск следующей строки в файле, аналогичной найденной
N - поиск предыдущего вхождения в файл заданной строки.
Редактор имеет возможности поиска строк по шаблонам (например по диапазону символов) и пр..
На экране содержимое редактируемого файла представляется как бы через некоторое окно со следующими полями (сверху - вниз):
область текста файла;
область пустых строк, которые надо ввести, если они понадобятся;
тильда (~) - область для ввода дополнительного текста файла, но пустых строк этой области в файле нет;
область сообщений редактора или область префиксных ex-команд - операций редактора над группой строк файла или над целым файлом (команды вводятся на приглашение ":", отображаются на экране и исполняются по команде управляющей клавиши перевода строки).
Команды используются для многострочных операций с редактируемым файлом и настройки сеанса редактирования:
:w файл - запись текущего буфера в файл;
:m,nw файл - запись строк с m-ой по n-ую в файл;
:e! - отмена всех изменений в буфере с перезагрузкой в него файла с диска;
:e файл - загрузка файла в буфер редактирования, файл замещает старое содержимое самого буфера;
:r файл - добавление содержимого файла после текущегоположения курсора;
:set опция - значение опций определяет настройку редактора и пр..
Vi – КРАТКИЙ СПРАВОЧНИК
$vi имя_файла [*] вызов редактора и файла (создание файла)
~ - тильда - для внесения нового текста
<Esc>:wq! - выход с сохранением файла
<Esc>:q! - выход без сохранения файла
Ввод текста:
i/I (insert) - вставка текста в начало текущей строки
a/A (append) - набор текста в конец текущей строки
o/O (open) - вставить пустую строку после/перед текущей
<Esc> - переход из режима ввода в режим редактирования текста.
Команды удаления текста (в буфер):
х - удаление текущего символа
[#]dw - удаление # текущих слов
[#]dd -удаление # текущих строк
dG - удаление всех строк от текущей до последней
d$ - удаление конца строки от текущей позиции
d^ - удаление начала строки до текущей позиции.
Команды отмены произведенных изменений в текущей строке:
u - отмена (undo) последнего изменения
U - отмена всех изменений.
Команды копирования указанного в команде объекта в буфер:
[#]yw - копирование (yank) текущего слова
[#]yy - копирование текущей строки
уG - копирование строк от текущей до конца файла
y$ - копирование части строки от курсора до конца строки
y^ - копирование части строки от курсора до начала строки
Команды вставки буфера в текст:
p/P - после/перед курсором
Команды изменения текста:
r<символ> - заменяет (change) текущий символ на указанный
с<объек> - заменяет указанный объект на текст, с клавиатуры - <Esc>:
#cw -изменение текущего слова
#cc - всей текущей строки
cG - всех строк файла от текущей до последней
cS -части строки от курсора до конца строки
с^ - части строки от курсора до начала строки.
Команды поиска строки файла по фрагменту её текста:
/<текст> - от текущей строки до конца файла с переходом на начало
?<текст> - от текущей строки до начала файла и по всему файлу
n - поиск следующей строки в файле, аналогичной найденной
N - поиск предыдущего вхождения в файл заданной строки.
Префиксные команды:
:w файл - запись текущего буфера в файл
:m,nw файл - запись строк с m-ой по n-ую в файл
:e! - отмена всех изменений в буфере с перезагрузкой в него файла с диска
:e файл - загрузка файла в буфер с замещением старого содержимого
:r файл - добавление содержимого файла после текущего положения курсора
:set опция - настройка редактора (см. полное описание vi).