Любопытные приемы работы с Zsh

0
461
views

Перевод статьи «Zsh Tricks to Blow your Mind».

Photo by Mandy Henry on Unsplash

Мы в 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).

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here