Шпаргалка по zsh
5.9Основные шорткаты, трюки и привязки клавиш zsh для вашего терминала
Русский: 2026-03-29
zsh — shell по умолчанию на macOS и уверенно набирает популярность на Linux, и не зря: он берёт всё, что делает bash, и добавляет более умное автодополнение, продвинутый globbing и экосистему плагинов, способную превратить ваш терминал в нечто действительно приятное для использования. Если вы пользовались zsh, не зная об этом (спасибо, macOS Catalina), вы ездили на спорткаре на первой передаче.
Настоящая сила zsh — в его строковом редакторе. Те комбинации Ctrl и Alt — не случайные, они пришли из Emacs-стиля редактирования, который используется по умолчанию. Каждый раз, когда вы нажимаете Ctrl-a, чтобы перейти к началу строки, вы используете ту же привязку, которую пользователи Emacs используют с 1970-х. Можно также переключиться на vi mode, если это ваше, но начните со стандартных настроек. Они удивительно хороши, когда вы их усвоите.
Эта шпаргалка фокусируется на том, что сделает вас быстрее прямо сейчас: навигация по строке, чтобы перестать тянуться к стрелкам, трюки с историей, спасающие от повторного набора команд, паттерны globbing, позволяющие zsh искать файлы за вас, и достаточно знаний об oh-my-zsh для настройки продуктивного окружения без утопания в опциях. Мы пропускаем 400-страничное руководство и оставляем то, что окупается ежедневно.
Навигация по строке
Это работает в стандартном Emacs mode (который вы используете, если не переключились явно на vi). Зажгите это в мышечной памяти, и ваши руки никогда не покинут домашний ряд.
История
Ваша история команд — золотая жила. zsh хранит тысячи команд по умолчанию, и эти шорткаты помогут добывать их эффективно, вместо того чтобы жать стрелку вверх 47 раз.
Globbing
Вот где zsh оставляет bash далеко позади. Globbing в zsh настолько мощный, что может заменить find для большинства ежедневных задач поиска файлов. Без pipe, без subshell — просто паттерны.
Алиасы
Алиасы — способ сделать zsh по-настоящему своим. Вот паттерны, которые стоит знать — конкретные алиасы на ваш выбор, но эти формы дают максимальную продуктивность.
Привязки клавиш
Строковый редактор zsh (zle) полностью настраиваемый. Можно перепривязать любую клавишу к любому действию, и есть сотни встроенных виджетов на выбор.
Vi Mode
Если вы пользователь vim/nvim, vi mode сделает zsh как дома. Вы получите normal mode, insert mode и большинство уже знакомых движений.
Основы oh-my-zsh
oh-my-zsh — самый популярный фреймворк для zsh, и он это заслужил. Но с 300+ плагинами легко раздуть конфиг. Вот плагины и паттерны, которые действительно стоит загружать.
Советы
Добавьте setopt AUTO_CD в ваш ~/.zshrc, и вы сможете переходить по директориям, просто набирая путь — без cd. Наберите .. чтобы подняться на уровень, ~/projects чтобы перейти домой. Привыкнув, набирать cd ощущается как пустая трата нажатий.
Плагин zsh-autosuggestions — пожалуй, самый большой прирост продуктивности, который можно добавить. Он показывает призрачные подсказки по мере набора на основе истории. Нажмите стрелку вправо, чтобы принять всю подсказку, или Alt-f для принятия только следующего слова. Установите и удивитесь, как жили без этого.
Используйте Ctrl-x Ctrl-e (после привязки через autoload -z edit-command-line && zle -N edit-command-line && bindkey '^X^E' edit-command-line), чтобы открыть текущую командную строку в вашем $EDITOR. Длинные команды с pipe и циклами гораздо удобнее составлять в nvim, чем на одной строке терминала.
Настройте историю правильно. Добавьте это в ~/.zshrc, и вы никогда не потеряете команду:
HISTSIZE=50000, SAVEHIST=50000, setopt SHARE_HISTORY (синхронизация между сессиями), setopt HIST_IGNORE_DUPS (пропуск последовательных дубликатов), setopt HIST_IGNORE_SPACE (добавьте пробел в начале, чтобы не записывать в историю — удобно для команд с секретами).
Рекурсивный globbing в zsh (**/*) достаточно мощный, чтобы заменить базовое использование find. Хотите все TypeScript-файлы? ls **/*.ts. Хотите удалить все .DS_Store? rm -f **/.DS_Store. Набирается быстрее и запоминается проще, чем find . -name "*.ts".
Если комбинации с Alt не работают в вашем терминале (часто бывает на macOS), зайдите в настройки терминала и включите «Use Option as Meta key». В iTerm2 это в Profiles > Keys. В Terminal.app — Settings > Profiles > Keyboard. Без этого Alt-f, Alt-b и Alt-d мертвы при рождении.
Суффиксные алиасы — недооценённая фича zsh. Добавьте alias -s py=python3 в ~/.zshrc, и вы сможете запускать Python-скрипт, просто набрав его имя: script.py вместо python3 script.py. Работает для любого расширения — привяжите .json к jq ., .md к вашему просмотрщику markdown, .log к less.