3

                        СОДЕРЖАНИЕ
                                                        ЛИСТ

1.   ОБЩИЕ СВЕДЕНИЯ О СИСТЕМЕ UNIX . . . . . . . . . . .  10
1.1.   Основные функции и компоненты системы UNIX  . . .  10
1.2.   Ядро  . . . . . . . . . . . . . . . . . . . . . .  10
1.3.   shell . . . . . . . . . . . . . . . . . . . . . .  11
1.4.   Команды . . . . . . . . . . . . . . . . . . . . .  11
1.4.1.   Что делают команды  . . . . . . . . . . . . . .  11
1.4.2.   Как выполнять команды . . . . . . . . . . . . .  12
1.5.   Файловая система  . . . . . . . . . . . . . . . .  13
1.5.1.   Обыкновенные файлы  . . . . . . . . . . . . . .  13
1.5.2.   Справочники . . . . . . . . . . . . . . . . . .  13
1.5.3.   Специальные файлы . . . . . . . . . . . . . . .  14
1.5.4.   Символические каналы связи  . . . . . . . . . .  14
1.6.   Расположение системы  . . . . . . . . . . . . . .  14
1.7.   Принятые соглашения . . . . . . . . . . . . . . .  15
2.   ОСНОВНЫЕ СВЕДЕНИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ UNIX  . . . . .  16
2.1.   Терминал  . . . . . . . . . . . . . . . . . . . .  16
2.2.   Требуемые для установки терминальные
   характеристики  . . . . . . . . . . . . . . . . . . .  16
2.3.   Характеристики клавиатуры . . . . . . . . . . . .  17
2.4.   Соглашения по вводу . . . . . . . . . . . . . . .  17
2.5.   Подсказка команды . . . . . . . . . . . . . . . .  18
2.6.   Исправление ошибок ввода  . . . . . . . . . . . .  18
2.6.1.   Стереть текущую строку: знак @  . . . . . . . .  18
2.6.2.   Стереть последний введенный символ: <^h>
   и  . . . . . . . . . . . . . . . . . . . .  19
2.6.3.   Переназначение функции удаления . . . . . . . .  19
2.7.   Использование специальных символов как
   буквенных . . . . . . . . . . . . . . . . . . . . . .  20
2.8.   Скорость  . . . . . . . . . . . . . . . . . . . .  20
2.9.   Останов команд  . . . . . . . . . . . . . . . . .  20
2.10.   Использование символов управления  . . . . . . .  21
2.11.   Получение регистрационного имени . . . . . . . .  21
2.12.   Связь с системой UNIX  . . . . . . . . . . . . .  22
2.13.   Процедура регистрации  . . . . . . . . . . . . .  22
2.14.   Пароль . . . . . . . . . . . . . . . . . . . . .  22
2.15.   Возможные проблемы при регистрации . . . . . . .  24
2.16.   Простые команды  . . . . . . . . . . . . . . . .  25
2.17.   Выход из системы . . . . . . . . . . . . . . . .  26
3.   ФАЙЛОВАЯ СИСТЕМА  . . . . . . . . . . . . . . . . .  27
3.1.   Структура файловой системы  . . . . . . . . . . .  27
3.2.   Ваш собственный справочник  . . . . . . . . . . .  27
3.3.   Текущий справочник  . . . . . . . . . . . . . . .  28
3.4.   Имя пути  . . . . . . . . . . . . . . . . . . . .  28
3.4.1.   Полное имя пути . . . . . . . . . . . . . . . .  29
3.4.2.   Родственное имя пути  . . . . . . . . . . . . .  29
3.5.   Правила именования справочников и файлов  . . . .  30
3.6.   Организация справочника . . . . . . . . . . . . .  31
3.6.1.   Команда mkdir - создать справочник  . . . . . .  31
3.6.2.   Команда ls - напечатать содержимое
   справочника . . . . . . . . . . . . . . . . . . . . .  31
3.6.2.1.   Часто используемые ключи команды ls . . . . .  33
3.7.   Команда cd - изменить текущий справочник  . . . .  34
3.8.   Команда rmdir - удалить справочник  . . . . . . .  35
3.9.   Доступ к файлу и работа с ним . . . . . . . . . .  36
3.10.   Основные команды . . . . . . . . . . . . . . . .  36


                             4
3.10.1.   Команды cat, pg, pr - распечатать
   содержимое файла  . . . . . . . . . . . . . . . . . .  36
3.10.1.1.   Команда cat  . . . . . . . . . . . . . . . .  36
3.10.1.2.   Команда pg . . . . . . . . . . . . . . . . .  37
3.10.1.3.   Команда pr . . . . . . . . . . . . . . . . .  39
3.10.2.   Команда cp - сделать копию файла . . . . . . .  40
3.10.3.   Команда mv - переименование файла  . . . . . .  41
3.10.4.   Команда rm - удалить файл  . . . . . . . . . .  42
3.10.5.   Команда wc - подсчет строк, слов и
   символов  . . . . . . . . . . . . . . . . . . . . . .  42
3.10.6.   Команда chmod - изменить статус файла  . . . .  43
3.10.6.1.   Как определить права . . . . . . . . . . . .  44
3.10.6.2.   Как изменить существующие права  . . . . . .  45
3.10.6.3.   Альтернативный метод . . . . . . . . . . . .  46
3.10.7.   Дополнительные команды . . . . . . . . . . . .  46
3.10.7.1.   Команда diff . . . . . . . . . . . . . . . .  47
3.10.7.2.   Команда grep . . . . . . . . . . . . . . . .  48
3.10.7.3.   Команда sort . . . . . . . . . . . . . . . .  48
4.   ОБЗОР ПРОГРАММНЫХ СРЕДСТВ . . . . . . . . . . . . .  50
4.1.   Управление офисом системы . . . . . . . . . . . .  50
4.2.   Редактирования текста . . . . . . . . . . . . . .  50
4.2.1.   Что такое редактор текста . . . . . . . . . . .  50
4.2.2.   Как работает текстовый редактор . . . . . . . .  50
4.2.2.1.   Буфера редактора текста . . . . . . . . . . .  50
4.2.3.   Режимы  . . . . . . . . . . . . . . . . . . . .  51
4.2.4.   Построчный редактор . . . . . . . . . . . . . .  51
4.2.5.   Экранный редактор . . . . . . . . . . . . . . .  51
4.2.6.   Использование shell . . . . . . . . . . . . . .  52
4.2.7.   Применение средств системы  . . . . . . . . . .  53
4.2.8.   Окружение компьютера  . . . . . . . . . . . . .  53
4.2.9.   Программирование в shell  . . . . . . . . . . .  54
4.2.10.   Программирование с помощью awk . . . . . . . .  54
4.3.   Электронная связь . . . . . . . . . . . . . . . .  55
4.4.   Программирование в системе UNIX . . . . . . . . .  55
5.   РУКОВОДСТВО ПО КОМАНДНОЙ СРЕДЕ FACE . . . . . . . .  56
5.1.   Что такое FACE? . . . . . . . . . . . . . . . . .  56
5.1.1.   Организация этого раздела . . . . . . . . . . .  56
5.2.   Введение  . . . . . . . . . . . . . . . . . . . .  56
5.2.1.   Регистрация в системе . . . . . . . . . . . . .  57
5.2.2.   Структура экрана FACE . . . . . . . . . . . . .  57
5.2.2.1.   Заголовок . . . . . . . . . . . . . . . . . .  58
5.2.2.2.   Рабочая область . . . . . . . . . . . . . . .  58
5.2.2.3.   Строка сообщения  . . . . . . . . . . . . . .  58
5.2.2.4.   Командная строка  . . . . . . . . . . . . . .  59
5.2.2.5.   Метки функциональных клавиш . . . . . . . . .  59
5.3.   Что вы увидите после регистрации  . . . . . . . .  59
5.3.1.   Альтернативные последовательности . . . . . . .  62
5.3.2.   Как использовать меню . . . . . . . . . . . . .  62
5.3.2.1.   Метки функциональных клавиш в меню  . . . . .  63
5.3.2.2.   Перемещение в меню  . . . . . . . . . . . . .  63
5.3.2.3.   Выбор пункта меню . . . . . . . . . . . . . .  65
5.3.3.   Как работать с формой . . . . . . . . . . . . .  67
5.3.3.1.   Метки функциональных клавиш в формах  . . . .  69
5.3.3.2.   Перемещение в форме и редактирование полей. .  69
5.3.4.   Перемещение от окна к окну. . . . . . . . . . .  72
5.3.4.1.   Переход к другому окну с помощью
   командной строки  . . . . . . . . . . . . . . . . . .  73
5.3.4.2.   Перемещение от окна к окну с помощью
   функциональных клавиш . . . . . . . . . . . . . . . .  73


                             5
5.3.4.3.   Перемещение от окна к окну с помощью
   команды frm-mgmt. . . . . . . . . . . . . . . . . . .  73
5.3.5.   Управление внешним видом вашего оффиса  . . . .  74
5.3.5.1.   Перемещение окна  . . . . . . . . . . . . . .  74
5.3.5.2.   Изменение формы окна  . . . . . . . . . . . .  75
5.3.6.   Командное меню  . . . . . . . . . . . . . . . .  75
5.3.7.   Получение помощи  . . . . . . . . . . . . . . .  78
5.3.7.1.   Помощь по командам, меню и полям форм FACE. .  78
5.3.7.2.   Получение помощи о FACE . . . . . . . . . . .  79
5.3.8.   Выход из FACE . . . . . . . . . . . . . . . . .  80
6.   РЕДАКТОР ТЕКСТОВ ED . . . . . . . . . . . . . . . .  83
6.1.   Введение  . . . . . . . . . . . . . . . . . . . .  83
6.2.   Вызов редактора . . . . . . . . . . . . . . . . .  83
6.2.1.   Дозапись текста . . . . . . . . . . . . . . . .  83
6.3.   Запись файла  . . . . . . . . . . . . . . . . . .  84
6.4.   Выход из редактора  . . . . . . . . . . . . . . .  84
6.5.   Чтение файла  . . . . . . . . . . . . . . . . . .  84
6.5.1.   Команда редактирования файла (e)  . . . . . . .  84
6.5.2.   Команда чтения файла (r)  . . . . . . . . . . .  85
6.6.   Печать текста . . . . . . . . . . . . . . . . . .  85
6.6.1.   Команда печати (p)  . . . . . . . . . . . . . .  85
6.6.2.   Команда печати (l)  . . . . . . . . . . . . . .  86
6.7.   Просмотр файла  . . . . . . . . . . . . . . . . .  86
6.7.1.   Команда печати (n)  . . . . . . . . . . . . . .  86
6.8.   Команда удаления строк (d)  . . . . . . . . . . .  87
6.9.   Команда отмены редакции (u) . . . . . . . . . . .  87
6.10.   Команда замены (s) . . . . . . . . . . . . . . .  88
6.11.   Команда поиска контекста . . . . . . . . . . . .  90
6.11.1.   Конструкция /.../  . . . . . . . . . . . . . .  90
6.11.2.   Конструкция ?...?  . . . . . . . . . . . . . .  91
6.11.3.   Продолжение поиска . . . . . . . . . . . . . .  91
6.12.   Команда вставки строк (i)  . . . . . . . . . . .  91
6.13.   Команда замены строк (c) . . . . . . . . . . . .  92
6.14.   Работа со строками . . . . . . . . . . . . . . .  92
6.14.1.   Разбиение строк  . . . . . . . . . . . . . . .  92
6.14.2.   Объединение строк (j)  . . . . . . . . . . . .  92
6.14.3.   Копирование строк (t)  . . . . . . . . . . . .  93
6.14.4.   Перестройка строк  . . . . . . . . . . . . . .  93
6.14.5.   Маркеры  . . . . . . . . . . . . . . . . . . .  94
6.14.6.   Адресация строк в редакторе  . . . . . . . . .  94
6.14.6.1.   Адресная арифметика  . . . . . . . . . . . .  94
6.14.6.2.   Номера строк и указатель текущей
   строки  . . . . . . . . . . . . . . . . . . . . . . .  95
6.14.6.3.   Изменение указателя текущей строки . . . . .  95
6.14.6.4.   Прерывание работы редактора  . . . . . . . .  96
6.14.7.   Глобальные команды . . . . . . . . . . . . . .  96
6.14.7.1.   Команда g  . . . . . . . . . . . . . . . . .  96
6.14.7.2.   Команда v  . . . . . . . . . . . . . . . . .  97
6.15.   Работа с файлами . . . . . . . . . . . . . . . .  97
6.15.1.   Команда указания имени файла (f) . . . . . . .  97
6.15.2.   Объединение файлов . . . . . . . . . . . . . .  98
6.15.3.   Разбиение файла  . . . . . . . . . . . . . . .  98
6.15.4.   Перекомпоновка файла . . . . . . . . . . . . .  98
6.15.4.1.   Перемещение строк (команда m)  . . . . . . .  98
6.15.4.2.   Копирование строк текста (t) . . . . . . . .  99
6.16.   Специальные символы  . . . . . . . . . . . . . . 100
6.16.1.   Метасимвол . (точка) . . . . . . . . . . . . . 100
6.16.2.   Метасимвол \ (обратная дробная черта)  . . . . 100
6.16.3.   Метасимвол $ (денежный знак) . . . . . . . . . 101


                             6
6.16.4.   Метасимвол ^ (отрицание) . . . . . . . . . . . 101
6.16.5.   Метасимвол * (звездочка) . . . . . . . . . . . 101
6.16.6.   Метасимволы [] (квадратные скобки) . . . . . . 102
6.16.7.   Метасимвол &amp; (амперсенд) . . . . . . . . . . . 103
6.17.   Дополнительные возможности . . . . . . . . . . . 103
6.17.1.   Временный выход из редактора . . . . . . . . . 104
6.17.2.   Восстановление после останова  . . . . . . . . 104
6.17.3.   Командные файлы редактора  . . . . . . . . . . 104
6.17.4.   Режим шифрования . . . . . . . . . . . . . . . 104
6.17.5.   Программа grep . . . . . . . . . . . . . . . . 105
6.17.6.   Команды помощи . . . . . . . . . . . . . . . . 105
6.18.   Сообщения редактора  . . . . . . . . . . . . . . 106
6.19.   Краткий обзор команд . . . . . . . . . . . . . . 106
7.   ЭКРАННЫЙ РЕДАКТОР VI  . . . . . . . . . . . . . . . 109
7.1.   Введение  . . . . . . . . . . . . . . . . . . . . 109
7.2.   Начальные установки . . . . . . . . . . . . . . . 109
7.2.1.   Установка конфирурации терминала  . . . . . . . 109
7.2.2.   Изменение конфигурации  . . . . . . . . . . . . 110
7.3.   Создание файла  . . . . . . . . . . . . . . . . . 110
7.4.   Режимы редактора  . . . . . . . . . . . . . . . . 111
7.4.1.   Создание текста в режиме Append . . . . . . . . 111
7.4.2.   Выход из режима Append  . . . . . . . . . . . . 111
7.5.   Редактирование текста в командном режиме  . . . . 111
7.5.1.   Перемещение курсора . . . . . . . . . . . . . . 112
7.5.2.   Удаление текста . . . . . . . . . . . . . . . . 112
7.5.3.   Добавление текста . . . . . . . . . . . . . . . 112
7.6.   Завершение работы c vi  . . . . . . . . . . . . . 113
7.7.   Перемещение курсора по экрану . . . . . . . . . . 114
7.7.1.   Позиционирование курсора на символ  . . . . . . 114
7.7.1.1.   Переместить курсор в начало или конец строки. 114
7.7.1.2.   Поиск символа в строке  . . . . . . . . . . . 114
7.7.1.3.   Команда перемещения: - (знак минус) . . . . . 115
7.7.1.4.   Команда перемещения + (знак плюс) . . . . . . 115
7.7.2.   Позиционирование слов . . . . . . . . . . . . . 115
7.7.3.   Позиционирование курсора на предложение . . . . 116
7.7.4.   Позиционирование курсора по параграфам  . . . . 116
7.7.5.   Позиционирование в окне . . . . . . . . . . . . 116
7.8.   Позиционирование курсора на неотображаемом
   тексте  . . . . . . . . . . . . . . . . . . . . . . . 118
7.8.1.   Прокрутка текста  . . . . . . . . . . . . . . . 118
7.8.1.1.   Команда ^f  . . . . . . . . . . . . . . . . . 118
7.8.1.2.   Команда ^d  . . . . . . . . . . . . . . . . . 118
7.8.1.3.   Команда ^b  . . . . . . . . . . . . . . . . . 118
7.8.1.4.   Команда ^u  . . . . . . . . . . . . . . . . . 119
7.9.   Переход на указанную строку . . . . . . . . . . . 119
7.10.   Номера строк . . . . . . . . . . . . . . . . . . 119
7.11.   Поиск символов по шаблону: команды / и ? . . . . 119
7.12.   Создание текста  . . . . . . . . . . . . . . . . 120
7.12.1.   Добавить текст . . . . . . . . . . . . . . . . 121
7.12.2.   Вставить текст . . . . . . . . . . . . . . . . 121
7.12.3.   Открыть строку для текста  . . . . . . . . . . 121
7.13.   Удаление текста  . . . . . . . . . . . . . . . . 122
7.13.1.   Удаление текста в режиме ввода текста  . . . . 122
7.13.2.   Отменить последнюю команду . . . . . . . . . . 122
7.14.   Команды удаления в командном режиме  . . . . . . 122
7.14.1.   Удаление слов  . . . . . . . . . . . . . . . . 123
7.14.2.   Удаление параграфов  . . . . . . . . . . . . . 123
7.14.3.   Удаление строк . . . . . . . . . . . . . . . . 123
7.14.4.   Удаление текста после курсора  . . . . . . . . 123


                             7
7.15.   Модификация текста . . . . . . . . . . . . . . . 124
7.15.1.   Замена текста  . . . . . . . . . . . . . . . . 124
7.15.2.   Подстановка текста . . . . . . . . . . . . . . 125
7.15.3.   Изменение текста . . . . . . . . . . . . . . . 125
7.16.   Извлечение и присоединение текста  . . . . . . . 126
7.16.1.   Перемещение текста . . . . . . . . . . . . . . 126
7.16.2.   Перемещение букв . . . . . . . . . . . . . . . 126
7.16.3.   Копирование текста . . . . . . . . . . . . . . 126
7.17.   Копирование и перемещение текста с
   использованием регистров  . . . . . . . . . . . . . . 127
7.18.   Специальные команды  . . . . . . . . . . . . . . 128
7.18.1.   Повторить последнюю команду  . . . . . . . . . 128
7.18.2.   Объединение строк  . . . . . . . . . . . . . . 128
7.18.3.   Очистить окно и восстановить текст . . . . . . 128
7.18.4.   Заменить нижний регистр на верхний и
   vice versa  . . . . . . . . . . . . . . . . . . . . . 128
7.19.   Использование команд построчного редактора . . . 129
7.19.1.   Временный возврат к shell  . . . . . . . . . . 129
7.19.2.   Запись текста в новый файл . . . . . . . . . . 130
7.19.3.   Переход к указанной строке . . . . . . . . . . 130
7.19.4.   Удалить остаток буфера . . . . . . . . . . . . 130
7.19.5.   Добавить файл в буфер  . . . . . . . . . . . . 130
7.19.6.   Провести глобальные изменения  . . . . . . . . 131
7.20.   Завершение работы с редактором vi  . . . . . . . 132
7.21.   Специальные опции для vi . . . . . . . . . . . . 133
7.21.1.   Восстановление потерянного файла . . . . . . . 133
7.21.2.   Редактирование нескольких файлов . . . . . . . 133
7.21.3.   Просмотр файла . . . . . . . . . . . . . . . . 134
8.   SHELL - ИНТЕРПРЕТАТОР КОМАНДНОГО ЯЗЫКА  . . . . . . 135
8.1.   Метасимволы . . . . . . . . . . . . . . . . . . . 135
8.1.1.   Поиск всех символов (метасимвол *)  . . . . . . 135
8.1.2.   Поиск по одному символу (метасимвол ?)  . . . . 136
8.1.3.   Поиск одного набора (метасимвол []) . . . . . . 136
8.2.   Специальные символы . . . . . . . . . . . . . . . 137
8.2.1.   Запуск команды в фоновом режиме (символ &amp;). . . 137
8.2.2.   Последовательное выполнение команд (символ ;) . 137
8.2.3.   Отмена специального значения (метасимвол \) . . 138
8.2.4.   Отмена специального значения (метасимвол
   кавычки)  . . . . . . . . . . . . . . . . . . . . . . 138
8.2.4.1.   Использование кавычек для отмены
   значения символа пробел . . . . . . . . . . . . . . . 138
8.3.   Перенаправление ввода и вывода  . . . . . . . . . 139
8.3.1.   Перенаправить ввод: знак <  . . . . . . . . . . 139
8.3.2.   Перенаправить вывод: знак > . . . . . . . . . . 139
8.3.3.   Добавить вывод в существующий файл  . . . . . . 140
8.3.3.1.   Некоторые применения перенаправления
   вывода  . . . . . . . . . . . . . . . . . . . . . . . 140
8.3.3.2.   Комбинирование фонового режима и
   перенаправления вывода  . . . . . . . . . . . . . . . 141
8.3.4.   Перенаправление вывода команде  . . . . . . . . 141
8.3.5.   Подстановка вывода в качестве аргумента . . . . 142
8.4.   Выполнение, останов и повторный запуск
   процессов . . . . . . . . . . . . . . . . . . . . . . 142
8.4.1.   Запуск команд в заданное время  . . . . . . . . 142
8.4.2.   Получить состояние запущенного процесса . . . . 143
8.4.3.   Завершение активных процессов . . . . . . . . . 144
8.4.4.   Запуск остановленного задания . . . . . . . . . 145


                             8
8.4.5.   Использование команды nohup . . . . . . . . . . 145
9.   СРЕДСТВА ПРОГРАММИРОВАНИЯ SHELL . . . . . . . . . . 146
9.1.   Программы shell . . . . . . . . . . . . . . . . . 146
9.1.1.   Создание простых программ shell . . . . . . . . 146
9.1.2.   Выполнение программ shell . . . . . . . . . . . 146
9.1.3.   Создание справочника bin для исполняемых файлов 147
9.1.4.   Ограничения при именовании программ shell . . . 147
9.2.   Переменные  . . . . . . . . . . . . . . . . . . . 147
9.2.1.   Позиционные параметры . . . . . . . . . . . . . 147
9.2.2.   Специальные параметры . . . . . . . . . . . . . 148
9.2.3.   Именованные переменные  . . . . . . . . . . . . 148
9.2.4.   Присвоение значений переменным  . . . . . . . . 149
9.2.4.1.   Использование команды read  . . . . . . . . . 149
9.2.4.2.   Перенаправление вывода команды в
   переменную  . . . . . . . . . . . . . . . . . . . . . 150
9.2.4.3.   Присвоение позиционного параметра
   переменной  . . . . . . . . . . . . . . . . . . . . . 151
9.3.   Конструкции языка программирования shell  . . . . 151
9.3.1.   Комментарии . . . . . . . . . . . . . . . . . . 151
9.3.2.   "Here document" . . . . . . . . . . . . . . . . 151
9.3.3.   Использование ed в shell программе  . . . . . . 152
9.3.4.   Коды завершения . . . . . . . . . . . . . . . . 152
9.3.4.1.   Проверка кодов завершения . . . . . . . . . . 153
9.3.5.   Циклы . . . . . . . . . . . . . . . . . . . . . 153
9.3.5.1.   Оператор for  . . . . . . . . . . . . . . . . 153
9.3.5.2.   Оператор while  . . . . . . . . . . . . . . . 154
9.3.6.   Использование /dev/null . . . . . . . . . . . . 155
9.3.7.   Условные операторы  . . . . . . . . . . . . . . 155
9.3.8.   Безусловная передача управления . . . . . . . . 158
9.4.   Отладка программы . . . . . . . . . . . . . . . . 159
9.4.1.   Модификация окружения . . . . . . . . . . . . . 160
9.4.2.   Добавление команд в файл .profile . . . . . . . 161
9.4.3.   Установка характеристик терминала . . . . . . . 161
9.5.   Использование shell переменных  . . . . . . . . . 161
10.   AWK - ЯЗЫК СКАНИРОВАНИЯ И ОБРАБОТКИ ТЕКСТА . . . . 163
10.1.   Основные сведения об awk . . . . . . . . . . . . 163
10.1.1.   Структура программы  . . . . . . . . . . . . . 163
10.1.2.   Поля . . . . . . . . . . . . . . . . . . . . . 164
10.1.3.   Печать . . . . . . . . . . . . . . . . . . . . 164
10.2.   Печать форматированного файла  . . . . . . . . . 165
10.3.   Простые шаблоны  . . . . . . . . . . . . . . . . 165
10.4.   Простые действия . . . . . . . . . . . . . . . . 166
10.4.1.   Встроенные переменные  . . . . . . . . . . . . 166
10.4.2.   Определенные пользователем переменные  . . . . 166
10.4.2.1.   Функции  . . . . . . . . . . . . . . . . . . 167
10.5.   Примеры некоторых полезных программ  . . . . . . 167
10.6.   Сообщения об ошибках . . . . . . . . . . . . . . 167
10.7.   Шаблоны  . . . . . . . . . . . . . . . . . . . . 168
10.7.1.   Шаблоны BEGIN и END  . . . . . . . . . . . . . 168
10.8.   Выражения отношения  . . . . . . . . . . . . . . 168
10.9.   Регулярные выражения . . . . . . . . . . . . . . 169
10.10.   Комбинация шаблонов . . . . . . . . . . . . . . 171
10.11.   Область шаблона . . . . . . . . . . . . . . . . 172
10.12.   Действие  . . . . . . . . . . . . . . . . . . . 172
10.12.1.   Арифметические действия . . . . . . . . . . . 173
10.13.   Строки и строковые функции  . . . . . . . . . . 175
10.14.   Поле переменных . . . . . . . . . . . . . . . . 177
10.15.   Номер или строка  . . . . . . . . . . . . . . . 177
10.16.   Операторы управления потоком  . . . . . . . . . 178


                             9
10.17.   Массивы . . . . . . . . . . . . . . . . . . . . 179
10.18.   Функции, определенные пользователем . . . . . . 181
10.19.   Комментарии . . . . . . . . . . . . . . . . . . 181
10.20.   Вывод . . . . . . . . . . . . . . . . . . . . . 182
10.20.1.   Оператор print  . . . . . . . . . . . . . . . 182
10.20.2.   Разделители вывода  . . . . . . . . . . . . . 182
10.20.3.   Оператор printf . . . . . . . . . . . . . . . 182
10.20.4.   Вывод в файлы . . . . . . . . . . . . . . . . 183
10.20.5.   Вывод в канал . . . . . . . . . . . . . . . . 184
10.21.   Ввод  . . . . . . . . . . . . . . . . . . . . . 184
10.21.1.   Файлы и каналы  . . . . . . . . . . . . . . . 185
10.21.2.   Разделители ввода . . . . . . . . . . . . . . 185
10.22.   Многострочные записи  . . . . . . . . . . . . . 185
10.23.   Функция getline . . . . . . . . . . . . . . . . 186
10.24.   Аргументы командной строки  . . . . . . . . . . 187
10.25.   Использование awk с другими командами и с
   shell . . . . . . . . . . . . . . . . . . . . . . . . 188
10.25.1.   Функция system  . . . . . . . . . . . . . . . 188
10.25.2.   Взаимодействие с shell  . . . . . . . . . . . 188
10.26.   Примеры использования . . . . . . . . . . . . . 189
10.26.1.   Генерирование отчетов . . . . . . . . . . . . 189
10.26.2.   Дополнительные примеры  . . . . . . . . . . . 191
10.26.2.1.   Частота использования слов  . . . . . . . . 191
10.26.2.2.   Накопление  . . . . . . . . . . . . . . . . 191
10.26.2.3.   Случайный выбор . . . . . . . . . . . . . . 191
10.26.2.4.   Возможности shell . . . . . . . . . . . . . 191
10.27.   Итоговое краткое описание awk . . . . . . . . . 192
10.27.1.   Ограничения . . . . . . . . . . . . . . . . . 195
10.27.2.   Инициализация, сравнение и тип приведения . . 195
Приложение 1 . . . . . . . . . . . . . . . . . . . . . . 197
Приложение 2 . . . . . . . . . . . . . . . . . . . . . . 198