Bash (оболочка Unix)

  • История и разработка

    • Bash разработан Брайаном Фоксом для проекта GNU в 1989 году.  
    • Первоначально назывался Bourne-Again SHell, но позже переименован в Bash.  
    • Разработан как 100% свободная альтернатива Bourne shell.  
  • Распространение и популярность

    • Bash стал популярной оболочкой для Linux и других операционных систем.  
    • Доступен в Windows, BeOS, Haiku и других платформах.  
    • Используется в качестве оболочки входа в систему по умолчанию в различных дистрибутивах Linux.  
  • Особенности и функции

    • Работает в текстовом окне, поддерживает выполнение команд из файлов (shell-скриптов).  
    • Включает богатый набор функций, таких как интерактивная оболочка, неинтерактивная оболочка, интерфейс командной строки, коды состояния выхода и другие.  
    • Поддерживает асинхронное выполнение, режим переносимости оболочки, комментарии с хэштегом и другие.  
  • Безопасность и уязвимости

    • В 2014 году обнаружена ошибка безопасности Shellshock, связанная с передачей определений функций в подоболочки.  
    • Ошибка была исправлена, но вызвала беспокойство среди пользователей.  
  • Синтаксис и совместимость

    • Синтаксис команд Bash является надмножеством синтаксиса оболочки Bourne.  
    • Включает идеи из оболочек Korn и C, такие как редактирование командной строки, история команд и другие.  
    • Поддерживает завершение работы с командной строкой и обработку сигналов.  
  • Основные функции Bash

    • Выполнение целочисленных вычислений без запуска внешних процессов с помощью команды ((…)) и синтаксиса переменной $((…))  
    • Перенаправление ввода-вывода с помощью оператора &>  
    • Замена процессов с использованием синтаксиса <(команда) и >(command)  
    • Поддержка документов here с помощью оператора <<<  
    • Сопоставление регулярных выражений в Bash 3.0  
    • Поддержка ассоциативных массивов в Bash 4.0  
  • Расширение фигурных скобок

    • Генерирует альтернативные комбинации  
    • Не сортирует результаты, порядок слева направо сохраняется  
    • Не рекомендуется использовать в переносимых сценариях  
  • Сценарии запуска

    • Bash выполняет команды в файлах dot  
    • Файлы dot обычно не имеют разрешения на выполнение и директивы интерпретатора  
    • Пример совместимого с устаревшими версиями ~/.bash_profile  
  • Проблемы с операционной системой

    • Сценарии запуска системы Bash могут вызывать проблемы  
    • Проблемы с файлами пользователя root и файлами-скелетами  
    • Сценарии запуска X window system могут влиять на пользовательские сценарии  
  • Мобильность

    • Bash точно соответствует стандарту POSIX 1003.2 с параметром –posix  
    • Некоторые функции Bash отсутствуют в POSIX  
    • Использование checkbashisms и shellcheck для проверки на башизмы  
  • Сочетания клавиш

    • Bash использует GNU Readline для сочетаний клавиш  
    • Vi-привязки можно включить с помощью set -o vi  
  • Управление процессами

    • Пакетный и параллельный режимы выполнения команд  
    • Фоновое выполнение с символом &  
    • Остановка и возврат управления с помощью Ctrl+z  
    • Список процессов с помощью заданий  
    • Изменение состояния процессов с помощью bg и fg  
    • Команда kill для преждевременного завершения процесса  
  • Условное выполнение

    • Разделители команд “условное выполнение”  
    • Поддержка if …;then …;else …;fi и case $в $pattern)…;;$other_pattern)…;; esac  
  • Сообщение об ошибке

    • Команда bashbug для сообщения об ошибках  
    • Форма для заполнения отправляется по почте сопровождающим Bash  
  • Программируемое завершение

    • Поддержка программируемого завершения с помощью complete, compopt и compgen  
    • Команды complete и compopt определяют отображение аргументов в readline  
    • Выполнение команды или опции активируется нажатием клавиши Tab  
  • Происхождение названия

    • Название “the Bourne Again SHell” является каламбуром, основанным на имени Стивена Борна и идее деторождения.  
    • Возможно, намек на реинкарнацию, “рождение свыше” или обновление.  
  • Значение аббревиатуры “bash”

    • “bash” означает “наносить сильный удар”, что может рассматриваться как гиперболический образ разочарования.  
    • Это название можно рассматривать как пример словесной иронии или случайного намека.  
  • История и развитие bash

    • Bash изначально был основан на грамматиках популярных оболочек Unix.  
    • С годами разработка сделала его грамматику более удобной для пользователя.  
    • Bash стал оболочкой по умолчанию в большинстве операционных систем Linux и Unix.  
  • Документация и ресурсы

    • Bash основан на POSIX и последующих стандартах.  
    • Справочная страница Linux и руководство GNU предоставляют информацию о bash.  
    • Встроенные команды можно найти с помощью команд help, справка или man builtins.  
  • Уязвимости и безопасность

    • В 2014 году была обнаружена уязвимость Shellshock, которая привела к атакам по всему Интернету.  
    • Исправления для ошибок были доступны вскоре после их обнаружения.  
  • Лицензирование и версии

    • Начиная с версии 4.0, bash лицензируется под GPL-3.0 или более поздней.  
    • Версии доступны для Windows 10 и 11, Solaris 11, BeOS и macOS.  
  • История выпуска и рекомендации

    • Bash был оболочкой по умолчанию в BeOS и macOS до версии 10.15.  
    • Рекомендуется дальнейшее чтение для более глубокого понимания bash.  

Полный текст статьи:

Bash (оболочка Unix)

Оставьте комментарий