Перевод статьи «Zsh Tricks to Blow your Mind».
Мы в UNIX-программировании часто говорим об оболочках, терминалах и интерфейсах командной строки. Bash, пожалуй, самая известная из оболочек, но есть и другие варианты, причем тоже весьма популярные. Например, Zsh или Z shell («оболочка Z»). Из этой статьи вы узнаете о некоторых приемах работы в этой оболочке, способных оптимизировать разработку.
Что такое Zsh?
Zsh расширяет возможности Bourne Shell (оболочки Борна, sh), предлагая более новый функционал и большую поддержку плагинов и тем. Начиная с MacOS Catalina (2019 год), Zsh стала дефолтной оболочкой в машинах Mac.
Установка Zsh
Вы можете установить Zsh при помощи Homebrew и команды brew install zsh.
И чтобы два раза не вставать, можно сразу же установить самый популярный плагин Zsh — oh-my-zsh. В нем содержится много встроенных плагинов и тем. Для установки используйте следующий скрипт:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.s
9 не слишком известных приемов работы с Zsh
1. Команда take
Команда take
создает новую директорию и сразу же переносит вас в нее. В bash для этого нужно вводить две команды: mkdir
и cd
. Если нужно, take
может создать и промежуточные директории.
2. Поиск в истории
Вообще при работе в терминале нажатие стрелки «вверх» перебирает команды, использованные ранее, начиная с самой недавней. В Zsh можно перебирать историю использования конкретной команды, например mkdir
.
А при помощи сочетания клавиш Ctrl+r
можно перебирать историю ввода конкретной подстроки. Здесь также сперва идут самые недавние результаты.
3. Смена директории
Команда cd
автоматизирована. Чтобы перейти в другую директорию, достаточно ввести имя этой директории, вводить команду cd
не нужно.
4. Массовое переименование файлов
При помощи команды zmv можно одновременно менять имена многих файлов. Например, я скачала множество изображений для модели машинного обучения и хочу дать им более подходящие имена (epcot-1.jpg, epcot-2.jpg, epcot-3.jpg… вместо 1.jpg, 2.jpg, 3.jpg…). Это можно сделать при помощи команды zmv '(*).(jpg|jpeg)' 'epcot-$1.$2'
.
Чтобы проверить ожидаемый результат до запуска команды, можно добавить опцию -n
и запустить zmv -n '(*).(jpg|jpeg)' 'epcot-$1.$2'
.
Установка самой команды — autoload zmv.
Что означает эта команда? (*).(jpg|jpeg)
находит в директории каждый файл, кончающийся на .jpg или .jpeg. Затем epcot-$1.$2
велит отредактировать каждое имя файла, вставляя epcot-
перед исходным именем файла (оно представлено как $1
) и расширением (представлено как $2
).
(У нас есть статьи о регулярных выражениях, например «(Не бойтесь) Regexs: практическое руководство по регулярным выражениям», — прим. ред. Techrocks).
5. Командная строка как калькулятор — команда zcalc
6. Огромный потенциал плагинов
Как уже упоминалось, oh-my-zsh поставляется со множеством встроенных плагинов. Чтобы включить, например, плагины npm и sudo, нужно добавить в файл ~.zshrc
строку plugins=(npm sudo)
.
Из наиболее выдающихся стоит отметить плагины:
npm — включает автодополнение для npm-команд.
sudo — как вы, вероятно, догадываетесь, этот плагин добавляет sudo
к команде даже после ее ввода. Для этого нужно дважды нажать esc.
zsh-autosuggestions — предлагает варианты команд по мере ввода, ориентируясь на историю предыдущих команд и принятых ранее вариантов.
web-search дает возможность открывать поисковик прямо в командной строке. Запускаете google <добавить-нужный-запрос>
, и получаете поиск этого запроса в Google. В примере ниже показан поиск по запросу Serena Williams.
git — множество псевдонимов для git-команд, благодаря которым можно вводить меньше текста и экономить время. Зачем печатать git add
, если можно ввести просто ga
? Другие псевдонимы можно посмотреть здесь.
7. Возможность отложить команду
При помощи сочетания клавиш Ctrl+q
можно «отложить» команду, которую уже набрали, и вернуться к приглашению командной строки, чтобы набрать и выполнить другую команду. После выполнения второй команды первая возвращается из отложки, и вы можете ее запустить.
Это удобно для случаев, когда вы набрали команду, но вспомнили, что до нее следует выполнить другую.
8. Легкое редактирование команды после набора в командной строке
Если вы набрали или вставили длинную команду и решили отредактировать ее перед выполнением, Ctrl+x+e
откроет ее в редакторе (обычно — vi, но в переменной $EDITOR
можно задать любой реактор).
9. Очистка окна терминала
Вместо выполнения команды clear можно просто нажать Ctrl+l
.
(Работает и в bash, — прим. ред. Techrocks).
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]