Advanced Bash-Scripting Guide
bash (от англ. Bourne again shell, каламбур «Born again» shell — «возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.
Bash — это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение имён файлов и директорий, подстановку вывода результата команд, переменные, контроль за порядком выполнения, операторы ветвления и цикла. Ключевые слова, синтаксис и другие основные особенности языка были заимствованы из sh. Другие функции, например, история, были скопированы из csh и ksh. Bash в основном удовлетворяет стандарту POSIX, но с рядом расширений[2].
Название «bash» является акронимом от Bourne-again-shell («ещё-одна-командная-оболочка-Борна») и представляет собой игру слов: Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом. Фамилия Bourne (Борн) перекликается с английским словом born, означающим «родившийся», отсюда: рождённая-вновь-командная оболочка.
В сентябре 2014 года в bash была обнаружена широко эксплуатируемая уязвимость Bashdoor.
Содержание
- 1 Часть первая. Ввведение
- 2 Часть вторая. Основы
- 3 Часть третья. Углублённый материал
- 3.1 К вопросу о переменных
- 3.2 Циклы и ветвления
- 3.3 Внутренние команды
- 3.4 Внешние команды, программы и утилиты
- 3.4.1 Базовые команды
- 3.4.2 Более сложные команды
- 3.4.3 Команды для работы с датой и временем
- 3.4.4 Команды обработки текста
- 3.4.5 Команды для работы с файлами и архивами
- 3.4.6 Команды для работы с сетью
- 3.4.7 Команды управления терминалом
- 3.4.8 Команды выполнения математических операций
- 3.4.9 Прочие команды
- 3.5 Команды системного администрирования
- 3.6 Подстановка команд
- 3.7 Арифметические подстановки
- 3.8 Перенаправление ввода/вывода
- 3.9 Встроенные документы
- 4 Часть четвёртая. Материал повышенной сложности
- 4.1 Регулярные выражения
- 4.2 Подоболочки или Subshells
- 4.3 Ограниченный режим командной оболочки
- 4.4 Подстановка процессов
- 4.5 Функции
- 4.6 Псевдонимы
- 4.7 Списки команд
- 4.8 Массивы
- 4.9 Файлы
- 4.10 /dev и /proc
- 4.11 /dev/zero и /dev/null
- 4.12 Отладка сценариев
- 4.13 Необязательные параметры(ключи)
- 4.14 Широко распространенные ошибки
- 4.15 Стиль программирования
- 4.16 Разное
- 4.16.1 Интерактивный и неинтерактивный режим работы
- 4.16.2 Сценарии-обертки
- 4.16.3 Операции сравнения: Альтернативные решения
- 4.16.4 Рекурсия
- 4.16.5 "Цветные" сценарии
- 4.16.6 Оптимизация
- 4.16.7 Разные советы
- 4.16.8 Проблемы безопасности
- 4.16.9 Проблемы переносимости
- 4.16.10 Сценарии командной оболочки под Windows
- 4.17 Bash, версия 2
- 5 Замечания и дополнения
- 6 Библиография
- 6.1 Дополнительные примеры сценариев
- 6.2 Справочная информация
- 6.3 Маленький учебник по Sed и Awk
- 6.4 Коды завершения, имеющие предопределённый смысл
- 6.5 Подробное введение в операции ввода-вывода и перенаправление ввода-вывода
- 6.6 Системные каталоги
- 6.7 Локализация
- 6.8 История команд
- 6.9 Пример файла .bashrc
- 6.10 Преобразование пакетных (*.bat) файлов DOS в сценарии командной оболочки
- 6.11 Упражнения
- 6.12 Хронология
- 6.13 Авторские права