Аналог htop в linux

Обновлено: 04.07.2024

Каждый запущенный на сервере процесс оказывает нагрузку, и если ресурсов сервера становится недостаточно, могут возникать проблемы: медленная работа сайта, задержки в выполнении скриптов и так далее.

Проанализировать, что именно нагружает сервер, можно с помощью специальных утилит. Их довольно много; в статье мы рассмотрим три из них:

В целом они довольно похожи; работа с htop может быть немного удобнее за счет интерактивности; при этом top предустановлена во всех дистрибутивах Linux и не требует отдельной установки; atop отличается возможностью ведения логов.

При медленной работе сайта дополнительно рекомендуем воспользоваться сервисом PageSpeed Insights от Google, который анализирует скорость загрузки страниц и сообщает, каким образом можно оптимизировать работу сайта. Также можно попытаться оптимизировать работу сайта за счет переноса каталога временных файлов MySQL в tmpfs.

Как было сказано выше, утилита top предустановлена в UNIX-системах, поэтому для запуска вам достаточно подключиться к серверу по SSH и выполнить команду top.

Вывод утилиты выглядит следующим образом:


В верхней части выводится информация о системе, ниже - список процессов. Вывод обновляется каждые 2 секунды. Самые "жадные" до ресурсов процессы, оказывающие самую большую нагрузку на процессор, будут выведены вверху списка.

Сведения о системе

Слева вверху указано текущее время системы, далее:

Up - время работы системы с последнего запуска.

User - количество текущих пользователей.

Load average - средняя нагрузка на сервер: отображаются значения за одну, пять и 15 минут назад.

Tasks - общее количество запущенных процессов в разных статусах (running - выполняемые; sleeping - в ожидании; stopped - остановленные; zombie - "зомби", дочерние процессы, ожидающие завершения родительского процесса).

Cpu(s) - процент времени процессора, затраченного на выполнение процессов, в том числе:

us - пользовательские процессы (высокое значение данного показателя может указывать, в том числе, на проблемы в коде сайта, необходимость его оптимизации);

sy - процессы ядра;

id - неиспользуемые ресурсы (чем выше этот показатель, тем лучше);

wa - операции ввода/вывода, т.е. дисковые операции.

Mem, Swap - сведения об использовании оперативной памяти (total - общий объем, free - объем свободной памяти, used - объем использованной памяти).

Сведения о процессах

По умолчанию процессы выстроены в таблице по размеру нагрузки на процессор, от большего значения к меньшему.

PID - идентификатор процесса;

USER - пользователь, запустивший процесс;

PR - приоритет процесса;

NI - измененный приоритет (присвоенный пользователем с помощью команды nice);

VIRT - объем используемой виртуальной памяти (здесь выводится тот объем памяти, который был запрошен процессом, даже если фактически используется меньше);

RES - объем используемой оперативной памяти (в данном случае, если процесс запросил 50Мб памяти, а использует 10Мб, будет выведено 10Мб);

SHR - объем памяти, разделяемой с другими процессами (т.е. память, которая может быть использована другими процессами);

S - статус процесса (running - запущен; sleeping - в ожидании; zombie - процесс-"зомби");

%CPU - процент использования процессорного времени;

%MEM - процент использования оперативной памяти;

TIME - общее время работы процесса;

COMMAND - имя процесса (команда, которой был запущен процесс).

Управление

Для работы с утилитой top используются следующие клавиши:

Пробел - обновить вывод

M - сортировка по используемой памяти

P - сортировка по нагрузке на процессор (используется по умолчанию)

T - сортировка по времени работы процесса

A - сортировка по максимальному потреблению различных ресурсов

u - сортировка по имени пользователя (потребуется ввести имя пользователя)

k - завершить процесс (потребуется указать его идентификатор, PID)

n - изменить количество процессов в выводе (потребуется указать нужное количество)

c - вывести полный путь запущенного процесса (столбец COMMAND)

h - вывод справки

q - выход из программы

В отличие от top, утилиту htop сначала необходимо установить на сервер:

Ubuntu / Debian:

CentOS:

И после запустить:

Вывод команды выглядит следующим образом:


Аналогично выводу top, в верхней части представлена информация о системе, ниже - список процессов. Значения столбцов в htop те же, что в top (они описаны выше).

Сверху слева вы можете видеть данные о нагрузке каждого ядра процессора, объем занятой памяти, сведения о количестве процессов, значения load avearage (средней нагрузки) за последние 1, 5 и 15 минут и аптайм системы.

По умолчанию процессы отсортированы по уровню нагрузки на процессор, от большего к меньшему.

Чтобы отсортировать их по занятой памяти (или любому другому параметру), просто кликните на название нужного столбца, например MEM. Для обратной сортировки (от меньшего к большему) достаточно кликнуть на тот же столбец еще раз. Также для управления сортировкой можно использовать клавиши M (сортировка по памяти), P (по процессору), T (по времени), аналогично утилите top.

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

u - вывести процессы конкретного пользователя.

Для управления используются клавиши F1 - F10:

F1 - вывод справки

F2 - настройка вывода (добавление, удаление столбцов, отображение расширенной информации в верхнем блоке и пр.)

F3 - поиск процессов

F4 - фильтрация процессов (вывод процессов, имеющих в названии указанное слово)

F5 - вывод дерева процессов (родительские и дочерние процессы)

F6 - изменить тип сортировки

F7 / F8 - повышение / понижение приоритета

F9 - завершение процесса (в отличие от top, не требуется указание PID - просто выделите с помощью мыши или клавиатуры нужный процесс и нажмите F9. Для подтверждения завершения процесса нажмите Enter, для отмены - Esc).

F10 - выход из программы

Функции для каждой клавиши могут изменяться, в зависимости от того, в каком меню программы вы находитесь, при этом доступные действия по соответствующим клавишам будут отображаться внизу окна, что упрощает работу с утилитой.

Основным преимуществом утилиты atop является функция ведения логов. Благодаря этому можно не только контролировать нагрузку в текущий момент, но и отслеживать работу процессов за прошедшие дни, чтобы диагностировать плавающие ошибки, которые сложно "поймать" при мониторинге в реальном времени.

Не важно кто вы, системный администратор или обычный пользователь ПК, вы наверняка слышали про один из самых популярных инструментов для системного мониторинга — утилиту top, работающую из терминала. Многие используют её в качестве диспетчера задач.

Top показывает все запущенные процессы и выводит важную информацию о нагрузке на производительные мощности компьютера или сервера. Также эта утилита даёт возможность завершить ненужные процессы. Но есть ли у вас альтернативные варианты программ? И нужны ли они вам? Давайте разбираться.

Почему вам нужна альтернатива top?

Утилита top по умолчанию включена в большинство дистрибутивов Linux. Однако, она не поддерживает прокрутку и работу с мышью, в ней нет выделения важной информации контрастным цветом и еще многих привычных вещей. По этой причине многим людям нелегко использовать все возможности top.

Эту проблему решают альтернативные программы, которые предоставляют больше информации о запущенных процессах и позволяют управлять ими намного проще.

Полезные утилиты для системного мониторинга — такие как top, только лучше


В этой статье я упомянул несколько хороших альтернатив утилите top, а также добавил команды для их установки в Debian/Ubuntu и производных дистрибутивах. Большинство предложенных инструментов могут быть также установлены в других дистрибутивах с помощью пакетного менеджера.

1. Htop


Htop — это интерактивный системный монитор, поддерживающий прокрутку и управление с помощью мыши. Утилита не ограничивается наличием расширенных функций. Кроме них здесь есть выделение процессов и другой информации цветом — это делает вывод команды более упорядоченным и упрощает работу.

Лично я предпочитаю использовать htop, а не top для контроля за ресурсами системы и происходящими в ней процессами. Эта утилита позволяет завершать и отфильтровывать процессы, предлагает три варианта их отображения (для выбора нажмите F5), а также включает в себя множество других функций.

Для установки htop в дистрибутивы на основе Ubuntu выполните в терминале следующую команду:

sudo apt install htop

Также вы можете скачать rpm/deb пакеты для остальных дистрибутивов Linux с официального сайта.

2. Atop


Если вы хотите получать более подробную информацию о процессах, которые запущены в данный момент либо были запущены раньше, то для этой цели вам подойдёт atop. Кроме того, он поддерживает ведение журнала данных об использовании системных ресурсов, что окажется полезным, если вам нужно проанализировать результаты за длительный период. Atop выделяет контрастным цветом значения для всех ресурсов, которые достигли или почти достигли критической отметки и даже не будучи профессиональным системным администратором, я могу сказать, что это очень удобная опция.

В моем случае я всё же предпочитаю htop, но выбор зависит от того, какую информацию вы планируете отслеживать и какие дополнительные возможности вам нужны.

Если вы используете дистрибутив на основе Debian, для установки утилиты воспользуйтесь командой:

sudo apt install atop

На странице загрузок вы найдёте rpm пакеты всех версий atop, а также их исходные коды.

3. Nmon


Nmon — это ещё одна полезная утилита для мониторинга системных ресурсов и процессов. В отличие от других, она позволяет разделять данные на категории и выводить на экран по мере надобности.


Как вы видите на снимках экрана, представленных выше, необходимо нажимать определенные клавиши, чтобы включать и выключать отображение той или иной статистики. Каждая группа данных выделена цветом, что заметно упрощает просмотр.

Для установки nmon в Ubuntu-подобных дистрибутивах выполните команду:

sudo apt install nmon

Либо перейдите на официальную страницу загрузок, чтобы найти пакеты для других дистрибутивов Linux.

4. Vtop


Vtop — интересная утилита для мониторинга системных ресурсов и одновременного управления ими. Она написана с применением node.js, поэтому вам придется установить эту среду и npm пакеты.

Здесь реализована поддержка мыши, да и в целом утилита выглядит, как графическая оболочка, запущенная в терминале. Вы можете отключить выполнение операций с помощью мыши, если эта функция вам не нужна. Vtop упрощает сбор данных и их восприятие. Также у вас есть возможность легко изменить тему оформления этой утилиты.

Чтобы установить vtop в дистрибутивах на основе Ubuntu, вам следует выполнить в терминале команды:

sudo apt install nodejs

sudo apt install npm

sudo npm install -g vtop

Первые две команды служат для установки node.js и npm. Непосредственно установка утилиты происходит во время выполнения третьей команды.

Если вы хотите установить vtop в другой дистрибутив, перейдите на страницу проекта на GitHub.

5. Bashtop


Впечатляющая альтернатива top; этой утилите требуется больше ресурсов для работы, но на мой взгляд она намного проще в использовании и выглядит куда красивее. Я начинаю задумываться о том, чтобы использовать для мониторинга bashtop вместо htop.

В дополнение к тем данным, которые отображаются по умолчанию, вы можете установить модули для контроля за температурой процессора и сбора другой статистики. Дополнительная информация об этом доступна на странице разработчиков на GitHub.

В репозиториях Ubuntu 20.04 эта утилита почему-то отсутствует. Но если у вас установлена Ubuntu 20.10 или более поздняя версия дистрибутива, вы можете установить bashtop с помощью одной-единственной команды:

sudo apt install bashtop

В Ubuntu 20.04 и более ранних версиях вам следует добавить репозиторий PPA и установить утилиту, выполнив следующие команды (подходят также для всех Ubuntu-подобных дистрибутивов):

sudo add-apt-repository ppa:bashtop-monitor/bashtop

sudo apt update

sudo apt install bashtop

Чтобы получить руководство по установке для других дистрибутивов, перейдите на страницу проекта на GitHub.

6. Gtop


Ещё одна впечатляющая альтернатива top. С виду она чем-то напоминает vtop и точно так же требует наличия node.js для установки. Вам не удастся в полной мере адаптировать её под свои нужды, но она простая в использовании и предоставляет все необходимые данные.

Прежде чем установить gtop в Ubuntu и Ubuntu-подобные дистрибутивы, вам придётся установить node.js и менеджер npm пакетов. Выполните в терминале следующие команды:

sudo apt install nodejs

sudo apt install npm

sudo npm install -g gtop

За информацией об установке этой утилиты в другие дистрибутивы обратитесь к странице проекта на GitHub.

7. Glances


Glances — это потрясающий инструмент для системного мониторинга для тех, кто хочет сразу получать как можно больше данных. Отображаемая информация зависит от размеров окна. Вы можете получить всю важную статистику о дисковом вводе-выводе, сети, версии ядра, датчиках, а также другую информацию.

Кроме того, у вас будет возможность экспортировать информацию во внешнюю базу данных и производить мониторинг удалённо, с использованием веб-интерфейса. Это особенно удобно для системных администраторов.

В дистрибутивах на основе Ubuntu для установки Glances достаточно выполнить команду:

sudo apt install glances

Если вам нужно установить эту утилиту в другие дистрибутивы, перейдите на официальную страницу, где вы найдёте установочные скрипты. Наш список аналоги top подошел к завершению.

Выводы

Теперь, узнав о некоторых отличных альтернативах утилите top, которую из них вы бы вы выбрали? Используете ли вы какие-либо другие инструменты для системного мониторинга в Linux? Какие именно? Поделитесь ими в комментариях.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.



Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.



В отличие от atop, htop не собирает статистику и просто показывает текущее состояние. Второе яркое отличие — нортоноподобная панелька с подсказками кнопок снизу и возможность «навигации» по списку процессов.

Общей статистике по системе показыват мало (зато с шкалой а-ля прогресс-бар), зато имеет обширнейшие инструменты для анализа процессов, включая баловство с скедулингом (приоритеты, affinity), просмотр списка открытых файлов, strace и массу мелких, но приятных фич, таких как контекстный поиск по имени процесса, режим «слежения» за процессом, быстрые операции с процессом и т.д.



Специализированная утилита для анализа потребления дисковой полосы. К сожалению, не показывает иопсы (это вообще возможно?) Благодаря показу kernel threads способен указать на kcopy/swapper/kflush как источник хруста винта (чего не может atop). Заодно показывает общую загруженность IO системы в Мб/с (чего так же не может atop). Довольно быстрый.



Опять же, специализированная утилита, позволяющая наблюдать за трафиком в реальном времени. Требует очень рутовых прав и pcap, т.к. работает почти аналогичо tcpdump'у. Показывает загруженность интерфейса (поддерживается только один интерфейс в одной копии), направления трафика и интенсивность трафика.

На средне-загруженном сервере, который внезапно начал жрать инет позволяет очень быстро найти направление, в которое идёт больше всего трафика (в любую сторону). К сожалению, не показывает распределение трафика по процессам.



Специализированная (ага, снова) утилита от intel для мониторинга потребления мощности (электрической мощности!) разными процессами. В реальности никаких ваттов не показывает, а показывает время, затраченное на обслуживание процессором. Уникальна тем, что показывает прерывания и прочие события ядра на одном уровне с процессами (что позволяет находить нетривиальные ситуации перегрузки сервера и даже определять, от какой железки это исходит). При равной нагрузке позволяет оценить, чей драйвер шустрее работает.

Кроме того, во вкладке device stats позволяет оценить степень загруженности устройства (точнее, драйвера устройства). Для сетевых карт (включая виртуальные, типа tun) показывает pps (packets per seconds).

Во вкладке idle status показывает распределение состояний процессора (C1, C2, C3), что весьма полезно при выяснении «батарейка дохлая или что-то не так с системой?» на ноутбуках.



Ну очень специализированная утилита для мониторинга прерываний (настоящих прерываний, идентификацией их по номеру).

Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.



Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.

Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.

Почти клон iftop, однако имеет забавный режим, когда может слушать соседей и показывать top по их трафику. Не очень работает в эпоху коммутаторов.

Ещё умеет агрегацию адресов (так, чтобы показывать их трафик одной строкой).

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

Я бы с интересом на него посмотрел, но оно требует особого конфига ядра…



Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера).



Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.

apachetop

sqtop

Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шариться.

pg_top

Пакет в debian почему-то называется ptop. Мониторит загрузку postgresql.

mytop



Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане) выпилен в районе lenny -> squeeze.

xentop



Мониториг доменов xen'а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top'ов, не влазящий в 80 столбцов при выводе.

Список топов, которые я глазами не посмотрел:

hatop — мониторинг haproxy
virt-top — мониторинг за работой libvirt
mctop — мониторинг состояния memcached
perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.

Сначала ложные топы кратко:
gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
libgtop — библиотека для мониторигна производительности
nload — консольный монитор сетевой активности, в отличие от обычных top'ов не выводит рейтинг, а рисует текстовый график.

А потом настоящие топы без уважительного суффикса 'top' в названии.

nethogs



Отображает сетевой трафик от конкретных приложений.

iptstate



Монитор contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra , но удобнее (спасибо за наводку тов. @merlin_rterm).

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.



В отличие от atop, htop не собирает статистику и просто показывает текущее состояние. Второе яркое отличие — нортоноподобная панелька с подсказками кнопок снизу и возможность «навигации» по списку процессов.

Общей статистике по системе показыват мало (зато с шкалой а-ля прогресс-бар), зато имеет обширнейшие инструменты для анализа процессов, включая баловство с скедулингом (приоритеты, affinity), просмотр списка открытых файлов, strace и массу мелких, но приятных фич, таких как контекстный поиск по имени процесса, режим «слежения» за процессом, быстрые операции с процессом и т.д.



Специализированная утилита для анализа потребления дисковой полосы. К сожалению, не показывает иопсы (это вообще возможно?) Благодаря показу kernel threads способен указать на kcopy/swapper/kflush как источник хруста винта (чего не может atop). Заодно показывает общую загруженность IO системы в Мб/с (чего так же не может atop). Довольно быстрый.

На средне-загруженном сервере, который внезапно начал жрать инет позволяет очень быстро найти направление, в которое идёт больше всего трафика (в любую сторону). К сожалению, не показывает распределение трафика по процессам.



Специализированная (ага, снова) утилита от intel для мониторинга потребления мощности (электрической мощности!) разными процессами. В реальности никаких ваттов не показывает, а показывает время, затраченное на обслуживание процессором. Уникальна тем, что показывает прерывания и прочие события ядра на одном уровне с процессами (что позволяет находить нетривиальные ситуации перегрузки сервера и даже определять, от какой железки это исходит). При равной нагрузке позволяет оценить, чей драйвер шустрее работает.

Кроме того, во вкладке device stats позволяет оценить степень загруженности устройства (точнее, драйвера устройства). Для сетевых карт (включая виртуальные, типа tun) показывает pps (packets per seconds).

Во вкладке idle status показывает распределение состояний процессора (C1, C2, C3), что весьма полезно при выяснении «батарейка дохлая или что-то не так с системой?» на ноутбуках.



Ну очень специализированная утилита для мониторинга прерываний (настоящих прерываний, идентификацией их по номеру).

Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.



Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.

Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.

Почти клон iftop, однако имеет забавный режим, когда может слушать соседей и показывать top по их трафику. Не очень работает в эпоху коммутаторов.

Ещё умеет агрегацию адресов (так, чтобы показывать их трафик одной строкой).

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

Я бы с интересом на него посмотрел, но оно требует особого конфига ядра…



Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера).



Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.

apachetop

sqtop

Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шариться.

pg_top

Пакет в debian почему-то называется ptop. Мониторит загрузку postgresql.

mytop



Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане) выпилен в районе lenny -> squeeze.

xentop

Список топов, которые я глазами не посмотрел:

hatop — мониторинг haproxy
virt-top — мониторинг за работой libvirt
mctop — мониторинг состояния memcached
perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.

nethogs



Отображает сетевой трафик от конкретных приложений.

iptstate



Монитор contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra , но удобнее.

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Многие пользователи Unix-систем знакомы с терминальными командами. Они позволяют моментально выполнять операции с файлами, следить за системой и настраивать её без надобности использовать ПО с графическим интерфейсом. Modern Unix — это коллекция программ, созданных независимыми разработчиками, которые заменят собой стандартные и наиболее распространённые команды. Эти альтернативы удобнее, функциональнее, а порой и быстрее.

bat вместо cat

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

bat — это аналог часто используемой команды cat для вывода содержимого файлов. В отличие от оригинала, bat умеет подсвечивать синтаксис и не выводит все данные в окно терминала, а открывает файл отдельно, как в текстовом редакторе nano или vim. С помощью отдельных клавиш можно листать содержимое по строке или сразу нескольким.

exa вместо ls

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Команда ls используется для отображения списка файлов в текущей директории. exa справляется с этой задачей ещё лучше, предоставляя больше фич — здесь куда больше возможностей отображения (деревом, перевернутой сеткой, списком, таблицей). Эта альтернатива по стандарту выделяет отдельные типы файлов разными цветами, она быстрая, легковесная и удобная для пользователей. Содержимое папок можно отобразить в древовидной структуры.

lsd вместо ls

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Ещё одна альтернатива команде ls. Утилита lsd или LSDeluxe умеет выводить список содержимого папок в цветном виде с иконками. А ещё она написана на Rust, что делает её быстрее аналогичных решений. Для правильного отображения иконок придётся дополнительно установить специальный шрифт.

delta вместо diff

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

delta — это инструмент для сравнения содержимого файлов. В отличие от обычного diff, он умеет подсвечивать синтаксис, имеет оформление в стиле git, возможность сравнивать файлы бок о бок, нумерацию строк и множество других фич. Также может использоваться для команд git: git show или git diff.

dust вместо du

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Более удобный и дружелюбный к пользователю аналог команды du, которая позволяет узнать, сколько места на диске занимают директории. В отличие от стандартной утилиты, dust умеет выводить информацию в виде дерева, выделяя в конечных папках самые «тяжёлые» файлы. По стандарту отображает объём не в блоках, а в привычных единицах измерения. Самое «вкусное» — отображение процентного соотношения директорий, позволяющее сразу выявить самые крупные директории. Утилита написана на Rust, отсюда и её название.

duf вместо df

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

К числу утилит, облегчающих менеджмент свободного места на накопителях, можно отнести и duf — аналог df. Стандартная программа выводит статистику использования всех подключённых дисков. duf делает это лучше — он отображает данные в виде таблицы, окрашивая некоторые элементы цветами и чётко структурируя их. Такое представление намного лучше воспринимается пользователем. Доступен и другой вывод — в формате JSON.

broot вместо команд для навигации

broot — это отличный способ избавиться от команд для навигации по файловой системе. Утилита показывает список директорий в виде интерактивного дерева, позволяя перемещаться стрелками, входить в папки клавишей Enter, возвращаться Esc и открывать файлы. Последние можно искать, копировать и перемещать с помощью команд в специальной строке.

fd вместо find

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Простой аналог команды find для поиска файлов по всей системе. fd работает быстро, имеет широкий набор функционала, который, по словам автора, может и не самый мощный, но удобный в использовании для большинства случаев.

ripgrep вместо grep

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Инструмент для поиска по содержимому файлов с названием ripgrep быстрее своих аналогов и выдаёт более читабельный вариант, чем стандартный grep. Утилита следует заданным в gitignore правилам и по умолчанию пропускает игнорируемые и скрытые файлы. Предоставляет мощный функционал с поддержкой множества кодировок и поиском по сжатым форматам.

ag вместо grep (и ack)

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

За командой ag скрывается приложение с названием The Silver Searcher, которое нацелено на поиск по файлам с кодом. Создатель заявляет, что это аналог другой сторонней утилиты ack, но с упором на скорость. Как и предыдущая программа, The Silver Searcher игнорирует файлы, заданные в .gitignore и .hgignore.

fzf вместо обычного поиска

Быстрая программа для поиска по любым спискам, будь то файл или все файлы в директории. Позволяет интерактивно искать по названию, имеет плагин для редактора vim, есть хоткеи и автодополнение.

mcfly вместо стандартной истории

Заменяет обычный поиск по истории команд, запускающийся сочетанием Ctrl+R. McFly представляет из себя интеллектуальный поисковой движок с небольшой встроенной нейросетью, которая в реальном времени выдаёт подсказки исходя из контекста.

choose вместо awk

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Быстрый и удобный аналог awk — мощной встроенной команды для работы с текстом и фильтрации нужных данных. choose использует более понятный синтаксис Rust для регулярных выражений, быстрый выбор части файла похож на синтаксис слайсов в Python, обходит конкурентов на больших объёмах данных.

jq вместо sed

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Аналог sed, но разработан для работы с JSON-форматом. Проводит операции со структурированными данными в виде потока и выводит соответствующий результат. Написан на C, не имеет зависимостей — достаточно скачать только бинарный файл. Из минусов jq — отсутствие нормальной документации и прекращённая несколько лет назад поддержка.

sd вместо sed

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

cheat вместо man

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

tldr вместо man

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Как и предыдущая утилита, tldr помогает ориентироваться в тонне команд и аргументов для них. Представляет из себя упрощённый и понятный man, дополняется сообществом, обладает десятками плагинов и выводит текст в цветном и структурированном формате.

bottom вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Кроссплатформенный системный монитор с кастомизируемым интерфейсом и массой функций. Прямо в терминале в реальном времени отображает состояние «железа», нагрузку, а также запущенные процессы.

glances вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Очередной инструмент для мониторинга состояния системы в терминале. Кроссплатформенный, показывает большое количество информации, оптимизирует отображение данных в зависимости от размера окна. Умеет работать в режиме клиент-сервер: на одном ПК запускается серверная часть, а на другом устройстве можно открыть веб-интерфейс в браузере.

gtop вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Третья программа в подборке для просмотра статистики о машине. Вдохновлена htop, выдаёт структурированные данные с графиками, меняющимися в реальном времени.

hyperfine вместо сложных замеров скорости

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Бенчмарк, измеряющий время выполнения конкретной команды и умеющий сравнивать скорость нескольких программ. Может использоваться для определения самой быстрой утилиты в классе или тестирования собственных приложений.

gping вместо ping

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Тот же ping для проверки соединения с другим узлом сети, но с красивым и информативным графиком.

procs вместо ps

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Современная замена команде ps, выводящей список процессов в системе. Показывает данные в удобном для пользователя формате, с цветами и автоматической темой, основанной на цветах терминала. Имеется поиск, добавлена информация, которой нет в обычной ps, больше данных о памяти, древовидное отображение. procs написана на Rust и активно поддерживается разработчиком.

curlie вместо curl

zoxide вместо cd

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

zoxide — молниеносная и интеллектуальная замена привычной команде cd. Отслеживает наиболее используемые директории и благодаря этому предлагает подсказки.

dog вместо dig

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

DNS-клиент на Rust, позволяющий узнать адрес узла по доменному имени. Имеет большое количество опций для запросов, цветной вывод, а также отображение данных в JSON-формате.

Читайте также: