Терминал — ваш лучший друг: 5 утилит командной строки, которые заменят вам GUI
- вторник, 9 сентября 2025 г. в 00:00:13
Вы когда-нибудь задумывались, сколько времени уходит на переключение между окнами, клики мышью и поиск нужной кнопки в GUI? В мире, где каждая секунда на счету, терминал остается самым мощным и недооцененным инструментом разработчика. Но стандартного набора команд часто недостаточно.
Я подготовил для вас список из пяти утилит, которые не просто ускорят вашу работу, а полностью изменят ваше представление о возможностях командной строки. После их освоения вы будете смотреть на коллег, тянущихся к мыши, с легким недоумением.
Если вам интересен процесс и вы хотите следить за дальнейшими материалами, буду признателен за подписку на мой телеграм-канал. Там я публикую полезныe материалы по разработке, разборы сложных концепций, советы как быть продуктивным и конечно же отборные мемы.
Вспомните свои ощущения, когда нужно сделать интерактивный 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.
Вы подключились по SSH к удаленному серверу и запустили долгий процесс сборки или миграции данных. Интернет моргнул, соединение оборвалось - процесс прерван. Или локально: у вас открыто 5 вкладок терминала - бэкенд, фронтенд, тесты, Docker, база данных. Перезагрузка компьютера или случайное закрытие окна - и всю эту сложную конструкцию нужно восстанавливать с нуля.
Решение: tmux
(Terminal Multiplexer) — это ваш персональный менеджер рабочих сессий в терминале. Он создает слой между вами и запущенными процессами, позволяя им жить своей жизнью, даже когда вы отключаетесь.
Глубокое погружение в возможности:
Сессии - ключ ко всему: Главное понятие в tmux
-это сессия. Вы запускаете и попадаете в новую сессию. Внутри нее вы можете создавать окна и панели. Самое важное: вы можете отсоединиться от сессии. Терминал закроется, но сессия со всеми запущенными в ней процессами продолжит работать в фоне. Позже вы можете вернуться, набрав команду, и все будет в том же состоянии, в котором вы его оставили.
Идеальная организация рабочего пространства:
Окна: Это как вкладки в браузере. Внутри одной сессии вы можете создать несколько окон для разных контекстов (например, Сервер, Базы данных, Мониторинг).
Панели: Каждое окно можно разделить на несколько независимых панелей. Все в одном окне, без переключений.
Парное программирование: Два разработчика могут подключиться по SSH к одному серверу и присоединиться к одной и той же сессии tmux
. Они будут видеть один и тот же экран и смогут по очереди вводить команды, что идеально подходит для совместной отладки или обучения.
С чего начать: tmux
имеет небольшой порог вхождения из-за своей системы команд через префикс. Первым делом научитесь создавать сессии, отсоединяться и присоединяться. Затем освойте создание окон и панелей.
Установка:
Больше информации можно найти в документации на GitHub Wiki.
Стандартный поиск по истории команд (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
.
Установка:
Инструкции и продвинутые настройки доступны в официальном репозитории.
Вы пишете сложный bash-скрипт и забыли синтаксис. Или вам нужно набросать Dockerfile, но вы не помните всех директив. Или вы видите непонятную ошибку и хотите быстро получить объяснение. Каждый такой случай - это переключение в браузер, запрос к чату гпт или поиск в браузере, что влечет за собой потерю концентрации.
qwen-cli
- это официальный CLI-инструмент для взаимодействия с мощными языковыми моделями семейства Qwen от Alibaba. Он позволяет вам задавать вопросы, генерировать код, объяснять команды и многое другое прямо из терминала, используя всю мощь облачной модели.
Глубокое погружение в возможности:
Генерация команд и скриптов: Это самый частый кейс. Вместо того чтобы гуглить, вы просто спрашиваете.
Модель выдаст готовую команду.
Объяснение кода и команд: Вы можете передать содержимое файла или вывод другой команды для анализа
Быстрое прототипирование: Вам нужно написать небольшой сервер на для проверки гипотезы. Вместо того чтобы создавать файлы и писать boilerplate, вы просите и сразу используете без копирования.
С чего начать: Использование qwen-cli
требует получения API-ключа. Это бесплатно для стартового объема запросов.
Получите API-ключ: Зарегистрируйтесь на платформе Alibaba Cloud DashScope и создайте API-ключ.
Сохраните ключ: Самый безопасный способ - добавить ключ в переменные окружения. Добавьте строку в ваш файл конфигурации оболочки. Но вы так же можете сделать это и через интерфейс.
Официальный репозиторий: https://github.com/QwenLM/qwen-code
grep
- это классика, но в современных проектах он невыносимо медленный. Он пытается искать в гигабайтах зависимостей в node_modules
, в бинарных файлах и в логах, заваливая вас мусором.
ripgrep
(rg
) — это современная реинкарнация grep
, написанная на Rust. Он создавался специально для поиска по кодовым базам. Неудивительно, что именно ripgrep
является движком поиска по умолчанию в VS Code.
Глубокое погружение в возможности:
Скорость и интеллект по умолчанию: rg
по умолчанию рекурсивен. Он автоматически игнорирует все, что указано в вашем .gitignore
, а также скрытые файлы и бинарники. Благодаря этому и многопоточной архитектуре, он работает на порядок быстрее grep
.
Продвинутая фильтрация: Вы можете легко управлять областью поиска:
Искать только в файлах определенного типа
Искать везде, кроме файлов определенного типа
Искать в файлах, которые не отслеживаются Git
Удобный вывод: rg
красиво подсвечивает найденные совпадения, указывает номера строк и группирует результаты по файлам. С помощью флагов можно захватить несколько строк вокруг найденного, чтобы лучше понять контекст.
С чего начать: Просто начните использовать rg
вместо grep
. В 90% случаев команда rg "что_искать"
сделает именно то, что вам нужно, только гораздо быстрее и с более чистым результатом.
Установка:
Все опции установки описаны в документации ripgrep
.
Переход на эти инструменты требует небольшого первоначального усилия - нужно их установить и потратить час на освоение базовых команд. Но это одна из лучших инвестиций в вашу личную продуктивность. Каждый из этих инструментов решает реальную, ежедневную боль и возвращает вам десятки минут каждый день.
Не пытайтесь освоить все сразу. Выберите один инструмент, который решает вашу самую большую проблему прямо сейчас, и пользуйтесь им в течение недели. Вы будете удивлены, как быстро он станет неотъемлемой частью вашего рабочего процесса.