🐚 Bash: чёрный экран, который правит миром

Кратко: Bash — это язык, на котором серверы разговаривают с людьми. Без графических кнопок, без мышки, только чёрный экран и мигающий курсор. Но именно он управляет облаками, запускает ваши сайты и чинит сломанное, когда всё остальное уже не помогает.

▫️Основные этапы развития: · 1977 г. — Стивен Борн создаёт sh (Bourne shell) для Unix. Прародитель всех современных оболочек · 1989 г. — Брайан Фокс из Free Software Foundation пишет Bash (Bourne Again SHell) как свободную замену sh. Название — игра слов: “Bourne” и “born again” (рождённый заново) · 1990–2000-е — Bash становится стандартной оболочкой во всех дистрибутивах Linux и в macOS (до Catalina). Серверный мир говорит на bash · 2014 г.Shellshock — критическая уязвимость в bash, которой больше 20 лет. Всё вспоминают, что на bash держится пол-интернета, и срочно патчат · 2020–2026 гг. — Bash живёт и процветает, несмотря на моду на Python и Go. Никто не пишет на нём больших систем, но для автоматизации, деплоя и спасения серверов он незаменим

▫️Как устроен (максимально просто): · Интерпретатор — вы пишете команду, bash её выполняет. Либо сразу, либо сохраняете в файл — получается скрипт · Переменные — name=“Vasya”, echo $name. Всё просто · Циклы и условия — if, for, while. Как в обычных языках, только со странными скобками · Пайпы — магия bash. Можно передавать вывод одной программы на вход другой: cat log.txt | grep error | sort | uniq -c

▫️Почему bash до сих пор жив: · Он везде — на каждом сервере, в каждом контейнере, даже в минимальной сборке Linux. Не надо ничего устанавливать · Мощь одной строки — то, что на Python займёт 10 строк и библиотеку, на bash пишется через пайпы за 5 секунд · Скорость прототипирования — нужно быстро починить сервер? Пара команд в консоли, и готово. Писать программу некогда · DevOps-стандарт — все Dockerfile, CI/CD-скрипты, задачи автоматизации пишутся на bash. Если не знаешь bash, ты не DevOps

▫️Культурный феномен: · “Барабанная дробь по клавишам” — образ админа, который сидит в чёрном окне и что-то колдует. Это он в bash работает · Мем: “Почему админы любят Linux? Потому что там можно удалить всё одной командой rm -rf /” · Тысячи шуток про бесконечные циклы, случайный > вместо >> и забытый -r в rm · Символ власти над системой: если ты открыл терминал и что-то там печатаешь — значит, ты знаешь что-то, чего не знают другие

▫️Практические примеры (которые реально пригодятся): 🔹 Найти и убить зависший процесс bash ps aux | grep python | grep -v grep | awk ‘{print $2}’ | xargs kill -9 🔹 Заархивировать логи старше 7 дней bash find /var/log -name “*.log” -mtime +7 -exec gzip {} \; 🔹 Мониторинг доступности сайта bash while true; do curl -s -o /dev/null -w “%{http_code}\n” https://google.com; sleep 1; done 🔹 Создать 100 файлов с именем по шаблону bash for i in {1…100}; do touch “file_$i.txt”; done 🔹 Проверить свободное место на всех серверах из списка bash for server in $(cat servers.txt); do ssh $server “df -h /”; done

▫️Современное положение: · Жив и здоров. Его не заменят ни Python, ни Go, ни что угодно ещё для быстрых админских задач · Усложняется экосистема: появились баш-фреймворки (bashly), линтеры (shellcheck), менеджеры пакетов (basher) · Основные конкуренты — Zsh (красивее для людей), Fish (удобнее для интерактива), но в скриптах и на серверах — только bash · Без баша не работает CI/CD, не собираются образы, не стартуют контейнеры. Он как воздух — пока есть, не замечаешь

#bash #linux #devops #автоматизация #терминал #скрипты

🐚 Bash: чёрный экран, который правит миром | Сетка — социальная сеть от hh.ru