Ваш терминал буквально «взлетит» с этими фишками fzf: попробуйте однажды — и больше не захотите по-старому!

Tux, the Linux mascot, wearing sunglasses and pointing at large 3D terminal symbol.-1

Работать в терминале без хорошей настройки бывает скучно и неуютно. Многие новички думают: «Ну, это максимум, что можно выжать» — а зря! Есть одна утилита, которая полностью изменила мой взгляд на Linux-терминал. fzf открыла для меня такие возможности, что возвращаться к прежним привычкам уже не хочется. Расскажу, почему теперь считаю её must have.

fzf: что это и за что её так любят?

fzf — это молниеносный поисковик по любым спискам прямо в терминале. Кажется: ну и что? А теперь представьте, что вам нужно найти файл среди тысячи других на командной строке. Мучиться с автодополнением или перелистывать всё вручную? Так себе удовольствие. fzf избавляет от этого головняка раз и навсегда.

A terminal window shows the user searching a text file using the cat and FZF commands. First, the user uses the cat command to show there's lots of text in the text file. Then, the user pipes the file contents into the FZF command, which opens an FZF window. The user then types a word, and FZF narrows down the search result in real time.

Как поставить fzf

Для начала установите fzf — это делается в пару строк.

В Debian используйте вот эту команду.

В Fedora подойдёт такая команда.

В Arch Linux установите через этот запрос.

Чтобы разблокировать всё самое интересное, достаточно добавить нужную строчку в конфиг вашего shell.

Если у вас Bash, впишите её в ~/.bashrc и перезапустите терминал через source ~/.bashrc.

В Zsh просто добавьте строчку в ~/.zshrc и обновите с помощью source ~/.zshrc.

Шарить по истории через history или стрелки — настоящее мучение. С fzf я нахожу любую команду среди тысяч за секунду: жму Ctrl+R, начинаю вводить пару букв — и нужная строка тут же в моих руках. Пользуюсь этим лайфхаком каждый день!

A user chooses a command from a list of commands using FZF. When the FZF window is opened, the user types moo, and FZF narrows the command list down to a single cowsay command that says moo. The user then executes it.

Есть и альтернатива — программа Atuin, работает примерно так же.

Молниеносная навигация по папкам

Прыгать по папкам — сплошная мука, если структура сложная. С fzf достаточно нажать Alt+C — появляется список всех подкаталогов, и несколькими нажатиями переходишь куда хочешь. Особенно здорово, когда надо глубоко «зарыться» в проект.

A terminal window shows the user activating the FZF command with the Alt+C keyboard shortcut. The user then types a few letters to narrow down and select a directory in real time. The user hits enter, and a CD command appears on the screen with the chosen path entered.

Мгновенный выбор файла

Когда нужно подставить файл в команду, стандартное автодополнение порой бесит. С fzf есть встроенный поиск: набираешь команду, жмёшь Ctrl+T — и мгновенно видишь все файлы и папки текущей директории, выбираешь нужный — и путь сразу подставляется. Одно движение — и всё готово.

A terminal window shows a partially completed cat command. The user then activates the FZF command with the Control+T keyboard shortcut. The user then types a few letters to narrow down and select a file path in real time. The user hits enter, and the chosen path completes the cat command.

Пользоваться этим настолько удобно, что fzf становится постоянным помощником — и вы реально начинаете работать в терминале гораздо быстрее.

Вырубать процессы легко!

Вечно забываешь имя нужного процесса для завершения. Через стандартные инструменты приходится вспоминать PID или прописывать полностью название. С fzf просто ищешь нужный процесс и одним нажатием убираешь его — никаких лишних хлопот.

Просто наберите команду для завершения процесса и нажмите Tab (но не жмите Enter):

A terminal window shows the user typing out a kill command. The command is appended with a double star. The user then hits the tab key, and an fzf window opens. The user partially types the name of a process and then hits enter.

С fzf находить и завершать нужные процессы стало просто и быстро, даже если их названия вылетели из головы.

Ещё больше крутых трюков с fzf

Символ «**» вызывает окно поиска fzf. Мы уже добавили в shell специальные функции, чтобы он распознавал такой синтаксис и открывал новые возможности.

С помощью «**» можно вызвать поиск в практически любой команде. Чаще всего открывается файловый выбор, но для некоторых, например SSH, используется особый алгоритм.

SSH: выбор нужного хоста за секунду

В SSH автодополнение с «**» (и Tab) позволяет искать хосты сразу по конфигу, известным адресам и по /etc/hosts — больше не нужно помнить длинные имена!

Git: работа с коммитами и ветками со скоростью света

Для Git fzf есть отдельный скрипт — fzf-git.sh. Если поставить его (инструкция в официальном репозитории), вы сможете искать коммиты, ветки и всё остальное прямо в интерактивном режиме — быстро и удобно.

A terminal window is split vertically. On the left side is a list of Git commits; on the right side is the information for the selected item.

Переменные окружения: просмотр и удаление одним движением

Запустите эту команду, чтобы быстро посмотреть значение любой переменной среды.

A terminal window displays a list of environment variable names and values in an fzf window. The user is ready to perform a real-time fuzzy search.

Даже удалить переменную окружения через fzf — проще простого!

Управление systemd: все службы — под контролем за пару секунд

systemd — сердце большинства дистрибутивов Linux, именно он руководит вашими сервисами. Обычно ковыряться в unit’ах неприятно, но c помощью скрипта fuzzy-sys делать это стало легко и мгновенно. Просто следуйте инструкции из репозитория и выполните команду.

Вы сразу увидите статус любой службы, сможете быстро запустить, остановить или отредактировать нужную, используя простые флаги — start, stop, enable, edit и другие. Больше не надо вспоминать длинные имена сервисов!

A terminal window displays two window panes split vertically. On the left side is a list of services; on the right side is a preview window, which displays details about the selected service.

С fzf моя продуктивность в терминале реально взлетела. Теперь самые скучные и сложные задачи решаются за считаные секунды. Фишек — море! Освойте fzf — и больше не вернётесь к рутине в Linux-терминале!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

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

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий