Средство просмотра прогресса команд Coreutils
Отслеживайте и отображайте ход выполнения команд Coreutils в Linux.
Поскольку мир все чаще использует программное обеспечение с открытым исходным кодом, Linux стал фаворитом среди многих технических энтузиастов. Его гибкость, безопасность и широкие возможности настройки сделали его популярным как для разработчиков, так и для системных администраторов. Одна из многих сильных сторон Linux заключается в его надежном интерфейсе командной строки (CLI), который можно дополнить различными утилитами. Сегодня мы углубимся в мир одной такой утилиты, которая расширяет возможности интерфейса командной строки — Progress, ранее известная как cv (Coreutils Viewer).
Что такое прогресс?
Прогресс — это небольшой, но мощный инструмент, предназначенный для мониторинга и отображения хода выполнения основных команд coreutils (cp
, mv
, dd
, tar
, gzip
, gunzip
, cat
и т. д.), которые в данный момент работают в вашей системе.
Прогресс отображает процент скопированных данных и может даже оценивать время и пропускную способность. Для пользователей, которым нужен постоянный мониторинг, он также предоставляет режим «top-like».
Инструмент Progress — это бесплатное приложение с открытым исходным кодом, разработанное с использованием языка программирования C. Он разработан для совместимости с несколькими платформами, включая Linux, FreeBSD и macOS.
Как работает прогресс?
Progress работает путем сканирования /proc
на наличие интересных команд. Затем он проверяет каталоги fd
и fdinfo
, чтобы найти открытые файлы и найти позиции, впоследствии сообщая о состоянии самых больших файл. В macOS те же операции выполняются с использованием libproc
.
Несмотря на свои обширные возможности, Progress очень легок и совместим практически с любой командой.
Установка прогресса
Процесс установки Progress прост и зависит от типа используемой системы.
Для систем на базе Debian (Debian, Ubuntu, Mint и т. д.) откройте терминал и запустите:
sudo apt install progress
Если вы используете Arch Linux, EndeavourOS и Manjaro Linux, откройте терминал и выполните:
sudo pacman -S progress
Пользователи Fedora могут установить прогресс, открыв терминал и набрав:
sudo dnf install progress
Для openSUSE откройте терминал и введите:
sudo zypper install progress
В macOS с Homebrew откройте терминал и запустите:
brew install progress
Если вы предпочитаете MacPorts в macOS, откройте терминал и введите:
sudo port install progress
Сборка из исходного кода
Для тех, кто предпочитает сборку из исходного кода, процесс прост.
Убедитесь, что в вашей системе установлены необходимые инструменты сборки и библиотеки. Перейдите по следующей ссылке, чтобы установить инструменты разработки.
Как установить инструменты разработки в Linux
Далее загрузите исходный код для прогресса:
git clone https://github.com/Xfennec/progress.git
Перейдите в каталог, в котором клонирован исходный код.
cd progress
Запустите следующую команду, чтобы скомпилировать и установить прогресс:
make && sudo make install
Если вы используете FreeBSD, используйте «gmake» вместо «make».
Если вы обнаружите какие-либо ошибки, связанные с отсутствием библиотеки ncurses при сборке из исходного кода, вам необходимо установить Ncurses в вашей системе Linux.
В зависимости от вашего дистрибутива используйте соответствующий менеджер пакетов для установки необходимых пакетов ncurses. Например:
Для систем на базе Debian используйте:
sudo apt install libncurses5-dev
Для Arch Linux используйте:
sudo pacman -S ncurses
Для Fedora используйте:
sudo dnf install ncurses-devel
Использование силы прогресса
Progress можно использовать множеством способов для мониторинга вашей системы. Позвольте мне показать вам несколько примеров.
1. Мониторинг команд Coreutils
Чтобы отслеживать все текущие и предстоящие экземпляры команд coreutils в простом окне, введите следующую команду:
watch progress -q
2. Мониторинг хода загрузки
Чтобы отслеживать ход загрузки при использовании Firefox, выполните следующую команду:
watch progress -wc firefox
3. Мониторинг активности веб-сервера
Чтобы следить за активностью вашего веб-сервера, введите следующую команду:
progress -c httpd
4. Мониторинг тяжелых команд
Мы можем запускать и отслеживать любую тяжелую команду, используя $!
. Взгляните на следующий пример.
cp bigfile newfile & progress -mp $!
Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.
cp bigfile newfile &
: эта команда копирует файл с именемbigfile
в новый файл с именемnewfile
. Амперсанд&
в конце запускает команду в фоновом режиме, позволяя пользователю продолжать использовать оболочку, не дожидаясь завершения команды.progress -mp $!
: эта команда использует утилитуprogress
для отслеживания хода самого последнего фонового процесса. Вот что делают флаги:-m
включает режим мониторинга, который обновляет статистику хода выполнения в реальном времени до завершения отслеживаемого процесса.
-p
сообщаетprogress
отслеживать конкретный идентификатор процесса (PID).$!
— это специальная переменная оболочки, содержащая PID последнего запущенного фонового процесса.
Итак, подведем итог: вся команда копирует файл в фоновом режиме и одновременно отслеживает ход этой операции копирования с помощью утилиты progress
.
Возможности Progress обширны и могут быть адаптированы в соответствии с вашими потребностями.
Связанное чтение:
- Расширенное копирование: добавление индикатора выполнения к командам cp и mv в Linux
- Как отслеживать движение данных по каналу с помощью команды «pv»
Заключение
Утилита Progress — это полезный инструмент, который обеспечивает простой и эффективный способ мониторинга различных процессов и действий в вашей системе. Если вам нужно отслеживать ход загрузки, отслеживать активность веб-сервера, наблюдать за выполнением сложных команд или следить за командами coreutils, Progress предлагает ряд функций, отвечающих вашим потребностям.
Предлагая ценную информацию о выполнении команд, Progress помогает в мониторинге системы и оценке производительности. Если вы разработчик, системный администратор или просто технический энтузиаст, желающий использовать возможности утилит командной строки, Progress может стать существенным дополнением к вашему набору инструментов.
Как и в случае с любым другим инструментом, лучший способ по-настоящему оценить его возможности — это использовать его. Итак, попробуйте Progress и откройте для себя новый уровень эффективности командной строки.
Ресурс:
- Репозиторий Progress на GitHub