Ответ
sh (Bourne Shell) и zsh (Z Shell) — это командные оболочки, но zsh является расширенной, более удобной для пользователя версией.
sh (Bourne Shell)
- Статус: Стандартная, минималистичная оболочка, соответствующая POSIX.
- Использование: Часто используется для системных скриптов из-за гарантированной переносимости.
- Особенности: Базовый функционал, простой синтаксис, мало возможностей для интерактивной работы.
zsh (Z Shell)
- Статус: Расширенная, обратно совместимая с
bashиshоболочка. - Использование: Популярна как интерактивная оболочка для разработчиков и администраторов.
- Ключевые улучшения:
- Умное автодополнение: Дополняет не только команды и файлы, но и опции, аргументы команд, имена процессов и т.д.
- Глобализация (Globbing): Мощные шаблоны поиска файлов.
# Найти все .py файлы в подкаталогах (рекурсивно) ls **/*.py # Найти только каталоги, начинающиеся на 'log' ls log*(/) - Темы и плагины: Экосистема вроде Oh My Zsh предоставляет сотни тем и плагинов (git, docker, kubectl), которые показывают статус прямо в приглашении командной строки.
- Исправление опечаток: Предлагает исправления для неправильно введенных команд или путей.
- Разделенная история команд: Можно искать в истории по части команды.
Практический вывод: Для написания переносимых скриптов используйте #!/bin/sh и синтаксис POSIX. Для повседневной интерактивной работы zsh с фреймворком типа Oh My Zsh значительно повышает продуктивность.