Эта книга разделена на пять частей, в которых подробно описываются навыки программирования оболочки, различные команды UNIX и синтаксис, а также рассматривается обработка текста в UNIX и небольшое количество вопросов управления системой. Эта книга является всеобъемлющей по содержанию, лаконичной и гладкой по тексту, что делает ее удобной для изучения и использования программистами Shell.
Оглавление Предисловие переводчика Часть первая Оболочка
Глава 1. Безопасность файлов и разрешения 1.
1.1 Документ 1
1.2 Тип файла 2
1.3 Разрешение 2
1.4 Изменение бита разрешения 4
1.4.1 Символьный режим 4
1.4.2 пример команды chmod 5
1.4.3 Абсолютный режим 5
1.4.4 Другие примеры команды chmod 6
1.4.5 Вы можете выбрать символический или абсолютный режим 7.
1.5 Содержание 7
1.6 suid/guid 7
1.6.1 Зачем использовать suid/guid 8
1.6.2 Пример настройки suid/guid 8
1.7 chown и chgrp 9
1.7.1 пример выбора 9
1.7.2 пример chgrp 9
1.7.3 Узнайте, к каким группам пользователей вы принадлежите 9
1.7.4 Узнайте, к каким группам принадлежат другие пользователи10
1.8маска 10
1.8.1 Как рассчитать значение umask 10
1.8.2 Часто используемое значение umask 11
1.9 Символические ссылки 12
1.9.1 Использование программных ссылок для сохранения нескольких изображений файла 12
1.9.2 Пример символьной ссылки 12
1.10 Резюме 13
Глава 2. Использование find и xargs 14
2.1 найти параметры команды 14
2.1.1 Использование опции имени 15
2.1.2 Использование опции разрешения 16
2.1.3 Игнорировать каталог 16
2.1.4 Использование параметров пользователя и пользователя 16
2.1.5 Использование опций group и nogroup 16
2.1.6 Поиск файлов по времени изменения 17
2.1.7 Поиск файлов новее или старше определенного файла 17
2.1.8 Использование опции типа 17
2.1.9 Использование параметра размера 18
2.1.10 Использование опции глубины 18
2.1.11 Использование варианта монтирования 18
2.1.12 Использование опции cpio 18
2.1.13 Используйте exec или ok для выполнения команд оболочки 19
2.1.14 Пример 20 команды find
2.2 xargs 20
2.3 Резюме 21
Глава 3. Выполнение команд в фоновом режиме 22
3.1 cron и crontab 22
3.1.1 домен crontab 22
3.1.2 Примеры записей crontab 23
3.1.3 опция 23 команды crontab
3.1.4 Создание нового файла crontab 24
3.1.5 Получение списка файлов crontab 24
3.1.6 Редактирование файла crontab 24
3.1.7 Удаление файла crontab 25
3.1.8 Восстановление потерянных файлов crontab 25
3.2 по команде 25
3.2.1 Используйте команду at для отправки команд или сценариев 26
3.2.2 Список отправленных заданий 27
3.2.3 Очистить задание 27
3.3 и команда 27
3.3.1 Отправка команды в фоновый режим 28
3.3.2 Использование команды ps для просмотра процесса 28
3.3.3 Уничтожить фоновые процессы 28
3.4 команда nohup 29
3.4.1 Использование команды nohup для отправки заданий 29
3.4.2 Подача нескольких работ одновременно 29
3.5 Резюме 30
Глава 4. Замена имени файла 31
4.1 Использование* 31
4.2 Использовать? 32
4.3 Использование [...] и [!...] 32
4.4 Резюме 33
Глава 5. Ввод и вывод оболочки 34
5.1 эхо 34
5.2 читать 35
5.3 кот 37
5.4 Трубопровод 38
5,5 тройник 39
5.6 Стандартный ввод, вывод и ошибки 40
5.6.1 Стандартный ввод 40
5.6.2 Стандартный вывод 40
5.6.3 Стандартная ошибка 40
5.7 Перенаправление файлов 40
5.7.1 Перенаправление стандартного вывода 41
5.7.2 Перенаправление стандартного ввода 42
5.7.3 Стандартная ошибка перенаправления 42
5.8 Совместное использование стандартного вывода и стандартной ошибки 43
5.9 Объединение стандартного вывода и стандартной ошибки 43
5.10 отл 44
5.11 Использование файловых дескрипторов 44
5.12 Резюме 45
Глава 6. Последовательность выполнения команд 46
6.1 Использование && 46
6.2 Использование || 46
6.3 Используйте () и { } для объединения команд 47
6.4 Резюме 48
Часть 2 Фильтрация текста Глава 7 Введение в регулярные выражения 49
7.1 Использование точек для сопоставления отдельных символов 50
7.2 Сопоставьте строку или последовательность символов с ^ в начале строки 50
7.3 Сопоставление строки или символа 51 с $ в конце строки
7.4 Используйте * для сопоставления одного символа или его повторяющейся последовательности в строке 51
7.5 Используйте для маскировки значения специального символа 52
7.6 Используйте [] для соответствия диапазону или набору52
7.7 Используйте {}, чтобы узнать, сколько раз появится результат шаблона 53
7.8 Резюме 55
Глава 8. Семья grep 56
8.1 группа 57
8.1.1 Двойные кавычки 57
8.1.2 опция grep 57
8.1.3 Запрос нескольких файлов 57
8.1.4 Совпадение строк 57
8.1.5 Количество строк 58
8.1.6 Отображение несовпадающих линий 58
8.1.7 Точное совпадение 58
8.1.8 Чувствительность к регистру58
8.2 grep и регулярные выражения 58
8.2.1 Диапазон режимов 59
8.2.2 Не соответствует началу строки 59
8.2.3 Набор случаев 59
8.2.4 Соответствие любому символу 59
8.2.5 Запрос даты 59
8.2.6 Комбинация диапазонов 60
8.2.7 Вероятность появления образов 60
8.2.8 Использование grep для сопоставления шаблонов «И» или «ИЛИ» 61
8.2.9 Пустая строка 61
8.2.10 Сопоставление специальных символов 61
8.2.11 Имя файла в формате запроса 61
8.2.12 Запрос IP-адреса 61
8.3 Имя класса 62
8.4 Системная команда grep 62
8.4.1 Содержание 63
8.4.2 файл пароля 63
8.4.3 Использование команды ps 63
8.4.4 Использование grep 64 для строки
8,5 евро 64
8.6 Резюме 65
Глава 9. Введение в AWK 66.
9.1 Вызов awk 66
9.2 awk-скрипт 67
9.2.1 Шаблоны и действия 67
9.2.2 Домены и записи 67
9.2.3 Регулярные выражения и их операции в awk 70
9.2.4 Метасимволы 70
9.2.5 Условные операторы 70
9.2.6 Встроенные переменные awk 73
9.2.7 NF, NR и ИМЯ ФАЙЛА 74
9.2.8 оператор awk 75
9.2.9 Встроенные строковые функции 78
9.2.10 Последовательность маскировки строк 80
9.2.11 функция вывода awk printf 81
9.2.12 модификатор printf 81
9.2.13 массив awk 86
9.3 Резюме 88
Глава 10. Знакомство с использованием sed 89
10.1 Как читать данные с помощью sed 89
10.2 Вызов sed 89
10.2.1 Сохранение вывода sed 90
10.2.2 Как использовать sed для запроса текста в файле 90
10.2.3 Основные команды редактирования sed 90
10.3 sed и регулярные выражения 91
10.4 Основные примеры программирования sed 91
10.4.1 Использование p(rint) для отображения строки 91
10.4.2 Диапазон печати 91
10.4.3 Режим печати 92
10.4.4 Запрос с использованием шаблонов и номеров строк 92
10.4.5 Сопоставление метасимволов 92
10.4.6 Отображение всего файла 92
10.4.7 Любой символ 92
10.4.8 Первая строка 92
10.4.9 Последняя строка 93
10.4.10 Распечатать номер строки 93
10.4.11 Дополнительный текст 93
10.4.12 Создание файла сценария sed 94
10.4.13 Вставка текста 94
10.4.14 Изменение текста 95
10.4.15 Удаление текста 96
10.4.16 Текст замены 96
10.5 Изменение строк с помощью замены 97
10.6 Запись результатов sed в файл командой 97
10.7 Чтение текста из файла 98
10.8 Выход 98 после сопоставления
10.9 Отображение управляющих символов в файлах 99
10.10 Использование системы sed 99
10.10.1 Обработка управляющих символов 99
10.10.2 Обработка вывода сообщения 101
10.10.3 Удалить цифру 101 в начале строки
10.10.4 Дополнительный текст 102
10.10.5 Передача значения 102 из оболочки в sed
10.10.6 Установка переменных оболочки из вывода sed 102
10.11 Быстрые однострочные команды 102
10.12 Резюме 103
Глава 11 Слияние и разделение 104
11.1 использование сортировки 104
11.1.1 Обзор 104
11.1.2 Опции сортировки 104
11.1.3 Сохранение вывода 105
11.1.4 метод запуска сортировки 105
11.1.5 Как сортировка относится к доменам 105
11.1.6 Был ли файл засекречен105
11.1.7 Базовая сортировка 106
11.1.8 инверсия классификации сортировки 106
11.1.9 Классификация по назначенному домену 106
11.1.10 Классификация числовых полей 106
11.1.11 Классификация уникальности 107
11.1.12 Другие методы сортировки, использующие k 108
11.1.13 Использование k для сортировки классификационных ключей 108
11.1.14 Указание последовательности сортировки 108
11.1.15 Использование позиции 108
11.1.16 Классификация выходных данных с использованием головы и хвоста 109
11.1.17 awk использует сортировку для вывода результатов 109
11.1.18 Объединение двух файлов классификации 110
11.2 Системная сортировка 110
11.3 использование уникального кода 111
11.4 использование соединения 112
11,5 сократить использование 114
11.5.1 Использование разделителей доменов 115
11.5.2 Вырезать указанное поле 115
11.6 Использование пасты 116
11.6.1 Указание столбцов 116
11.6.2 Использование различных разделителей полей 116
11.6.3 вставка команды конвейера ввода 117
11.7 разделенное использование 117
11.8 Резюме 118
Глава 12. Использование 119.
12.1 О тр 119
12.1.1 Диапазон символов 119
12.1.2 Сохранение вывода 120
12.1.3 Удаление повторяющихся символов 120
12.1.4 Удаление пустых строк 120
12.1.5 Преобразование верхнего регистра в нижний регистр 121
12.1.6 От нижнего регистра к верхнему регистру 121
12.1.7 Удаление указанных символов 121
12.1.8 Преобразование управляющих символов 122
12.1.9 Быстрое преобразование 122
12.1.10 Соответствие более чем одному символу 123
12.2 Резюме 123
Часть 3. Среда входа в систему. Глава 13. Среда входа в систему 125.
13.1 /etc/профиль 125
13.2 Пользовательский $HOME.profile 128
13.3 использование stty 129
13.4 Создание файла .logout 131
13.5 Резюме 131
Глава 14. Переменные среды и оболочки 132
14.1 Что такое переменные оболочки132
14.2 Локальные переменные 132
14.2.1 Отображение переменных 133
14.2.2 Очистка переменных 133
14.2.3 Отображение всех локальных переменных оболочки 133
14.2.4 Объединение значений переменных 134
14.2.5 Проверка того, установлена ли переменная 134
14.2.6 Использование переменных для сохранения параметров системных команд 135
14.2.7 Установка переменных, доступных только для чтения 135
14.3 Переменные среды 136
14.3.1 Установка переменных среды 136
14.3.2 Отображение переменных среды 136
14.3.3 Очистка переменных среды 137
14.3.4 Встраивание переменных оболочки 137
14.3.5 Другие переменные среды 139
14.3.6 команда установки 140
14.3.7 Экспорт переменных в дочерние процессы 140
14.4 Параметры позиционной переменной 141
14.4.1 Использование позиционных параметров в скриптах 142
14.4.2 Передача параметров системным командам 142
14.4.3 Специальные переменные параметры 143
14.4.4 Окончательный статус выхода 144
14.5 Резюме 145
Глава 15 Цитаты 146
15.1 Необходимость цитирования 146
15.2 Двойные кавычки 146
15.3 Одинарные кавычки 147
15.4 Обратные кавычки147
15.5 Обратная косая черта 148
15.6 Резюме 149
Часть 4. Основы программирования оболочки Глава 16. Введение в сценарии оболочки 151
16.1 Причины использования сценариев оболочки 151
16.2 Содержание сценария 151
16.3 Запуск сценария 152
16.4 Резюме 153
Глава 17. Условное тестирование 154
17.1 Статус тестового файла 154
17.2 Использование логических операторов при тестировании 155
17.3 Тестирование строк 155
17.4 Тестовое значение 156
17,5 выражения использования 157
17.5.1 Инкрементальный подсчет 158
17.5.2 Численное тестирование 158
17.5.3 Сопоставление с образцом 158
17.6 Резюме 159
Глава 18 Структуры потока управления 160
18.1 Статус выхода 160
18.2 Структура управления 160
18.2.1 Управление потоком 161
18.2.2 Циклы 161
18.3 оператор if then else 161
18.3.1 Простой оператор if 162
18.3.2 Проверка значений переменных 162
18.3.3 Проверка вывода grep 163
18.3.4 Тестирование вывода grep с переменными 163
18.3.5 Проверка вывода копирования файла 164
18.3.6 Проверка текущего каталога 164
18.3.7 Проверка разрешений файлов 165
18.3.8 Параметры тестирования, передаваемые в сценарии 165
18.3.9 Определение того, находится ли скрипт в интерактивном режиме165
18.3.10 Простой оператор if else 166
18.3.11 Проверка настройки переменной 166
18.3.12 Обнаружение пользователя, запускающего сценарий 166
18.3.13 Передача параметров сценария в системные команды 167
18.3.14 ноль: использование команды 167
18.3.15 Результаты создания тестового каталога 168
18.3.16 Другой экземпляр копии 169
18.3.17 Несколько операторов if 169
18.3.18 Тестирование и настройка переменных среды 169
18.3.19 Обнаружение статуса последней команды 170
18.3.20 Сложение и проверка целочисленных значений 171
18.3.21 Простой сценарий безопасного входа 172
18.3.22 использование elif 173
18.3.23 Использование elif для обнаружения нескольких условий 173
18.3.24 Обнаружение расположения нескольких файлов 174
18.4 описание дела 175
18.4.1 Простой оператор случая 175
18.4.2 Использование шаблонов сопоставления 176
18.4.3 Запрос на ввод y или n 177
18.4.4 передача регистра и параметров команды 177
18.4.5 Захват ввода и выполнение пустой команды 178
18.4.6 Значения переменных по умолчанию 179
18,5 за петлю 180
18.5.1 Простой цикл for 181
18.5.2 Печать списка строк 181
18.5.3 Использование команды ls с циклом for 181
18.5.4 Использование параметров в циклах for 182
18.5.5 Использование цикла for для подключения к серверу 183
18.5.6 Использование цикла for для резервного копирования файлов 183
18.5.7 Преобразование нескольких файлов 183
18.5.8 Множественные операции удаления sed 184
18.5.9 Число циклов 184
18.5.10 для циклов и локальных документов 184
18.5.11 для встраивания цикла 185
18,6 до 186 петли.
18.6.1 Простой цикл до 186
18.6.2 Мониторинг файлов 187
18.6.3 Мониторинг дискового пространства 187
18.7, цикл 188
18.7.1 Простой цикл while 188
18.7.2 Использование цикла while для чтения ввода с клавиатуры 188
18.7.3 Чтение данных из файла с использованием цикла while 189
18.7.4 Чтение файлов с помощью IFS 189
18.7.5 Обработка файлов с условиями тестирования 190
18.7.6 Сканирование строк файла на предмет количества 191
18.7.7 Чтение пары записей одновременно 193
18.7.8 Игнорируйте символ # 193
18.7.9 Обработка форматированных отчетов 194
18.7.10 Циклы while и файловые дескрипторы 196
18.8 Использование циклов управления Break и continue 197
18.8.1 перерыв 197
18.8.2. Выход из оператора case 197
18.8.3 продолжить 197
18.8.4 Просмотр строк файла 198
18.9 Меню 199
18.10 Резюме 201
Глава 19 Функции оболочки 202
19.1 Определение функций в скриптах 203
19.2 Использование функций в скриптах 203
19.3 Передача параметров в функции 203
19.4 Возврат 203 из вызывающей функции
19.5 Проверка возвращаемого значения функции 204
19.6 Использование функций в оболочке 204
19.7 Создание функциональных файлов 204
19.8 Поиск файлов 205
19.9 Проверка функций загрузки 205
19.10 Выполнение функций оболочки 205
19.10.1 Удаление функции оболочки 206
19.10.2 Редактирование функций оболочки 206
19.10.3 Примеры функций 207
19.10.4 Группировка функций 219
19.11 Вызовы функций 219
19.11.1 Вызов функций в скриптах 219
19.11.2 Вызов функций из функциональных файлов 220
19.12 Поиск файлов предназначен не только для функций 222
19.13 Резюме 223
Глава 20. Передача параметров в скрипты 224
20.1 команда переключения 225
20.1.1 Простое использование команды переключения 225
20.1.2 Последний параметр, введенный в командной строке 225
20.1.3 Использование Shift для преобразования файлов 226
20.2 getopts 229
20.2.1 Пример сценария getopts 229
20.2.2 Как использовать getopts 231
20.2.3 Используйте getopts для указания значений переменных 231
20.2.4 Метод значения доступа 232
20.2.5 Использование getopts для преобразования файлов 233
20.3 Резюме 235
Глава 21. Создание вывода на экран 236
21.1 использование tput 236
21.1.1 Строковый вывод 236
21.1.2 Цифровой выход 237
21.1.3 Логический вывод 237
21,2 использование tput 237
21.2.1 Настройка команды tput 237
21.2.2 Использование логического вывода 237
21.2.3 Использование tput в сценариях 237
21.2.4 Генерация escape-последовательностей 238
21.2.5 Положение курсора 239
21.2.6 Отображение текста в центре экрана 240
21.2.7 Поиск атрибутов терминала 240
21.2.8 Использование функциональных клавиш в сценариях 241
21.2.9 Использование цвета 242
21.2.10 Генерация цвета 243
21.2.11 Создание изысканного меню 246
21.3 Резюме 251
Глава 22 Создание ввода на экран 252
22.1 Добавление записей 252
22.2 Удаление записей 262
22.3 Записи об изменениях 266
22.4 Просмотр записей 270
22.5 Резюме 273
Глава 23. Отладка сценариев 274
23.1 Общие ошибки 274
23.1.1 Ошибка контура 274
23.1.2 Типичные пропущенные кавычки 274
23.1.3 Ошибка теста 274
23.1.4 Регистр символов 275
23.1.5 для цикла 275
23.1.6 эхо 275
23.2 команда установки 275
23.3 Резюме 276
Глава 24. Команды внедрения оболочки 277
24.1 Полный список встроенных команд оболочки 277
24.1.1 277 человек
24.1.2 набор 278
24.1.3 раза 278
24.1.4 тип 278
24.1.5 предел 279
24.1.6 подождать 279
24.2 Резюме 279
Часть 5. Продвинутые методы программирования в командной оболочке. Глава 25. Углубленное обсуждение.
Расширять