Как стать автором
Обновить

Полезные консольные Linux утилиты

Время на прочтение 13 мин
Количество просмотров 106K

В этой подборке представлены полезные малоизвестные консольные 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/ вы можете найти курсы с практическими занятиями:


Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+110
Комментарии 110
Комментарии Комментарии 110

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн