Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в 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-ключа. Это бесплатно для стартового объема запросов.
Получите API-ключ: Зарегистрируйтесь на платформе Alibaba Cloud DashScope и создайте API-ключ.
Сохраните ключ: Самый безопасный способ - добавить ключ в переменные окружения. Добавьте строку в ваш файл конфигурации оболочки. Но вы так же можете сделать это и через интерфейс.
Официальный репозиторий: 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)
evgeniy_kudinov
07.09.2025 13:31Если кто не знал, но на го тоже есть много утилит. Вот, например, я вместо МС использую после "допиливания" под себя https://github.com/gokcehan/lf. А в общем TUI интерфейсы мне нравятся.
serafims
07.09.2025 13:31Если в GUI много времени тратится на переключение окон и работу мышкой, это проблема отсутствия логики при построении схемы работы в GUI и нахватка назначенных сочетаний клавиш. А отображение дерева в TUI - вот это боль.
А утилиты интересные, да.
dpvpro
07.09.2025 13:31Вместо tmux рекомендую zellij. Гораздо дружелюбней к пользователю и на всеми любимом rust)
Про скрипт интеграции fzf можно было поподробней написать.
DjUmnik
07.09.2025 13:31Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в GUI?
А зачем мне держать в голове множество команд и их аргументы в голове? Я их банально забываю. А в GUI те же действия делаются элементарно. В тех же IDE от JetBrains удобно сделана работа с Git.
StjarnornasFred
07.09.2025 13:31Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в GUI?
Гораздо меньше, чем на набивку команд в терминале.
В мире, где каждая секунда на счету, терминал остается самым мощным и недооцененным инструментом разработчика.
Да? А я думаю - мышка.
Он дает вам всю мощь Git, но с наглядностью GUI, не заставляя покидать уютный терминал.
Что бы такое сделать, чтобы было как в GUI, но не GUI... Не лучше ли сразу использовать нормальное решение? А то иначе окажется, что как бы мы ни вертелись, а все дороги идут к нему.
Каждый такой случай - это переключение в браузер, запрос к чату гпт или поиск в браузере, что влечет за собой потерю концентрации
Жесть. То есть вы предлагаете настолько слиться с компьютером в ходе работы, что переключение окон вызывает у вас потерю концентрации? Может, вас самих пора оцифровать и загрузить прямо на жёсткий диск... Тогда вам и графический интерфейс не понадобится. А, ну да. Уже.
Каждый из этих инструментов решает реальную, ежедневную боль и возвращает вам десятки минут каждый день.
Вы даже не представляете, сколько реальной ежедневной боли вы сможете решить, просто переключившись из терминала в нормальный графический интерфейс!
Я, если что, не против терминала. Иногда и сам пользуюсь командной строкой, есть полезные вещи. Но - именно как вспомогательный инструмент. Пользоваться им как единственным - всё равно что собирать кубик Рубика вслепую: в принципе можно научиться и со стороны выглядит круто, но зачем? А если при этом ещё и не пользоваться мышкой - А нормальные реализации терминала её давным-давно научились воспринимать - то это выглядит просто как извращение.
NeoCode
Спасибо, интересные утилиты, но это не только терминал но и TUI. А чистый интерфейс командной строки ИМХО так себе. Особенно когда нужна работа с файлами и их десятки, сотни и т. Д.
Двухпанельный файловый менеджер - вот действительно гениальное изобретение в сфере UI.