Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в GUI? В мире, где каждая секунда на счету, терминал остается самым мощным и недооцененным инструментом разработчика. Но стандартного набора команд часто недостаточно.

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

Если вам интересен процесс и вы хотите следить за дальнейшими материалами, буду признателен за подписку на мой телеграм-канал. Там я публикую полезныe материалы по разработке, разборы сложных концепций, советы как быть продуктивным и конечно же отборные мемы.

1. lazygit

Вспомните свои ощущения, когда нужно сделать интерактивный rebase для десятка коммитов. Или когда вы случайно закоммитили отладочный console.log и теперь нужно его убрать из предыдущего коммита. Git - невероятно мощный, но его стандартный интерфейс в командной строке заставляет постоянно держать в голове сложные команды и флаги, а цена ошибки высока.

Так вот lazygit - это терминальный псевдографический интерфейс (TUI) для Git, который превращает сложные операции в простые и интуитивно понятные действия. Он дает вам всю мощь Git, но с наглядностью GUI, не заставляя покидать уютный терминал.

Глубокое погружение в возможности:

  • Атомарные коммиты без усилий: Это главная фишка. Вы открываете lazygit, видите список измененных файлов. Заходите в файл и видите дифф. Вместо того чтобы делать git add ., вы можете построчно или поблочно добавлять изменения в стейджинг, нажимая пробел. Это позволяет создавать идеально чистые, логически разделенные коммиты, которые легко читать и ревьюить.

  • Безболезненный интерактивный rebase: Забудьте про git rebase -i HEAD~5 и редактирование текстового файла. В lazygit вы видите список коммитов. Хотите объединить два коммита? Пожалуйста. Хотите переименовать? Да без проблем. Это превращает страшную процедуру в простое и наглядное редактирование списка.

  • Визуализация веток и истории: lazygit наглядно показывает граф веток. Вы всегда видите, какая ветка от какой отходит, где находится HEAD, и какие коммиты еще не отправлены на удаленный сервер. Cherry-pick коммита из другой ветки - это просто выбор коммита и нажатие кнопки.

  • Быстрое разрешение конфликтов: При возникновении конфликта слияния lazygit предлагает вам удобный интерфейс, где вы можете выбрать, какой из конфликтующих блоков кода оставить, нажатием одной клавиши.

Первые 15 минут вы будете привыкать к горячим клавишам (хотя они все подписаны). Начните с простого: стейджинг и коммиты. Уже через день вы не сможете представить, как жили без этого раньше.

Установка:

Инструкции для всех ОС и подробная документация есть на официальном репозитории GitHub.

2. tmux

Вы подключились по SSH к удаленному серверу и запустили долгий процесс сборки или миграции данных. Интернет моргнул, соединение оборвалось - процесс прерван. Или локально: у вас открыто 5 вкладок терминала - бэкенд, фронтенд, тесты, Docker, база данных. Перезагрузка компьютера или случайное закрытие окна - и всю эту сложную конструкцию нужно восстанавливать с нуля.

Решение: tmux (Terminal Multiplexer) — это ваш персональный менеджер рабочих сессий в терминале. Он создает слой между вами и запущенными процессами, позволяя им жить своей жизнью, даже когда вы отключаетесь.

Глубокое погружение в возможности:

  • Сессии - ключ ко всему: Главное понятие в tmux -это сессия. Вы запускаете и попадаете в новую сессию. Внутри нее вы можете создавать окна и панели. Самое важное: вы можете отсоединиться от сессии. Терминал закроется, но сессия со всеми запущенными в ней процессами продолжит работать в фоне. Позже вы можете вернуться, набрав команду, и все будет в том же состоянии, в котором вы его оставили.

  • Идеальная организация рабочего пространства:

    • Окна: Это как вкладки в браузере. Внутри одной сессии вы можете создать несколько окон для разных контекстов (например, Сервер, Базы данных, Мониторинг).

    • Панели: Каждое окно можно разделить на несколько независимых панелей. Все в одном окне, без переключений.

  • Парное программирование: Два разработчика могут подключиться по SSH к одному серверу и присоединиться к одной и той же сессии tmux. Они будут видеть один и тот же экран и смогут по очереди вводить команды, что идеально подходит для совместной отладки или обучения.

С чего начать: tmux имеет небольшой порог вхождения из-за своей системы команд через префикс. Первым делом научитесь создавать сессии, отсоединяться и присоединяться. Затем освойте создание окон и панелей.

Установка:
Больше информации можно найти в документации на GitHub Wiki.

3. fzf

Стандартный поиск по истории команд (Ctrl+R) ищет только точные совпадения. Поиск файлов через find или ls -R | grep - громоздко и медленно. Мы тратим ценные секунды (которые складываются в часы) на то, чтобы вспомнить точное название файла или команды.

fzf (Fuzzy Finder) — это универсальный интерактивный фильтр с нечетким поиском. Вы просто начинаете набирать символы, которые помните, и fzf мгновенно отфильтровывает список, показывая наиболее релевантные результаты.

Глубокое погружение в возможности:

  • Интеграция из коробки: После установки fzf обогащает вашу командную строку:

    • Ctrl+R: Вместо стандартного поиска появляется интерактивный список истории команд.

    • Ctrl+T: Открывает поиск файлов и директорий в текущей папке. Выбранный путь подставляется в команду.

    • Alt+C: Ищет директории и мгновенно переходит в выбранную.

  • Сила конвейера (Pipes): Настоящая магия fzf раскрывается, когда вы используете его с другими командами. Он принимает на вход список строк и позволяет интерактивно выбрать одну из них.

    • Интерактивное переключение веток Git:

      git branch | fzf | xargs git checkout

      Эта команда сначала получает список всех веток, передает его в fzf для выбора, а затем xargs подставляет выбранное имя в команду git checkout.

    • Выбор и убийство процесса:

      ps -ef | fzf | awk '{print $2}' | xargs kill -9
      
  • Предпросмотр: fzf можно настроить так, чтобы справа от списка результатов отображалось окно предпросмотра. Для файлов это будет их содержимое, для коммитов — полный дифф. Это позволяет найти нужное, даже не открывая файл.

С чего начать: Просто установите fzf и запустите скрипт интеграции, который он предложит. Начните использовать Ctrl+R и Ctrl+T в повседневной работе. Когда это войдет в привычку, попробуйте создать свой первый пайплайн, например, с git branch.

Установка:
Инструкции и продвинутые настройки доступны в официальном репозитории.

4. qwen-cli

Вы пишете сложный bash-скрипт и забыли синтаксис. Или вам нужно набросать Dockerfile, но вы не помните всех директив. Или вы видите непонятную ошибку и хотите быстро получить объяснение. Каждый такой случай - это переключение в браузер, запрос к чату гпт или поиск в браузере, что влечет за собой потерю концентрации.

qwen-cli - это официальный CLI-инструмент для взаимодействия с мощными языковыми моделями семейства Qwen от Alibaba. Он позволяет вам задавать вопросы, генерировать код, объяснять команды и многое другое прямо из терминала, используя всю мощь облачной модели.

Глубокое погружение в возможности:

  • Генерация команд и скриптов: Это самый частый кейс. Вместо того чтобы гуглить, вы просто спрашиваете.

  • Модель выдаст готовую команду.

  • Объяснение кода и команд: Вы можете передать содержимое файла или вывод другой команды для анализа

  • Быстрое прототипирование: Вам нужно написать небольшой сервер на для проверки гипотезы. Вместо того чтобы создавать файлы и писать boilerplate, вы просите и сразу используете без копирования.

С чего начать: Использование qwen-cli требует получения API-ключа. Это бесплатно для стартового объема запросов.

  1. Получите API-ключ: Зарегистрируйтесь на платформе Alibaba Cloud DashScope и создайте API-ключ.

  2. Сохраните ключ: Самый безопасный способ - добавить ключ в переменные окружения. Добавьте строку в ваш файл конфигурации оболочки. Но вы так же можете сделать это и через интерфейс.

Официальный репозиторий: https://github.com/QwenLM/qwen-code

5. ripgrep (rg)

grep - это классика, но в современных проектах он невыносимо медленный. Он пытается искать в гигабайтах зависимостей в node_modules, в бинарных файлах и в логах, заваливая вас мусором.

ripgrep (rg) — это современная реинкарнация grep, написанная на Rust. Он создавался специально для поиска по кодовым базам. Неудивительно, что именно ripgrep является движком поиска по умолчанию в VS Code.

Глубокое погружение в возможности:

  • Скорость и интеллект по умолчанию: rg по умолчанию рекурсивен. Он автоматически игнорирует все, что указано в вашем .gitignore, а также скрытые файлы и бинарники. Благодаря этому и многопоточной архитектуре, он работает на порядок быстрее grep.

  • Продвинутая фильтрация: Вы можете легко управлять областью пои��ка:

    • Искать только в файлах определенного типа

    • Искать везде, кроме файлов определенного типа

    • Искать в файлах, которые не отслеживаются Git

  • Удобный вывод: rg красиво подсвечивает найденные совпадения, указывает номера строк и группирует результаты по файлам. С помощью флагов можно захватить несколько строк вокруг найденного, чтобы лучше понять контекст.

С чего начать: Просто начните использовать rg вместо grep. В 90% случаев команда rg "что_искать" сделает именно то, что вам нужно, только гораздо быстрее и с более чистым результатом.

Установка:
Все опции установки описаны в документации ripgrep.

Заключение

Переход на эти инструменты требует небольшого первоначального усилия - нужно их установить и потратить час на освоение базовых команд. Но это одна из лучших инвестиций в вашу личную продуктивность. Каждый из этих инструментов решает реальную, ежедневную боль и возвращает вам десятки минут каждый день.

Не пытайтесь освоить все сразу. Выберите один инструмент, который решает вашу самую большую проблему прямо сейчас, и пользуйтесь им в течение недели. Вы будете удивлены, как быстро он станет неотъемлемой частью вашего рабочего процесса.

Комментарии (6)


  1. NeoCode
    07.09.2025 13:31

    Спасибо, интересные утилиты, но это не только терминал но и TUI. А чистый интерфейс командной строки ИМХО так себе. Особенно когда нужна работа с файлами и их десятки, сотни и т. Д.

    Двухпанельный файловый менеджер - вот действительно гениальное изобретение в сфере UI.


  1. evgeniy_kudinov
    07.09.2025 13:31

    Если кто не знал, но на го тоже есть много утилит. Вот, например, я вместо МС использую после "допиливания" под себя https://github.com/gokcehan/lf. А в общем TUI интерфейсы мне нравятся.


  1. serafims
    07.09.2025 13:31

    Если в GUI много времени тратится на переключение окон и работу мышкой, это проблема отсутствия логики при построении схемы работы в GUI и нахватка назначенных сочетаний клавиш. А отображение дерева в TUI - вот это боль.
    А утилиты интересные, да.


  1. dpvpro
    07.09.2025 13:31

    Вместо tmux рекомендую zellij. Гораздо дружелюбней к пользователю и на всеми любимом rust)

    Про скрипт интеграции fzf можно было поподробней написать.


  1. DjUmnik
    07.09.2025 13:31

    Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в GUI? 

    А зачем мне держать в голове множество команд и их аргументы в голове? Я их банально забываю. А в GUI те же действия делаются элементарно. В тех же IDE от JetBrains удобно сделана работа с Git.


  1. StjarnornasFred
    07.09.2025 13:31

    Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в GUI?

    Гораздо меньше, чем на набивку команд в терминале.

    В мире, где каждая секунда на счету, терминал остается самым мощным и недооцененным инструментом разработчика.

    Да? А я думаю - мышка.

    Он дает вам всю мощь Git, но с наглядностью GUI, не заставляя покидать уютный терминал.

    Что бы такое сделать, чтобы было как в GUI, но не GUI... Не лучше ли сразу использовать нормальное решение? А то иначе окажется, что как бы мы ни вертелись, а все дороги идут к нему.

    Каждый такой случай - это переключение в браузер, запрос к чату гпт или поиск в браузере, что влечет за собой потерю концентрации

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

    Каждый из этих инструментов решает реальную, ежедневную боль и возвращает вам десятки минут каждый день.

    Вы даже не представляете, сколько реальной ежедневной боли вы сможете решить, просто переключившись из терминала в нормальный графический интерфейс!

    Я, если что, не против терминала. Иногда и сам пользуюсь командной строкой, есть полезные вещи. Но - именно как вспомогательный инструмент. Пользоваться им как единственным - всё равно что собирать кубик Рубика вслепую: в принципе можно научиться и со стороны выглядит круто, но зачем? А если при этом ещё и не пользоваться мышкой - А нормальные реализации терминала её давным-давно научились воспринимать - то это выглядит просто как извращение.