Введение в Bash

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

Bash (Bourne Again SHell) — интерпретатор командной строки по умолчанию в большинстве дистрибутивов Linux и macOS, сочетающий интерактивную работу в терминале с полнофункциональным языком написания скриптов, используемым для автоматизации, системного администрирования и DevOps-задач. Bash расширяет оригинальный Bourne sh, добавляя массивы, арифметику, сопоставление шаблонов и средства управления процессами, что делает его наиболее широко используемой средой написания shell-скриптов в мире. Скрипт Bash начинается со строки shebang (#!/bin/bash), за которой следуют команды, выполняемые ядром Linux последовательно, что позволяет инженерам автоматизировать резервное копирование, развёртывания и обработку данных прямо из командной строки. Изучение Bash открывает прямой доступ к инструментарию Linux — grep, awk, sed, find и сотням других утилит, — которые можно комбинировать через каналы и перенаправления. Будь то написание первого скрипта автоматизации или разработка многоступенчатого CI/CD-конвейера, Bash остаётся универсальным связующим языком 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)

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