Что такое Bash

Тема дорожной карты · Bash

Bash (Bourne Again SHell) — командная оболочка по умолчанию в большинстве дистрибутивов Linux и macOS, наиболее широко используемая для написания скриптов, автоматизации и интерактивной работы в терминале на Unix-подобных системах. Bash является надмножеством стандарта оболочки POSIX sh и добавляет такие возможности, как массивы, расширенные тесты [[ ]], раскрытие фигурных скобок, арифметику (( )) и подстановку процессов, что делает его значительно мощнее оригинального Bourne Shell для написания скриптов и автоматизации Linux. Написанный на C и впервые выпущенный в 1989 году Брайаном Фоксом для проекта GNU, Bash является открытым программным обеспечением, совместимым с POSIX в базовом наборе функций, и доступен практически в каждом дистрибутиве Linux, WSL на Windows и macOS. Shell-скрипт Bash — это обычный текстовый файл, содержащий последовательность команд Bash, выполняемых построчно интерпретатором Bash — эта простота делает написание shell-скриптов основным инструментом для системного администрирования, DevOps-автоматизации, CI/CD-конвейеров и автоматизации задач на серверах Linux. Понимание того, что такое Bash и как он вписывается в экосистему Linux, — это первый и необходимый шаг для изучения написания shell-скриптов, продуктивной работы в командной строке и автоматизации Linux.

Как это работает

Что такое Bash — Bourne-Again SHell, дефолтный login shell на большинстве Linux-дистрибутивов. Это и интерактивный интерпретатор, и скриптовый язык. Скрипты начинаются с #!/usr/bin/env bash (или #!/bin/bash для явного пути). Shell парсит ввод в токены, делает расширения (параметры, command substitution, glob), исполняет команды, ловит exit-коды. Современные альтернативы (zsh, fish) хороши интерактивно, но bash остаётся lingua franca для скриптов.

Когда применять

Bash — для shell-автоматизации, которая должна работать на любом Linux/macOS-боксе (zsh+ не гарантирован). #!/usr/bin/env bash лучше #!/bin/sh, когда нужны bash-фичи (массивы, [[ ]], process substitution). Переходите на Python/Go, когда скрипт >~200 строк, нужны структурированные данные или надёжная обработка ошибок. Всегда set -euo pipefail + IFS=$'\n\t' в начале.

Типичные ошибки

Ловушки Что такое Bash: путаница bash и sh (POSIX sh беднее — dash на Debian дефолтный /bin/sh); не обрабатывают ошибки (дефолт продолжает после сбоев); bash-скрипты с расчётом на GNU coreutils (sed -i "" vs sed -i) ломаются на macOS; алиасы внутри скриптов (фича интерактивного shell).

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…