10 Linux-инструментов, которые изменили всё
Это перевод оригинальной статьи These 10 Linux Tools Changed Everything.
Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.
В последнее время жить в терминале стало по-настоящему интересно
С появлением таких инструментов, как Claude Code и других терминальных приложений с поддержкой ИИ, я в последнее время провожу в терминале невероятно много времени. Командная строка стала моим основным рабочим пространством.
Проблема в том, что, хотя традиционный набор Unix-инструментов по праву считается легендарным, многие классические утилиты начинают выдавать свой возраст.
Не поймите меня неправильно — cat, grep, find и cd десятилетиями обеспечивали работу мировой инфраструктуры. Это проверенные временем, надёжные инструменты, и они никуда не исчезнут. Однако сегодня пользоваться некоторыми из них — всё равно что писать код в Vim, когда знаешь, что существуют современные IDE вроде Cursor. Да, это своего рода знак мастерства, но работа определённо становится медленнее🤷♂️.
Новое поколение инструментов командной строки меняет эту ситуацию. Современные утилиты привносят прямо в оболочку нечёткий поиск (fuzzy search), подсветку синтаксиса, дашборды, интеллектуальную навигацию и в целом гораздо более удобный пользовательский опыт. Они сохраняют всё, за что мы любим Linux, одновременно добавляя множество небольших улучшений, которые значительно повышают комфорт повседневной работы.
Если вы, как и я, проводите большую часть дня, подключившись к серверу, и хотите сделать работу в командной строке более приятной и спокойной, вот несколько инструментов, которые оказали наибольшее влияние на мой рабочий процесс.
1. fzf — инструмент для нечёткого поиска
Если бы мне завтра пришлось полностью переустановить систему и начать всё с нуля, fzf, вероятно, был бы один из первых инструментов, которые я бы переустановил. По своей сути это инструмент для нечёткого поиска (fuzzy finder). Достаточно передать ему список элементов, и он позволит интерактивно искать по нему — будь то файлы, каталоги, ветки Git, Docker-контейнеры, процессы, история команд оболочки. Если что-то можно представить в виде текста, то, скорее всего, это можно искать с помощью fzf.
Для меня самым большим изменением стал поиск по истории команд. Большинство из нас используют Ctrl + R, чтобы искать ранее выполненные команды. Но после интеграции fzf это сочетание клавиш становится по-настоящему незаменимым. Нужно найти ту самую команду Docker, которую вы выполняли три недели назад? Нажмите Ctrl + R, введите несколько символов — даже не обязательно подряд — и нужная команда, скорее всего, появится ещё до того, как вы закончите печатать. Практически отпадает необходимость помнить точные команды или имена файлов, а терминал начинает казаться почти телепатическим. Это один из тех инструментов, которые незаметно меняют ваши привычки.
Через несколько недель использования возвращаться к терминалу без fzf уже кажется неудобным. Хотя сам по себе этот инструмент очень мощный, по-настоящему он раскрывается при интеграции с другими командами. Например:
# Interactive password selection from the linux password manager pass show $(pass ls | fzf) # Or with shell integration, just press TAB: pass show # Opens fzf interface # Search command history (Ctrl+R with fzf integration) history | fzf
Установить fzf— https://github.com/junegunn/fzf
2. tmux — полнофункциональный мультиплексор терминала
Я годами игнорировал tmux. Каждый раз, когда мне его рекомендовали, я смотрел на сочетания клавиш, приходил в ужас и снова возвращался к открытию всё новых вкладок терминала. Всё работало вполне нормально — до тех пор, пока я не стал проводить больше времени на удалённых серверах и не начал терять свои сессии во время выполнения задач, которые занимали несколько дней.
По сути, tmux — это мультиплексор терминала. Он позволяет создавать несколько псевдотерминалов и разделять их на окна, панели и даже отдельные сессии, между которыми можно свободно переключаться. Но главная причина, по которой я им пользуюсь, заключается в том, что он не позволяет вашей сессии умереть.
Долгие вычисления, среды разработки, миграции баз данных, обучение моделей — всё продолжает работать, даже если SSH-соединение разорвётся, ноутбук перейдёт в спящий режим или Wi-Fi решит именно сегодня начать сбоить. Пока сервер работает, всё в порядке. Вы можете отключиться, пойти прогуляться, подключиться позже даже с другого ноутбука — и всё окажется ровно там, где вы остановились.
Ключевые особенности tmux — независимость от используемого терминального эмулятора (он работает в любом), наличие интерфейса командной строки и возможность создавать постоянные сессии. Вот простой пример использования этой возможности:
# SSH into server and start tmux ssh user@server tmux # Start a long-running task htop # Detach from session (Ctrl+b, then d) # Even if SSH connection drops, you can reconnect: ssh user@server # Reattach to existing session (add -t <session> if you have multiple sessions) tmux attach
Лично мне не нравятся стандартные сочетания клавиш, поэтому я использую собственную конфигурацию, которую можно найти здесь. Она добавляет поддержку мыши, а также возможность копировать и вставлять данные через буфер обмена, благодаря чему пользоваться tmux становится гораздо удобнее. Достаточно скопировать этот файл в каталог ~/.config/tmux/tmux.conf на вашем Linux-сервере. Если же вы предпочитаете настройки по умолчанию, обратитесь к руководству (man page).
Установить tmux — https://github.com/tmux/tmux/wiki/installing
3. mosh — мобильная оболочка (Mobile Shell)
Если вы когда-либо подключались к удалённому серверу по SSH через Wi-Fi в отеле, аэропорту или нестабильной точке доступа, вы, вероятно, сталкивались с этим:
Вы закрываете ноутбук. Переходите в другую комнату. Открываете его снова. И ваша SSH-сессия обрывается.
Именно эту проблему решает mosh (Mobile Shell). В отличие от SSH, который жёстко привязан к конкретному сетевому соединению, mosh изначально был разработан для работы в нестабильных и ненадёжных сетях. Вы можете переключаться между Wi-Fi и мобильной сетью, переходить из одной сети в другую, переводить ноутбук в спящий режим или даже ненадолго полностью терять соединение — при этом ваша терминальная сессия сохранится.
Секрет в том, что mosh использует собственный протокол синхронизации поверх UDP, который поддерживает синхронизацию между клиентом и сервером независимо от состояния сетевого соединения. Кроме того, он применяет технологию predictive local echo, благодаря которой ввод ощущается заметно более отзывчивым — особенно при работе с серверами, расположенными на другом конце света. И самое приятное — менять привычный способ работы не придётся. За аутентификацию по-прежнему отвечает SSH, поэтому ваши существующие ключи и методы входа продолжают работать без каких-либо изменений.
# instead of ssh user@server # you use mosh user@server
В сочетании с tmux это, пожалуй, самая надёжная конфигурация для удалённой разработки, которой мне когда-либо приходилось пользоваться.
Установить mosh — https://mosh.org/#getting
4. zoxide — ускоренная навигация по каталогам
Я никогда не задумывался, сколько времени трачу на ввод команды cd, пока практически не перестал ею пользоваться. Как и у большинства разработчиков, у меня слишком много каталогов с проектами, и постоянные переходы между ними постепенно начали превращаться в отдельную работу.
Именно здесь на помощь приходит zoxide. По сути, это более умная версия команды cd, которая запоминает, в каких каталогах вы бываете чаще всего, и строит систему ранжирования на основе частоты и давности посещений. Благодаря этому навигация по файловой системе становится значительно быстрее. После нескольких дней использования вы вообще перестаёте думать о пути.
# instead of the verbose cd ./../../../../../code/development/projects/frontend/customer/portal # we simply use `z portal` # that's way less typing to achieve the same thing. # plus it doesn't care about your current directory. z portal
На первый взгляд это кажется небольшим улучшением. На практике же это ещё одна вещь, о которой вашему мозгу больше не приходится думать сотни раз в неделю. Самое приятное — zoxide напрямую интегрируется с fzf, благодаря чему работать становится ещё быстрее и удобнее. Подробнее об их совместном использовании можно прочитать в официальном блоге проекта!
zoxide + fzf: Полное руководство по интерактивной навигации - Блог zoxide | Советы и лучшие практики
Узнайте, как объединить zoxide с fzf для создания мощного интерактивного рабочего процесса выбора каталогов. Освойте нечеткий поиск…
Установите zoxide — https://zoxide.org/
5. bat — улучшенная версия cat
Сразу уточню: мне не не нравится cat. Но открывать с его помощью большой исходный файл — всё равно что смотреть на код через замочную скважину. bat сохраняет привычную простоту cat, но добавляет всё то, чего ожидаешь от современного инструмента в 2026 году: подсветку синтаксиса, нумерацию строк, интеграцию с Git, автоматический постраничный вывод длинных файлов и многое другое.
Стоит один раз открыть с помощью bat shell-скрипт, YAML-файл или Python-модуль — и сразу становится понятно, почему так много разработчиков переходят на него практически мгновенно. Ничего революционного здесь нет — просто более приятный вариант по умолчанию, который делает повседневную работу немного комфортнее. А когда весь день проводишь за чтением текста, именно такие небольшие улучшения складываются в действительно заметную разницу.
Установить bat — https://github.com/sharkdp/bat#installation
6. btop — новый уровень удобства для top
Раньше я считал, что htop и так достаточно хорош. Но потом попробовал btop. Разница не столько в функциональности, сколько в качестве исполнения. btop в режиме реального времени показывает загрузку процессора, использование памяти, активность дисков, сетевой трафик и запущенные процессы — причём делает это так, что смотреть на интерфейс действительно приятно. Графики выглядят аккуратно, интерфейс работает отзывчиво, а найти процесс, который неожиданно начал потреблять 100% процессорного времени, можно буквально за несколько секунд.
Это один из тех инструментов, достоинства которого трудно оценить по скриншотам. Кроме того, btop очень быстрый и не расходует лишние ресурсы, поскольку написан на высокооптимизированном C++.
Установить btop — https://github.com/aristocratos/btop#installation
7. ripgrep — молниеносный поиск по тексту
ripgrep (запускается командой rg) стал для меня невероятно полезным инструментом в эпоху AI-ассистентов для программирования. Всё чаще мне приходится работать с кодовыми базами, которые я вижу впервые — либо потому, что часть кода была сгенерирована искусственным интеллектом, либо потому, что я проверяю чужую работу, либо пытаюсь разобраться в сервисе, к которому не возвращался уже несколько месяцев. По сути, это современная замена grep.
Если вы не знакомы с grep, это утилита командной строки, которой большинство разработчиков пользуются для поиска текста внутри файлов. Проблема в том, что она без разбора просматривает всё подряд, включая ненужные каталоги вроде pycache, node_modules и другие, впустую расходуя ресурсы системы.
rg, напротив, работает значительно быстрее. По умолчанию он учитывает правила из файла .gitignore, рекурсивно выполняет поиск и выводит результаты с цветовой подсветкой, благодаря чему их гораздо удобнее читать. Например, если мне нужно найти все места, где используется проверка прав администратора:
# grep command to search for "isAdmin" in the current project # usually slow and includes node_modules grep -r isAdmin . # equivalent ripgrep command rg isAdmin
Улучшенная скорость работы и более разумное поведение по умолчанию делают ripgrep исключительно удобным инструментом при работе с большими проектами. Поверьте, впервые воспользовавшись ripgrep на крупном репозитории, вы, скорее всего, зададитесь вопросом, почему не сделали этого раньше.
Установить ripgrep — https://github.com/burntsushi/ripgrep#installation
8. fd — современный поиск файлов
Если ripgrep — это улучшенная версия grep, то fd — улучшенная версия find. И если честно, большинству разработчиков этого уже достаточно, чтобы понять, зачем он нужен.
Я до сих пор не могу запомнить синтаксис find. Каждый раз, когда мне требуется что-то сложнее самых простых случаев, я открываю шпаргалку, ищу ответ на Stack Overflow или прошу AI-ассистента сделать это за меня.
# Lets say I want to list all the files with the word "util" in their filename find . -type f -name "*util*" # with fd, it is as simple as fd util
Как и ripgrep, fd поставляется с большим количеством удачных настроек по умолчанию. Он работает быстрее, учитывает .gitignore, по умолчанию выполняет поиск без учёта регистра и поддерживает как регулярные выражения, так и шаблоны glob.
Если требуется более гибкая фильтрация, можно использовать, например, такую команду:
# Find files containing "test" but exclude those with "route" fd test --exclude "*route*"
Сам по себе fd нельзя назвать революционным инструментом. Скорее, это незаменимая утилита, которая делает повседневную работу разработчика более удобной. Больше всего мне нравится то, что fd позволяет сосредоточиться на том, что именно вы ищете, а не вспоминать синтаксис команды.
Установить fd — https://github.com/sharkdp/fd
9. delta — подсветка синтаксиса
Просматривать различия между файлами с помощью diff или изменения в Git через git diff стало гораздо проще после того, как я установил delta. Конечно, стандартный вывод diff и git diff выполняет свою задачу, но работать с ним значительно менее удобно. Особенно это ощущается, когда pull request разрастается хотя бы до нескольких файлов — просмотр изменений начинает быстро утомлять.
delta делает вывод различий гораздо более наглядным, добавляя подсветку синтаксиса, нумерацию строк, режим сравнения бок о бок и подсветку изменений на уровне отдельных символов. Это один из тех инструментов, про который кажется, что он должен был появиться в составе Git ещё много лет назад. Чтобы ознакомиться со всеми возможностями, загляните в файл README.md репозитория.
Установить delta — https://github.com/dandavison/delta
10. lazydocker — TUI для управления Docker
Если вы каждый день работаете с Docker, то, скорее всего, уже довели до автоматизма примерно такой набор команд:
docker ps docker logs <container> docker stats docker inspect <container>
lazydocker объединяет всю эту функциональность в одном терминальном интерфейсе. Вы получаете дашборд, на котором в реальном времени отображаются контейнеры, образы, тома, логи, потребление ресурсов и состояние контейнеров — без необходимости постоянно переключаться между отдельными командами. Вы можете просматривать логи, просто выбрав нужный контейнер, перезапускать его нажатием одной клавиши и сразу видеть потребление ресурсов — всё это уже встроено в интерфейс. По ощущениям lazydocker для Docker делает примерно то же самое, что btop для мониторинга системы. Когда начинаешь пользоваться им регулярно, возвращаться к ручному выполнению множества Docker-команд уже кажется неоправданно неудобным.
ctop — хороший дополнительный инструмент к lazydocker, однако лично мне возможностей lazydocker вполне хватает. Когда я только начинал с ним работать, мне очень помогло это руководство по настройке. Надеюсь, оно окажется полезным и вам!
Заключительные мысли
Одна из вещей, которые мне больше всего нравятся в терминале, — это то, что даже небольшие улучшения дают ощутимый эффект. Не нужно полностью менять свой рабочий процесс, и уж точно не нужно устанавливать 50 разных плагинов и создавать сотню алиасов. Иногда достаточно одного инструмента, который экономит вам пять секунд десятки раз в день, чтобы заметно повысить продуктивность.
За последние пару лет эти десять CLI-инструментов кардинально изменили мой подход к работе в терминале. Мои рекомендации следующие.
Если вы только начинаете работать локально, попробуйте прежде всего fzf, zoxide, ripgrep и fd. Если же вы постоянно подключаетесь к удалённым серверам, то mosh, tmux и fzf — это инструменты, без которых действительно не стоит обходиться. Когда освоитесь хотя бы с частью из них, попробуйте и остальные — по мере того как будете сталкиваться с задачами, для которых они предназначены.
На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.