ВикиЧтение
ВикиЧтение
Linux и UNIX: программирование в shell. Руководство разработчика.
Тейнсли Дэвид
0
We use cookies. Read the
Privacy and Cookie Policy
I accept
0
Содержание
Введение
Интерпретатор bourne shell
Переносимость интерпретатора shell
Структура книги
Интерпретатор shell
Фильтрация текста
Регистрация в системе
Основы shell–программирования
Совершенствование навыков по написанию сценариев
Что нужно знать
ЧАСТЬ 1
ГЛАВА 1
1.3. Права доступа к файлам
1.4. Изменение прав доступа к файлу
1.4.1. Символьный режим
1.4.2. Примеры использования команды chmod
1.4.3. Абсолютный режим
1.4.4. Дополнительные примеры использования команды chmod
1.5. Каталоги
1.6. Биты смены идентификаторов (SUID и SGID)
1.6.2. Установка битов SUID и SGID
1.7. Команды chown и chgrp
1.7.1. Пример использования команды chown
1.7.2. Пример использования команды chgrp
1.7.3. Определение групп, в состав которых вы входите
1.7.4. Определение групп, в состав которых входят другие пользователи
1.8. Команда umask
1.8.1. Обработка значений umask
1.8.2. Примеры установки значений umask
1.9. Символические ссылки
1.9.1. Применение символических ссылок
1.9.2. Примеры создания символических ссылок
1.10. Заключение
2.1. Опции команды find
2.1.2. Опция -perm
2.1.3. Опция -prune
2.1.4. Опции -user и -nouser
2.1.5. Опции -group и -nogroup
2.1.8. Опция -type
2.1.10. Опция -depth
2.1.11. Опция -mount
2.1.13. Опции -exec и -ok
2.2. Команде xargs
2.3. Заключение
ГЛАВА 3
3.1. Планировщик cron и команда crontab
3.1.1. Структура crontab–файла
3.1.2. Примеры записей в crontab–файле
3.1.3. Опции команды crontab
3.1.5. Вывод на экран содержимого crontab–файла
3.1.6. Редактирование crontab–файла
3.1.7. Удаление crontab–файла
3.1.8. Восстановление утерянного crontab–файла
3.2. Команда at
3.2.1. Запуск команд и сценариев с помощью команды at
3.2.2. Просмотр списка запланированных заданий
3.2.3. Удаление запланированного задания
3.3. Оператор &
3.3.1. Запуск команды в фоновом режиме
3.3.3. Уничтожение фонового задания
3.4. Команда nohup
3.5. Заключение
ГЛАВА 4
0
4.4. Заключение
ГЛАВА 5
5.2. Команда read
5.3. Команда cat
5.6. Стандартные потоки ввода, вывода и ошибок
5.6.1. Стандартный поток ввода
5.6.2. Стандартный поток вывода
5.6.3. Стандартный поток ошибок
5.7. Файловый ввод–вывод
5.7.2. Переадресация стандартного потока ввода
5.7.3. Переадресация стандартного потока ошибок
5.7.5. Объединение выходных потоков в файле
5.8. Команда exec
5.10. Заключение
ГЛАВА 6
6.1. Оператор &&
6.4. Заключение
ЧАСТЬ 2
ГЛАВА 7
0
7.9. Заключение
ГЛАВА 8
8.1. Команда grep
8.1.1. Употребление кавычек
8.1.2. Параметры команды grep
8.1.3. Поиск среди нескольких файлов
8.1 4. Определение числа строк, в которых найдено совпадение
8.1.5. Вывод номеров строк
8.1.6. Поиск строк, не соответствующих шаблону
8.1.8. Игнорирование регистра символов
8.2. Команда grep и регулярные выражения
8.4. Дополнительные примеры использования команды grep
8.4.2. Подавление вывода сообщений об ошибках
8.4.3. Фильтрация списка процессов
8.6. Заключение
ГЛАВА 9
9.2. Сценарии
9.2.3. Регулярные выражения
9.2.5. Операторы
9.3. Заключение
ГЛАВА 10
10.1. Чтение и обработка данных в sed
10.2.2. Синтаксис команд
10.3. Регулярные выражения
10.4. Вывод строк (команда p)
10.6. Добавление текста (команда а)
10.7. Создание файла сценария
10.8. Вставка текста (команда i)
10.9. Изменение текста (команда с)
10.16. Дополнительные примеры использования редактора sed
10.17. Заключение
ГЛАВА 11
11.1. Сортировка файлов с помощью команды sort
11.1.1. Опции команды sort
11.1.2. Сохранение результатов сортировки
11.1.3. Тестовый файл
11.1.4. Индексация полей
11.1.5. Проверка факта сортировки файла
11.1.6. Простейшая сортировка
11.1.7. Сортировка а обратном порядке
11.1.8. Сортировка по заданному полю
11.1.9. Сортировка по числовому полю
11.1.10. Сортировка с отбрасыванием повторяющихся строк
11.1.11. Задание ключа сортировки с помощью опции -k
11.1.12. Несколько ключей сортировки
11.1.13. Указание позиции, с которой начинается сортировка
11.1.14. Обработка результатов сортировки с помощью команд head и tail
11.1.16. Объединение двух отсортированных файлов
11.2. Удаление повторяющихся строк с помощью команды uniq
11.2.2. Определение количества повторений
11.2.3. Отображение только повторяющихся строк
11.2.4. Проверка уникальности отдельных полей
11.3. Объединение файлов с помощью команды join
11.3.1. Объединение двух файлов
11.3.2. Включение несовпадающих строк
11.3.3. Задание формата вывода
11.4. Вырезание текста с помощью команды cut
11.4.1. Задание разделителя полей
11.4.2. Вырезание отдельных символов
11.5. Вставка текста с помощью команды paste
11.5.1. Определение порядка вставки столбцов
11.5.2. Выбор разделителя полей
11.5.3. Слияние строк
11.5.4. Чтение данных и» стандартного входного потока
11.7. Заключение
12.1. Применение утилиты tr
12.1.2. Сохранение выходного результата
12.1.10. Сравнение с несколькими символами
12.2. Заключение
Часть 3
ГЛАВА 13
13.4. Создание файла .logout
13.5. Заключение
ГЛАВА 14
14.1. Понятие о переменных интерпретатора shell
14.2. Локальные переменные
14.2.1. Отображение значения переменной
14.2.2. Удаление значения переменной
14.2.3. Отображение значений всех переменных интерпретатора shell
14.2.4. Объединение значений переменных
14.2.5. Проверка на наличие значения переменной (подстановка)
14.2.6. Применение переменных, содержащих аргументы системных команд
14.2.7. Как сделать переменную доступной только для чтения
14.3. Переменные среды
14.3.1. Присваивание значений переменным среды
14.3.2. Отображение значений переменных среды
14.3.3. Удаление значений переменных среды
14.3.6. Применение команды set
14.3.7. Экспорт переменных в дочерние процессы
14.4. Позиционные параметры командной строки
14.4.1. Применение в сценариях позиционных параметров
14.4.3. Специальные параметры
14.5. Заключение
ГЛАВА 15
15.1. Правила применения кавычек
15.4. Обратные кавычки
15.5. Обратная косая черта
15.6. Заключение
Часть 4
ГЛАВА 16
16.1. Зачем создаются shell–сценарии
16.1.1. Не отказывайтесь от новых идей
16.2. Структура сценария
16.3. Выполнение сценария
16.4. Заключение
ГЛАВА 17
17.1. Проверка прав доступа к файлу
17.2. Применение логических операторов при осуществлении проверки
17.3. Проверка строк
17.4. Проверка чисел
17.5. Применение команды expr
17.5.1. Приращение переменной цикла
17.5.2. Проверка численных значений
17.6. Заключение
ГЛАВА 18
18.1. Коды завершения
18.2. Управляющие конструкции
18.2.1. Операторы, изменяющие ход выполнения сценария
18.2.2. Циклические операторы
18.3. Операторы if then else
18.3.1. Простые операторы if
18.3.2. Проверка значений переменных
18.3.5. Проверка результата копирования файла
18.3.6. Проверка текущего каталога
18.3.7. Проверка прав доступа к файлу
18.3.8. Проверка параметров, передаваемых сценарию
18.3.9. Определение интерактивного режима выполнения сценария
18.3.10. Простые операторы if else
18.3.11. Проверка установок переменных
18.3.12. Проверка пользователя, выполняющего сценарий
18.3.13. Передача параметров сценария системной команде
18.3.15. Проверка на предмет создания каталога
18.3.17. Применение нескольких операторов if
18.3.19. Проверка кода завершения последней команды
18.3.20. Добавление и проверка целых значений
18.3.21. Простой сценарий, обеспечивающий безопасность при регистрации
18.3.22. Применение elif
18.3.23. Несколько проверок, реализуемых с помощью elif
18.4. Оператор case
18.4.1. Простой оператор case
18.4.2. Применение символа | при поиске по шаблону
18.4.4. Оператор case и передача командных параметров
18.4.5. Прием потока ввода без применения шаблонных команд
18.4.6. Значения переменных, заданные по умолчанию
18.5. Цикл for
18.5.1. Простой цикл for
18.5.2. Вывод на экран строки списка
18.5.3. Использование команды ls совместно с циклом for
18.5.4. Применение параметров вместе с циклом for
18.5.5. Посылка сигналов серверам с помощью цикла for
18.5.6. Создание резервных копий файлов с помощью цикла for
18.5.8. Удаления, выполняемые с помощью редактора sed
18.5.9. Подсчет с помощью циклов
18.5.11. Вложенные циклы for
18.6. Цикл until
18.6.1. Простой цикл until
18.6.2. Контроль наличия файла
18.7. Цикл while
18.7.1. Простой цикл while
18.7.2. Применение цикла while при вводе с клавиатуры
18.7.3. Применения цикла while для считывания данных из файлов
18.7.4. Считывание данных из файлов с помощью IFS
18.7.5. Обработка файла с помощью проверок условий
18.7.6. Выполнение суммирования
18.7.7. Одновременный просмотр двух записей
18.7.8. Игнорирование символа #
18.8. Управление ходом выполнения циклов с помощью команд break и continue
18.8.2. Прекращение выполнения оператора case
18.8.3. Команда continue
18.8.4. Пропуск строк в файлах
18.10. Заключение
ГЛАВА 19
19.3. Передача параметров функции
19.4. Возврат значения функции
19.5. Проверка значений, возвращаемых функцией
19.6. Файл функций
19.7. Создание файла функций
19.9. Проверка загруженных функций
19.10. Вызов функций интерпретатора shell
19.10.1. Удаление shell–функций
19.10.2. Редактирование shell–функций
19.10.4. Подведение итогов
19.11. Вызов функций
19.11.1. Вызов функций, размещенных в сценариях
19.11.2. Вызов функций из файла функций
19.12. Загрузка файлов, которые состоят не только из функций
19.13. Заключение
ГЛАВА 20
20.1. Команда shift
20.1.1. Простой способ использования команды shift
20.1.2. Последний параметр командной строки
20.1.3. Преобразования файла с помощью команды shift
20.2. Команда getopts
20.2.2. Принцип работы команды getopts
20.2.3. Указание значений опций с помощью команды getopts
20.2.4. Доступ к значениям
20.2.5. Использование команды getopts для преобразования файлов
20.3. Заключение
ГЛАВА 21
21.1. Применение команды tput
21.1.1. Строчный поток вывода данных
21.1.2. Числовой вывод
21.1.3. Поток вывода булевых данных
21.2. Работа с командой tput
21.2.2. Применение булевого потока вывода
21.2.5. Изменение положения курсора
21.2.6. Центрирование отображаемого текста
21.2.7. Определение атрибутов терминала
21.2.9. Применение различных цветов
21.3. Заключение
ГЛАВА 22
22.3. Обновление записей
22.5. Заключение
ГЛАВА 23
23.1.4. Регистр символов
23.1.5. Циклы for
23.1.6. Команда echo
23.3. Заключение
ГЛАВА 24
24.1. Полный список команд, встроенных в интерпретатор shell
24.1.1. Команда pwd
24.1.2. Команда set
24.1.3. Команда times
24.1.4. Команда type
24.1.5. Команда ulimit
24.1.6. Команда wait
24.2. Заключение
Часть 5
ГЛАВА 25
25.1 Быстрый метод формирования файла
25.2. Скоростной способ вывода документа на печать
25.3. Автоматизация меню
ГЛАВА 26
26.1. Создание регистрационных файлов
26.1.1. Применение команды date для создания журнальных файлов
26.1.2. Создание уникальных временных файлов
26.2. Сигналы
26.2.2. Обнаружение сигнала
26.3. Команда trap
26.3.1. Перехват сигналов и выполнение действий
26.3.2. Захват сигнала и выполнение действий
26.3.4. Игнорирование сигналов
26.4. Команда eval
26.4.2. Присвоение значения имени переменной
26.5. Команда logger
26.5.1. Использование команды logger
26.6. Заключение
ГЛАВА 27
27.2. Сценарий backup_gen
27.5. Сценарий logroll
27.7. Заключение
ГЛАВА 28
28.1. Определение наличия каталогов уровня выполнения
28.2. Уточнение текущего уровня выполнения
28.3. Ускорение работы с помощью файла inittab
28.4. Переходим к уровням выполнения
28.4.1. Различные уровни выполнения
28.4.2. Формат сценария уровня выполнения
28.4.3. Инсталляция сценария уровня выполнения
28.5. Использование файла inittab для запуска приложений
28.6. Другие методы, применяемые для запуска и останова служб
28.7. Заключение
ГЛАВА 29
29.1. Определение Web–страницы
29.2. Протокол cgi
29.3. Подключение к Web–серверу
29.4. Сценарии cgi и HTM
29.4.1. Базовый сценарий cgi
29.4.3. Использование SSI
29.4.4. Счетчик количества посещений
29.4.5. Вывод на печать текущих настроек Web–среды с помощью ссылки
29.4.6. Другие общие переменные среды
29.5. Введение в методы get и post
29.5.3. Заполнение списка
29.6. Заключение
ПРИЛОЖЕНИЕ Б
basename
cat
compress
cp
diff
dircmp
dirname
du
head
mkdir
more
nl
pwd
rm
rmdir
script
shutdown
sleep
strings
touch
tty
uname
uncompress
wait
wc
whereis