В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.


Bat — это клон команды cat с дополнительной разметкой и подсветкой синтаксиса для большого количества языков программирования, а также интеграцией Git для отображения изменений файлов. Подробнее на русском.



Exa – это изящный инструмент командной строки, получивший множество похвал за то, что он является современной заменой старой доброй команде ls. И это справедливо, учитывая его способность использовать разные цвета при отображении различных типов файлов, прав доступа к файлам и прав собственности, блоков и информации inode, чтобы упомянуть лишь некоторые из них. Подробнее на русском.



Fd — это простой, быстрый и удобный инструмент, предназначенный для более простой и быстрой работы по сравнению с командой find. Подробнее на русском.



Procs — это современная замена ps, программы командной строки по умолчанию в Unix / Linux для получения информации о процессах. По умолчанию он обеспечивает удобный, понятный для человека (и цветной) формат вывода. Подробнее на русском.



Sd — это интуитивно понятный инструмент командной строки для поиска и замены, он является альтернативой sed. sd имеет более простой синтаксис для замены всех вхождений и использует удобный синтаксис регулярных выражений, который вы уже знаете из JavaScript и Python. Sd также в 2-11 раз быстрее, чем sed.



Dust — опрятная версия дефолтного du, c удобной записью памяти, цветом и отступами.



Starship — очень приятный prompt который легко накатывается поверх zsh, fish, bash и прочего.


Легкая настройка через Toml файл (https://github.com/toml-lang/toml) с кучей уже поддерживаемых форматов и конфигов (https://starship.rs/config/#prompt). Подробнее на русском.



Ripgrep — быстрый поиск с возможностью замены по содержимому в файлах, аналог GREP, ASK, написан на RUST, понимает регулярные выражения, игнорирует ресурсы указанные в .gitignore, автоматически пропускает бинарные, скрытые файлы. Подробнее на русском.



Ripgrep-all — Инструмент поиска, ориентированный на строки, который позволяет вам искать по регулярному выражению во множестве типов файлов. Ripgrep-all является оберткой над ripgrep и позволяет ему искать в pdf, docx, sqlite, jpg, субтитрах фильмов (mkv, mp4) и т. д.



Grex — это инструмент командной строки и библиотека для генерации регулярных выражений из предоставленных пользователем тестовых примеров. Созданное регулярное выражение имеет синтаксис PCRE.



Fzf — инструмент для "фильтрации" любых списковых данных в консоли. Может использоваться для фильтрации списка файлов, истории команд, процессов, hostnames, коммитов и прочего. Подробнее на русском.



Jq — это легкий и гибкий JSON-процессор командной строки. Подробнее на русском.



Peco — инструмент, способный сильно облегчить навигацию, а также поиск. Это небольшая утилита, которая принимает на вход список строк и выводит на экран псевдографическое меню, с помощью которого можно выбрать или найти нужную строку. Далее peco отдает эту строку на выход и завершает свою работу (по сути, это консольный аналог dmenu). Подробнее на русском.



HTTPie — HTTP клиент для командной строки, с поддержкой json, понятным интерфейсом, подсветкой синтаксиса и прочим. Подробнее на русском.



xh — удобный и быстрый инструмент для отправки HTTP-запросов. Он в максимально возможной степени воплощает превосходный дизайн HTTPie.



Rebound — это инструмент командной строки, который мгновенно извлекает результаты Stack Overflow при возникновении исключения. Просто используйте команду rebound для запуска вашего исполняемого файла.



HTTP Prompt – это интерактивный HTTP-клиент командной строки, созданный на основе prompt_toolkit и HTTPie с более чем 20 темами. Его основные функции включают в себя автоматическое заполнение, подсветку синтаксиса, автоматические куки, Unix-подобные конвейеры, совместимость с HTTpie, http-подсказка, которая сохраняется между сеансами и интеграцию OpenAPI / Swagger. Подробнее на русском.



shell2http — Простой веб сервер для удаленного выполнения команд.


reachable — инструмент, который поможет вам проверить, работает ли домен или нет.



Lazydocker — пользовательский интерфейс для управления докером. С его помощью больше не нужно запоминать команды, алиасы и следить за контейнерами через несколько терминальных окон. Всё это теперь собрано в одном окне. Просмотр состояния, логов, метрик; перезапуск, удаление, восстановление контейнеров и сервисов. Подробнее на русском.


Clog-cli — утилита для создания changelogs из истории коммитов Git.


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



mosh — утилита Mosh (сокращение от mobile shell), обладающая всеми преимуществами безопасности SSH, является более устойчивой в условиях плохих сетевых и мобильных соединений. Кроме того, данное приложение увеличивает способность к реагированию и снижает использование полосы пропускания. Создание подключения и авторизация в Mosh происходят через обычное соединение SSH, что значит, что для безупречной работы каких-либо механизмов безопасности на основе ключей нужно внести всего несколько дополнительных конфигураций. После проверки подлинности ключа Mosh начинает взаимодействие через зашифрованные датаграммы UDP, что делает сессию более устойчивой к изменяющимся клиентским IP-адресам и перебоям соединений, которые часто случаются при использовании мобильных устройств. Подробнее на русском.


ngrok — Безопасные интроспективные туннели к localhost.


teleconsole — поделитесь своим терминалом UNIX.


tmate — Мгновенный доступ к терминалу (tmux).


Lazygit — псевдографический консольный клиент для Git. Если у вас есть проблемы с восприятием основных моментов в работе с Git-репозиторием из консоли, то вы всегда можете воспользоваться графическим клиентом. Один из них — Lazygit, псевдографический клиент, написанный на языке Go с использованием библиотеки gocui. В официальном описании программы автор описывает, как трудно бывает понять, что и как нужно сделать в гите, если там больше одной ветви или коммита, и как хорошо при этом помогает разобраться его клиент. Думаю, что описывать все возможности программы нет смысла, так как что еще можно сказать про гит, кроме как «позволяет коммитить, мержить и так далее»?



GNU parallel — это инструмент оболочки для параллельного выполнения работ используя один или более компьютер. В качестве работы может быть единичная команда или небольшой скрипт, который должен быть запущен для каждой строки из получен��ого ввода. Типичным вводом является список файлов, список хостов, список пользователей, список URL, список таблиц. В качестве работы может быть команда, которая считывает по трубе (pipe). GNU parallel затем может разбить ввод на блоки и передать блоки по трубе параллельно в каждую команду. GNU parallel может заменить вам программы xargs и tee. А также не только заменить циклы (loops), но и сделать их выполнение более быстрым за счёт параллельного выполнения нескольких работ. Подробнее на русском.


Bottom — консольное приложение для мониторинга процессов и загрузки системы. Подробнее на русском.



Bandwhich — net monitor с раскладкой по процессам, который работает и на FreeBSD.



Delta — Средство просмотра для вывода git и diff. Подробнее на английском.




mtr — MyTraceRoute Великолепная замена traceroute и аналогам


gdu — Более шустрый и фичастый аналог ncdu (ncurses du), на Go. Удобнее штатного du, при разборах «куда же делось свободное место».


Dog — это красивый DNS-клиент командной строки для поиска DNS, который работает как dig. Он имеет красочный вывод, понимает обычный синтаксис аргументов командной строки, поддерживает протоколы DNS-over-TLS и DNS-over-HTTPS и может генерировать JSON.



dnsmeter — это инструмент для тестирования производительности сервера имен и инфраструктуры вокруг него. Он генерирует DNS-запросы и отправляет их через UDP на целевой сервер имен и считает ответы.


Gitleaks — это инструмент SAST для обнаружения жестко закодированных секретов, таких как пароли, ключи API и токены в репозиториях git. Gitleaks — это простое в использовании универсальное решение для поиска секретов прошлого или настоящего в вашем коде.


localtls — DNS-сервер для предоставления TLS веб-сервисам на локальных адресах


fx — альтернатива jq для обработки JSON из командной строки. Подробнее на русском.



dnspeep — простая утилита, которая позволяет просмотреть DNS запросы.



Dive — инструмент для изучения образа Docker, содержимого слоев и поиска способов уменьшить размер вашего образа Docker/OCI.



datanymizer — Мощный анонимайзер базы данных с гибкими правилами. Подробнее на русском.


termshark — консольный интерфейс терминала для tshark, вдохновленный Wireshark



sysinfo — Скрипт на основе Python для получения системной информации из Linux.


SSH-Attack-Stats — Простой скрипт, который будет запущен в MOTD на сервере Linux и сообщит вам статистику атак.



dry — менеджер для Docker, по ощущениям гораздо быстрее и отзывчивее чем «LazyDocker»


gh — утилита для работы с GitHub из консоли, например можно создать Pull Request


gitlab — аналогичная утилита для работы с GitLab (неофициальная)


watch — запуск любой команды каждые N секунд, позволяет на раз-два сделать реалтайм мониторинг в консоли


runnel — автоматический запуск туннелей SSH с переподключением при обрыве соединения


Ниже утилиты и краткое описание со статьи Sysadmin-util: полезные инструменты для системных администраторов Linux. Подробнее об этих утилитах вы найдете в этой статье.


Ago — Данный инструмент выводит в удобочитаемом формате информацию, как давно файл или каталог были изменены.


Cronic – инструмент запускает команду тихо, пока не завершится неудачей, т.е. он запускает команду и скрывает STDOUT и STDERR, если она успешно завершается. Это полезно для заданий cron.


cidr2ip — Он преобразует блоки CIDR в составляющие их IP-адреса.


collapse — Инструмент collapse удаляет пустые строки и строки, содержащие пробелы, из заданных файлов.


dupes — Инструмент dupes сообщит о идентичных файлах. Это поможет вам найти дубликаты файлов, которые содержат то же самое содержимое. Утилита сравнивает у файлов хэш SHA1 .


empty-dir — Этот инструмент проверит, является ли данный каталог пустым или нет.


expand-ipv6 — Этот инструмент расширяет указанные сокращенные / сжатые адреса IPv6 до их полной формы. Это может быть полезно при настройке DNS.


multi-ping — Это многопротокольная оболочка ping. Он используется для проверки подключения удаленного хоста независимо от того, является ли он хостом IPv6 или IPv4. Значение: если пульт использует IPv4, он вызывает команду ping для проверки возможности подключения. Если удаленный хост использует IPv6, он вызовет команду «ping6».


pyhttpd — Это простой HTTP-сервер на Python, который позволяет мгновенно настроить базовый web-сервер.


randpass — Утилита randpass используется для генерации случайного пароля из командной строки.


since — Он показывает любой новый контент с момента последнего чтения файла. Это полезно для отслеживания файлов журнала.


ssl-expiry-date — Отображает дату истечения срока действия сертификата SSL данного домена или хоста.


timeout — Это позволяет пользователю выполнить команду для определенного интервала и уничтожить ее.


until-error & until-success – повторять команды до тех пор, пока не произойдет сбой или успешно выполнится


when-down & when-up – ждет, пока хост не упадет/ поднимется


mysql-slave-check – выяснить, является текущий хост – ведомым или нет


which-shell – определить оболочку, под которой мы работаем, и т. д.


Утилиты из пакета Moreutils:


sponge — «губка» для стандартного ввода. Подробнее на русском


Утилиты ниже взял из канала https://t.me/SysadminNotes


ssh-config — простая штуковина, позволяющая работать с конфигом SSH.


ssh-tools — набор из нескольких утилит. Проверяем удалённые хосты, получаем информацию о них и т. п.


assh — серьёзный инструмент, который позволяет иначе взглянуть на привычную работу с SSH. Тут вам и регулярки, и возможность использования шаблонов, хуки, работа с конфигом SSH клиента. Причём, lib-ssh запускает assh через ProxyCommand, а значит что весь этот функционал мы можем использовать и с scp, и c rcync'ом, и с git'ом, например.


domain-check-2 — Простой скрипт для проверки срока истечения важных для нас доменных имён. Подробнее на русском


[pingtop]() — интересная top утилита, с помощью которой можно пинговать несколько сайтов одновременно. Подробнее на русском


red — весьма интересный анализатор логов. Пайпим ему json выхлоп и получаем статистику по зафиксированным там событиям.



Watchman — Позволяет отслеживать состояние файлов, и по мере их изменения триггерить нужные действия, если потребуется (запускаем что-то, собираем что-то, уведомляем и т. п.).


localstack — протестировать что-то предназначенное для AWS локально


txeh — Библиотека Go и утилита CLI для управления /etc/hosts.


mkchain — Утилита, с помощью которой можно составить цепочку сертификатов, из присланных от центра сертификации файлов.


Asn — удобная утилита для отображения информации об IP и домене.



tlog — Инструмент для записи / воспроизведения терминального ввода-вывода и сессий. Подробнее на английском


frp — Быстрый обратный прокси-сервер, который поможет вам открыть доступ в Интернет к локальному серверу за NAT или брандмауэром.


tunnelto — Разместите свой локальный веб-сервер в Интернете с помощью общедоступного URL-адреса.


pd.sh — интересная штука для дебага пйплайнов. Подсовываем скрипту наш набор команд, и получаем информацию о том, как пайплайн отрабатывает и в каком месте возникает ошибка, если такое происходит.


logtop — утилита, которая выводит top IP адресов, анализируя логи веб-сервера. Это для тех, кому не очень хочется однострочник на bash писать c awk, sort и uniq.


Choose — аналог cut и awk '{print $N}'. Авторы, к слову, утверждают что работает штука значительно быстрее перечисленных аналогов.



whatfiles — простая и удобная утилита, которая покажет, с какими файлами работает тот или иной процесс в системе. Этакий упрощённый вариант strace'а.


topngx — этакий top для Nginx. Утилита анализирует логи и выдаёт администратору итоговую статистику. По сути, это аналог другой утилиты — ngxtop, правда эта уже давно не поддерживается.


SSHHeatmap — Создает тепловую карту IP-адресов, которые сделали неудачные попытки входа в систему по SSH.


desed — Отладчик для Sed: отлаживайте сценарии sed, не выходя из вашего терминала.


3mux — Терминальный мультиплексор, вдохновленный i3


frontail — утилита для трансляции логов по http\https. Удобно использовать в случаях, когда нужно быстро, в браузере, показать содержимое какого-либо лога и его изменения в реальном времени. Подробнее на русском


critic.sh — Суровое тестирование bash скриптов. Выглядит не менее интересным даже в сравнении с shellcheck


jql — Вместо jq можно попробовать jql для работы с JSON.


asciicast2gif — утилита для конвертации ascii кастов, в обычную gif анимацию. Подробнее на русском


Nginx-builder — инструмент, который автоматизирует сборку Nginx с нужными модулями. Описываем всё в yaml, запускаем сборку и получаем готовый rpm или deb пакет


linux-exploit-suggester — Быстрый аудит сервера на возможность применения эксплойтов



linux-exploit-suggester-2 — Подсказка эксплойтов ядра Linux нового поколения



ssl-cert-check — делаем простой мониторинг SSL с уведомлениями на email о необходимости продления сертификата. Подробнее на русском


jl — Удобная утилита для парсинга\чтения JSON логов


Wondershaper — утилита для настройки ограничений скорости сетевого интерфейса на сервере. Подробнее на русском


mkcert — удобная штука, с помощью которой можно у себя на локалхосте для часто употребляемых тестовых имён выписать валидный сертификат.



https-portal — Полностью автоматизированный сервер HTTPS на базе Nginx, Let's Encrypt и Docker.


httpsat — утилита, которая позволяет получить статистику доступа к нужному сайту. Скрипт работает с cURL’ом, и поддерживает многие доступные в нём опции при соединении. Подробнее на русском


GeoLogonalyzer — И вот ещё занятный анализатор логов, который на основе asn, гео, и некоторых сопутствующих данных выявляет аномалии и сообщает о них. Например, если пользователь много раз заходил с одного IP адреса, но внезапно зашёл с другого (причём из другой подсети вовсе, либо из другой географической точки), анализатор сформирует отчёт об этом.


graphpath — Утилита для быстрого построения ASCII схемы сети прямо в терминале.



Sosreport — утилита для сбора информации о текущем состоянии системы. Удобно использовать самому в рамка первичного осмотра, удобно попросить клиента выполнить команду и прислать отчёт, готовый для изучения. Подробнее на русском



Fatrace (file access trace) — простая и удобная в использовании утилита для мониторинга текущей активности в системе. Отлично подойдёт для тех случаев, когда strace или blktrace оказываются избыточны. Подробнее на русском



httping — простая утилита, с помощью которой можно «пинговать» сайт по определённому адресу и получать общую (а при необходимости подробную) статистику по ответу и доступности. Подробнее на русском



Bashdb — утилита-дебаггер для bash скриптов. Дебаг скриптов задача не частая, но если она стоит, то на bashdb имеет смысл обратить внимание. Подробнее на русском



Goaccess — функциональный анализатор логов, который может работать с ними в реальном времени, визуализировать информацию и отдавать её в разных форматах. Доступен для установки на большинстве популярных дистрибутивов прямо из репозиториев. Подробнее на русском



testssl.sh — это скрипт, который позволяет протестировать SSL сервис и вывести подробную статистику по нему. Это как SSLlabs, только имеется возможность проведения проверки разных сервисов. Кроме того, для скрипта доступен простой веб-интерфейс. Подробнее на русском



iprange — Обнаружилась очень удобная утилита для работы с подсетями и IP адресами. Умеет вычислять нужные подсети из разных диапазонов, что порой бывает необходимо, например, при работе с ipset и фаерволом на сервере.


container-diff — утилита для сравнения образов контейнеров. Сontainer-diff умеет анализировать и учитывать при сравнении историю образа, файловую систему, пакеты apt, pip и npm. Выглядит очень удобно для отслеживания изменений в рамках одного контейнера, либо для сравнения двух разных образов.


https://gist.github.com/agarzon/5554490 — Скрипт для проверки присутствия IP в различных DNSBL


Prochunter — хорошая утилита для поиска скрытых процессов, запущенных в системе. Подробнее на русском


netutils-linux — это набор утилит для мониторинга и тюнинга сети. Подробнее на русском.



Sysdig — удобный и функциональный инструмент, дающий администратору широкие возможности для сбора информации о работающей системе. Подробнее на русском


ioping — очень простая, но при этом удобная утилита для быстрой проверки отзывчивости дисковой подсистемы. В CentOS ставится из репозитория EPEL. Подробнее на русском


ctop — полезная *top утилита для мониторинга работы контейнеров.



hstr — от англ. history, инструмент для просмотра истории команд.



pastebinit — инструмент командной строки в Deb-системах для отправки данных на "pastebin", сайт, который позволяет пользователям размещать отрывки текста для публичного просмотра. Подробнее на русском


fpaste — инструмент командной строки в RedHat-системах для отправки данных на http://fpaste.org/, сайт, который позволяет пользователям размещать отрывки текста для публичного просмотра.


ShellCheck — инструмент статического анализа shell скриптов. Подробнее на русском


Eternal Terminal — удаленная оболочка, которая автоматически переподключается. Подробнее на русском


tfquery — Выполняйте SQL-запросы в своей инфраструктуре Terraform. Запрашивайте ресурсы и анализируйте их конфигурацию с помощью SQL.



kubectx — утилита для управления контекстами kubectl и переключения между ними.



kubens — утилита для переключения между пространствами имен Kubernetes.



fselect — утилита для поиска файлов с помощью SQL-подобных запросов.


kubesql — инструмент, использующий sql для запроса ресурсов Kubernetes, таких как поды, узлы и т. д.


k3d — k3d создает кластеры k3s в контейнерах. Вы можете развернуть многоузловой кластер k3s на одной машине с помощью docker.


arkade — arkade предоставляет marketplace для установки ваших любимых DevOps утилит командной строки.


helmfile — обёртка для helm, которая позволяет в одном месте описывать множество helm релизов, параметризовать их чарты для нескольких окружений, а также задавать порядок их деплоя..


cheat.sh — утилита и онлайновый сервис, к которому можно обращаться из командной строки и искать по внушительной коллекции из чит-шитов, собранных силами сообщества. Сюда входит около тысячи команд Unix/Linux и 55 языков программирования.


lnav — это расширенный просмотрщик логов. Это терминальное приложение, которое может понять ваши файлы журналов и упростить вам поиск проблем практически без настройки.


Не утилита, но очень полезное:


Автоматический запуск tmux, при входе на сервер по SSH:
https://t.me/SysadminNotes/1661
автоматический запуск tmux, при входе на сервер по SSH. Добавляем в ~/.bash_profile строки:


if [ -z "$TMUX" ]; then
tmux attach -t term || tmux new -s term
fi

И при каждом входе на сервер, получаем либо уже существующую, либо новую сессию tmux.
Для screen можно попробовать такую конструкцию:
if $(screen -ls | grep -q pts); then screen -x; else screen -R; fi


P.S. Пишите утилиты, которые стоит добавить в список.


P.S2. На написание этого поста навеял телеграм канал https://t.me/SysadminNotes где публикуются подобные интересные утилиты


Немного рекламы: На платформе https://rotoro.cloud/ вы можете найти курсы с практическими занятиями: