Для системного администратора оболочка (shell) — это не утилита, а среда, в которой проходит большая часть рабочего дня. Часто работа идёт на удалённых серверах, например на виртуальных машинах UltraVDS, где удобная оболочка экономит часы настройки и отладки. Здесь настраиваются сервисы, правятся конфиги, запускаются скрипты и отлавливаются ошибки, и от того, как она себя ведёт, напрямую зависит скорость работы.
Пока задачи простые, хватает и того, что стоит по умолчанию. Но со временем начинаешь замечать мелочи: неудобное автодополнение, непредсказуемая история, странное поведение алиасов. Один раз промахнулся с rm, другой раз команда не сохранилась — и вот ты уже ищешь альтернативу.
Сегодня чаще всего выбор стоит между Bash, Zsh и Fish. Все они решают одну и ту же задачу — запуск команд — но делают это с разной философией. Разберёмся, как они устроены, где их сильные и слабые стороны, и какую оболочку стоит выбрать под конкретные задачи.