Глава 3 · Ваша первая программа на Python

Семейство командных оболочек

cmd.exe, PowerShell, Bash, Zsh, Fish — коротко о том, где вы их встретите и что это вообще такое.

Раз уж мы заговорили про shell — коротко познакомимся с самыми распространёнными. Цель этого раздела не в том, чтобы выучить синтаксис каждой из них, а в том, чтобы узнавать их по имени и понимать, где вы их встретите.

ShellГде встречаетсяЧто это
cmd.exeWindows (классическая, «Командная строка»)Старейшая командная оболочка Windows; всё ещё встречается в старых инструкциях и корпоративных системах
PowerShellWindows (современная по умолчанию)Более мощная оболочка от Microsoft с объектно-ориентированным подходом к командам; то, что мы использовали в главе 2 для Windows
BashLinux (часто по умолчанию), macOS (более старые версии)Один из самых распространённых shell в мире — почти любой сервер и учебник её знает
ZshmacOS (по умолчанию с 2019 года), популярна на LinuxПохожа на Bash, но с более удобными возможностями «из коробки» (автодополнение, темы оформления)
FishLinux/macOS (по выбору пользователя)Дружелюбная к новичкам оболочка с подсказками и подсветкой прямо во время набора команды
PySHLinux/macOS/Windows (устанавливается отдельно)Python-first оболочка — вместо собственного мини-языка команд использует настоящий Python (раздел 3.4)
Зачем Python-разработчику вообще это знать
Вы не обязаны учить синтаксис всех shell — но полезно узнавать их по приглашению и названию, когда встречаете в чужих статьях, логах CI/CD или инструкциях по установке. Часто инструкция говорит «выполните в Bash» или «в PowerShell» — и теперь вы точно знаете, что имеется в виду.
Логотип PySH
PySH — последняя строка таблицы выше, и ей посвящён следующий раздел: единственная оболочка здесь, написанная как Python-first альтернатива, а не как ещё один вариант классического shell-языка.

Мы не будем подробно разбирать синтаксис каждой оболочки — это не входит в задачи курса Python. Вместо этого в следующем разделе познакомимся с PySH — оболочкой, которая устроена иначе: вместо своего мини-языка команд она использует настоящий Python.