3 интерактивных инструмента для управления командами в Linux

Сложно запоминать команды Linux. Мы наизусть знаем те, которые используются для повседневных задач, но склонны забывать длинные команды и скрипты, которые выполняли в прошлом.

Было бы здорово иметь какую-нибудь подсказку. Это бы позволило сосредоточиться на решаемой задаче, а не пытаться запомнить команды.

Я собрала три удобных инструмента, которые помогут с использованием команд Linux. С их помощью вы с легкостью сможете решать такие задачи, как поиск команды из истории, прямое выполнение однострочников из памятки и так далее.

Приступим!

1. Peco

Peco  —  это простой в использовании интерактивный инструмент фильтрации. Он похож на grep, но имеет больше возможностей, поскольку позволяет печатать в процессе поиска.

Peco может пригодиться во многих случаях. Представьте, что хотите найти файлы, логи, процессы и так далее. С ним вам не нужно запоминать сложные комбинации команд. Достаточно совместить основную команду (например, ls, history, find и так далее) с peco. После этого достаточно начать вводить имя команды, и Peco отфильтрует по ней результаты. 

Установка

Для установки Peco под Ubuntu выполните:

sudo apt-get install peco

Подробности читайте в документации.

Демо

В качестве примера мы отфильтруем историю, чтобы найти, какие команды curl выполнялись в прошлом. Выглядеть это будет так:

Использование Peco для истории

Как вы могли заметить, он поддерживает запросы в стиле AND. Я ввел “medi” после команды curl, и инструмент нашел в результатах curl https://medium.com. Таким образом можно быстрее получать более точные результаты.

Для выхода из окна запроса нажмите Ctrl + C.

Разберем еще один пример, где мы совмещаем peco и netstat, чтобы отфильтровать порты:

netstat с peco

Это может пригодиться, если вы точно не знаете, какие процессы ищете. Их можно запрашивать интерактивно.

Peco поддерживает следующие виды фильтров: IgnoreCase, CaseSensitive, SmartCase, Regexp и Fuzzy. Предустановленный не чувствителен к регистру (IgnoreCase). Чтобы это изменить, выполните peco с опцией initial-filter.

2. HSTR

HSTR упрощает поиск по истории команд. Этот инструмент представляет улучшенную версию автодополнения команд из истории в bash/zsh

Он не только помогает находить ранее использованные команды, но также позволяет добавлять их в избранное. В результате вам не придется вводить и запоминать длинные команды.

Установка

Для установки HSTR под Ubuntu выполните:

sudo apt-get install hstr

Руководство по установке для других дистрибутивов.

Демо

Для начала поиска введите в терминале hstr или hh.

Фильтр может быть как чувствителен к регистру, так и нет. Для переключения между этими режимами используйте Ctrl + T.

К примеру, поиск в истории pip3 выполняется так:

Поиск команд с помощью hstr

Для выхода из hstr нажмите Ctrl + C.

Мощной функцией этого инструмента является его возможность отмечать команды как избранные. Для этого достаточно выбрать интересующую команду и нажать Ctrl + F. В дальнейшем сохраненные команды можно просматривать с помощью опции -f.

Комбинация Ctrl + R удаляет команду из избранного.

Чтобы определенные команды не отображались в истории, можно добавить их в черный список. Для начала нужно активировать следующую опцию:

export HSTR_CONFIG=blacklist

Далее мы можем добавить список команд, начиная с завершающей пустой строки: 

nano ~/.hstr_blacklist
cd
pwd
ls

Вывод команд из черного списка:

$ hstr --show-blacklist

Hstr имеет очень много настроек. Рекомендую ознакомиться с этими примерами для лучшего понимания.

3. Navi

Navi  —  это интерактивный инструмент, который позволяет выполнять однострочные команды из памяток. Такие памятки вы можете как написать сами, так и взять готовые из репозиториев Git. Имейте ввиду, что файлы должны быть в формате .cheat. Пример можете найти в этом репозитории.

Navi полезен, когда вы не хотите запоминать сложные команды. Он запоминает множество удобных однострочных команд, что позволяет сократить объем печати при работе.

Установка

В этом примере я установлю Navi с помощью curl:

bash <(curl -sL https://raw.githubusercontent.com/denisidoro/navi/master/scripts/install)

Имейте ввиду, что Navi необходим инструмент fzf. Установить его можно с Git следующим образом:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

Демо

По умолчанию в Navi памяток нет, так что мы их добавим:

navi repo add https://github.com/denisidoro/cheats

Введите navi в терминале и начните поиск команд:

Поиск команд с помощью Navi

Как видно из примера, он знает сотни готовых команд.

Если вы захотите удалить образ Docker, он покажет все текущие образы, чтобы не пришлось их долго искать. Просто выберите нужный, нажмите Enter, и он тут же выполнит команду docker rm [image] .

Navi также позволяет устанавливать аргументы для команды, которую вы собираетесь выполнять. Предположим, вы хотите переименовать репозиторий Git. Найдите необходимую команду git в интерактивном окне и добавьте аргументы:

Переименование репозитория с помощью команды Navi из памятки

Как видите, этот инструмент надежен и удобен.

В данном руководстве вы познакомились с тремя мощными инструментами Linux, упрощающими управление командами.

Теперь вы знаете, как запрашивать команды, более эффективно фильтровать историю и быстро выполнять однострочники.

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Kirshi Yin: 3 Interactive Command Tools for Linux

Предыдущая статьяReact: плюсы и минусы популярной библиотеки JavaScript
Следующая статьяАльтернатива Java 8: что умеет VAVR