20 лучших малоизвестных и полезных команд Linux

В арсенале любого опытного Linux-администратора есть набор проверенных временем команд, которые используются ежедневно. ls, cd, grep, find, ps, top – без них немыслима эффективная работа. Однако за пределами этого стандартного набора скрывается множество мощных, но менее известных утилит, способных значительно упростить диагностику, автоматизацию и управление системой. Эта статья посвящена именно таким “скрытым жемчужинам” – 20 командам Linux, которые, возможно, не у всех на слуху, но обладают огромным потенциалом для решения реальных административных задач и экономии вашего драгоценного времени.
- mtr (My Traceroute)
- Что делает: Комбинирует ping и traceroute в одном инструменте, постоянно опрашивая маршрут и показывая статистику потерь и времени отклика для каждого хопа. Незаменим для диагностики проблем с сетью.
- Пример: mtr google.com
- ss (Socket Statistics)
- Что делает: Современная замена netstat. Показывает информацию о сетевых сокетах (TCP, UDP, RAW, UNIX). Работает быстрее и предоставляет больше информации, чем netstat.
- Пример: ss -tulnp (показать все слушающие TCP/UDP порты с именами процессов)
- iotop
- Что делает: Мониторинг дискового I/O в реальном времени, показывая, какой процесс активно читает/пишет на диск. Похож на top, но для диска. Требует root-прав.
- Пример: sudo iotop -o (показать только процессы, которые реально что-то делают с диском)
- nethogs
- Что делает: Группирует использование сетевого трафика по процессам. Помогает быстро найти, какое приложение “ест” весь канал. Требует root-прав.
- Пример: sudo nethogs eth0 (мониторить трафик на интерфейсе eth0)
- lsof (List Open Files)
- Что делает: Показывает, какие файлы (включая сетевые сокеты, пайпы, устройства) открыты какими процессами. Чрезвычайно полезно для отладки (“какой процесс держит порт?”, “почему нельзя отмонтировать диск?”).
- Пример: sudo lsof -i :80 (показать процесс, использующий порт 80) или sudo lsof /var/log/syslog (показать, кто держит открытым syslog)
- pgrep/pkill
- Что делает: Ищет процессы (pgrep) или отправляет им сигналы (pkill) по имени или другим атрибутам, без необходимости парсить вывод ps через grep.
- Пример: pkill -f “python my_script.py” (убить все процессы, соответствующие шаблону) или pgrep -u nginx (найти PID процессов пользователя nginx)
- pstree
- Что делает: Показывает дерево процессов, наглядно отображая родительско-дочерние связи. Удобно для понимания, какой процесс породил какой.
- Пример: pstree -p (показать дерево с PID)
- dstat
- Что делает: Универсальный генератор статистики ресурсов (CPU, диск, сеть, память, I/O) в реальном времени. Очень гибкий, позволяет комбинировать разные метрики. Часто удобнее, чем запускать vmstat, iostat и ifstat по отдельности.
- Пример: dstat -tcdmn (показать время, статистику CPU, диска, памяти и сети)
- atop
- Что делает: Продвинутый монитор производительности, похожий на top/htop, но с возможностью записи истории системных метрик и метрик процессов для последующего анализа. Показывает утилизацию всех ресурсов (CPU, MEM, DSK, NET) на уровне системы и процессов.
- Пример: atop (интерактивный режим) или atop -r /var/log/atop/atop_YYYYMMDD (просмотр истории за определенный день)
- multitail
- Что делает: Позволяет просматривать (“tail -f”) несколько лог-файлов одновременно в одном терминале, разделяя экран. Можно подсвечивать строки по шаблонам.
- Пример: multitail /var/log/nginx/access.log /var/log/nginx/error.log
- parallel (GNU Parallel)
- Что делает: Выполняет команды параллельно. Мощная альтернатива xargs для распараллеливания задач на многоядерных системах.
- Пример: find . -name “*.jpg” | parallel convert {} {.}.png (конвертировать все jpg в png параллельно)
- watch
- Что делает: Запускает указанную команду через регулярные интервалы времени и показывает ее вывод на весь экран, обновляя его. Удобно для мониторинга изменений.
- Пример: watch -n 1 ‘ss -an | grep ESTABLISHED | wc -l’ (каждую секунду показывать количество установленных TCP-соединений)
- script / scriptreplay
- Что делает: Записывает всю сессию терминала (ввод и вывод) в файл. scriptreplay позволяет воспроизвести эту сессию в реальном времени. Полезно для демонстраций или аудита действий.
- Пример: script my_session.log (начать запись), exit (закончить), scriptreplay my_session.log (воспроизвести)
- lsblk (List Block Devices)
- Что делает: Показывает информацию о блочных устройствах (диски, разделы, LVM, точки монтирования) в древовидном формате. Нагляднее, чем fdisk -l или cat /proc/partitions.
- Пример: lsblk -f (показать также информацию о файловых системах)
- getent (Get Entries)
- Что делает: Получает записи из административных баз данных системы (passwd, group, hosts, services, networks и т.д.), используя настроенные источники (файлы, LDAP, NIS…). Полезно для проверки конфигурации NSS.
- Пример: getent passwd username (получить информацию о пользователе username из всех источников) или getent hosts google.com (разрешить имя через настроенные источники)
- chage (Change Age)
- Что делает: Управляет информацией об устаревании пароля пользователя (срок действия, период неактивности, дата последней смены). Важно для политик безопасности.
- Пример: sudo chage -l username (показать информацию об устаревании пароля) или sudo chage -M 90 username (установить максимальный срок действия пароля в 90 дней)
- column
- Что делает: Форматирует входные данные в колонки. Очень полезно для улучшения читаемости вывода других команд при работе в консоли.
- Пример: mount | column -t (вывести список смонтированных ФС в виде аккуратной таблицы)
- dig (Domain Information Groper)
- Что делает: Мощный инструмент для запросов к DNS-серверам. Предоставляет гораздо больше информации и гибкости, чем nslookup или host.
- Пример: dig google.com MX +short (получить MX-записи для домена в кратком формате) или dig @8.8.8.8 google.com A (запросить A-запись у сервера 8.8.8.8)
- dpkg -L <package> / rpm -ql <package>
- Что делает: Показывает список файлов, установленных указанным пакетом (для Debian/Ubuntu и RHEL/CentOS/Fedora соответственно). Незаменимо, когда нужно понять, откуда взялся тот или иной файл конфигурации или бинарник.
- Пример (Debian/Ubuntu): dpkg -L nginx-core
- Пример (RHEL/CentOS): rpm -ql httpd
- journalctl
- Что делает: Инструмент для запроса и просмотра логов из журнала systemd (journald). Мощные возможности фильтрации по времени, юнитам, приоритету и т.д. Становится стандартом де-факто во многих дистрибутивах.
- Пример: journalctl -u nginx.service -f (следить за логами сервиса nginx) или journalctl –since “1 hour ago” (показать все логи за последний час)
Ниже вы найдёте 10 малоизвестных, но реально полезных приёмов для работы в Linux. Эти советы охватывают сетевую диагностику, быстрое обращение к документации, анализ диска, поиск и навигацию по файлам, а также приёмы повышения продуктивности в оболочке. Каждый из них экономит время и усилия при администрировании и повседневной работе.
Диагностика сети
1. Используйте mtr для одновременного ping
и traceroute
В отличие от классических ping
и traceroute
, mtr
отображает маршрут и задержки в реальном времени, обновляя статистику каждый тик секунды LFCS Подготовка к сертификации.
2. Просматривайте статистику сокетов с помощью ss
Команда ss -tuln
заменяет устаревший netstat
и показывает подробности TCP/UDP‑соединений, номера портов и состояние слушающих сокетов мгновенно LFCS Подготовка к сертификации.
Работа с документацией
3. Освойте tldr
— упрощённые man‑страницы
Вместо длинных статей man
, tldr <команда>
выдаёт краткий пример использования и основные опции, что ускоряет поиск нужной информации The world’s open source leader.
Анализ дискового пространства
4. Интерактивный разбор диска с ncdu
ncdu /путь
запускает ncurses‑интерфейс, где вы сразу видите, какие папки и файлы занимают больше всего места, и можете удалять их прямо из интерфейса IOFLOOD.
Поиск и навигация
5. Заменитель find
— утилита fd
fd <шаблон>
работает во много раз быстрее, по умолчанию игнорирует скрытые файлы и подчёркивает совпадения цветом, не требуя сложных ключей GitHub.
6. Умный cd
с помощью zoxide
z <фрагмент>
запомнит часто посещаемые каталоги и предложит нужный путь за пару символов, заменяя обычный cd
на более интеллектуальный навигатор GitHub.
Повышение продуктивности в оболочке
7. Редактирование текущей команды в $EDITOR: Ctrl+X Ctrl+E
В Bash сочетание Ctrl+x Ctrl+e
открывает редактирование всей строки в вашем редакторе (по $EDITOR), что удобно для длинных или сложных команд LFCS Подготовка к сертификации.
8. Массовая обработка аргументов через xargs
find … | xargs -r команда
позволяет запускать любую утилиту на каждом найденном файле без сложных циклов, значительно упрощая скрипты Opensource.com.
9. Случайная выборка строк: shuf
shuf -n 5 file.txt
выдаёт 5 случайных строк из файла — полезно для тестирования, выборки примеров или организации простого рандомизированного опроса LFCS Подготовка к сертификации.
10. Изоляция монтирования для тестов: unshare
unshare -m bash
создаёт новый mount‑пространство имён, где вы можете экспериментировать с монтированием и pivot_root
без риска затронуть основную систему man7.org.
Эти приёмы помогут вам ускорить рутину, сократить количество опечаток и сделать терминал ещё более мощным инструментом в руках профессионала.