Advanced Bash-Scripting Guide

Материал из VAAL-WIKI
Версия от 12:28, 22 июня 2017; Vaal (обсуждение | вклад) (Новая страница: «'''bash''' (от англ. '''B'''ourne '''a'''gain '''sh'''ell, каламбур «Born again» shell — «возрождённый» shell) — усоверш…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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.

Содержание

Часть первая. Ввведение

Зачем необходимо знание языка Shell?

Для начала о Sha-Bang

Запуск сценария

Упражнения

Часть вторая. Основы

Служебные символы

Переменные и параметры. Введение.

Подстановка переменных

Присваивание значений переменным

Переменные Bash не имеют типа

Специальные типы переменных

Кавычки

Завершение и код завершения

Проверка условий

Конструкции проверки условий

Операции проверки файлов

Операции сравнения

Вложенные условные операторы if/then

Проверка степени усвоения материала

Операции и смежные темы

Операторы

Числовые константы

Часть третья. Углублённый материал

К вопросу о переменных

Внутренние переменные

Работа со строками

Подстановка параметров

Объявление переменных: declare и typeset

Косвенные ссылки на переменные

$RANDOM: генерация псевдослучайных целых чисел

Двойные круглые скобки

Циклы и ветвления

Циклы

Вложенные циклы

Управление ходом выполнения цикла

Операторы выбора

Внутренние команды

Команды управления заданиями

Внешние команды, программы и утилиты

Базовые команды

Более сложные команды

Команды для работы с датой и временем

Команды обработки текста

Команды для работы с файлами и архивами

Команды для работы с сетью

Команды управления терминалом

Команды выполнения математических операций

Прочие команды

Команды системного администрирования

Подстановка команд

Арифметические подстановки

Перенаправление ввода/вывода

С помощью команды exec

Перенаправление для блоков кода

Область применения

Встроенные документы

Часть четвёртая. Материал повышенной сложности

Регулярные выражения

Краткое введение в регулярные выражения

Globbing -- Подстановка имен файлов

Подоболочки или Subshells

Ограниченный режим командной оболочки

Подстановка процессов

Функции

Сложные функции и сложности с функциями

Локальные переменные

Рекурсия без локальных переменных

Псевдонимы

Списки команд

Массивы

Файлы

/dev и /proc

/dev

/proc

/dev/zero и /dev/null

Отладка сценариев

Необязательные параметры(ключи)

Широко распространенные ошибки

Стиль программирования

Неофициальные рекомендации по оформлению сценариев

Разное

Интерактивный и неинтерактивный режим работы

Сценарии-обертки

Операции сравнения: Альтернативные решения

Рекурсия

"Цветные" сценарии

Оптимизация

Разные советы

Проблемы безопасности

Проблемы переносимости

Сценарии командной оболочки под Windows

Bash, версия 2

Замечания и дополнения

От автора

Об авторе

Куда обращаться за помощью

Инструменты, использовавшиеся при создании книги

Аппаратура

Программное обеспечение

Благодарности

Библиография

Дополнительные примеры сценариев

Справочная информация

Маленький учебник по Sed и Awk

Sed

Awk

Коды завершения, имеющие предопределённый смысл

Подробное введение в операции ввода-вывода и перенаправление ввода-вывода

Системные каталоги

Локализация

История команд

Пример файла .bashrc

Преобразование пакетных (*.bat) файлов DOS в сценарии командной оболочки

Упражнения

Анализ сценариев

Создание сценариев

Хронология

Авторские права