Выжимаем максимум из стандартной консоли Astra Linux!
Финальный выпуск
Продолжаем трансформацию штатной консоли Astra Linux в полноценный рабочий комбайн. Это второй и заключительный материал в рамках данной темы. Как и обещал в первой части, я записал несколько демонстрационных роликов, показывающих возможности spf (superfile) и lazyvim. Этими видео я хочу наглядно доказать, что мышь и графическая оболочка нужны далеко не всегда. Если вы администрируете удаленный сервер (особенно бюджетный VDS), внедрение этих инструментов многократно повысит вашу продуктивность.
В этом выпуске мы не будем разделять машины на сервер и клиент, а выполним все действия на одном компьютере. Перечисленные ниже утилиты одинаково полезны как на локальной машине, так и на удаленном хосте.
Сначала разберем оставшиеся полезные пакеты, которые не поместились в первую часть, а затем перейдем к видеороликам.
Инсталляция вспомогательных утилит
Начнем разбор дополнительного софта с NeoHtop. Это крайне интересная альтернатива классическим top, htop и btop. Лично мне среди терминальных решений всегда больше нравился htop, однако NeoHtop подкупает полноценным графическим интерфейсом. В чем же подвох? Главный недостаток кроется именно в GUI. Мы ведь ставим этот софт на удаленные серверы, куда подключаемся исключительно по SSH без проброса иксов. В таких условиях графическая утилита попросту не запустится. На удаленных машинах логичнее использовать продвинутый htop или btop.
Впрочем, теоретически (да и практически, я проверял) NeoHtop можно запустить с пробросом графики через ключ -X. Если приложение установлено и на клиенте, и на сервере, связка заработает. Медленно, но функционально. Еще один вариант - поднять веб-версию NeoHtop. Пока искал проект на GitHub, наткнулся на репозиторий, где энтузиасты завернули его в браузер. Сам не тестировал, но поскольку он собран на Tauri и node.js, портировать его в веб не составило труда.
Вводную часть завершили, переходим к установке. Без неприятных сюрпризов в Astra Linux не обошлось. Свежий deb-пакет NeoHtop отказывается запускаться на Astra 1.8.4 из-за устаревшей версии libc6. Придется либо искать древнюю версию пакета, либо компилировать из исходников. Я выберу второй путь, сборка из сорсов на астре уже стала привычным делом. Вот ссылка на официальный репозиторий.
1. Сборка NeoHtop на Astra Linux
Если попытаться установить готовый deb-пакет свежей версии, мы сразу получим ошибку при запуске.

![]()
Этот вывод означает, что бинарный файл NeoHtop был скомпилирован в среде с более новой стандартной библиотекой C (glibc версии 2.39).
Библиотека glibc 2.39 применяется в Debian 13 (Trixie), тогда как Astra Linux 1.8 согласно официальной документации базируется на Debian 12 (Bookworm).
В Debian 12 используется glibc 2.36.

Поэтому будем собирать из исходников. Если вы уже успели поставить deb-пакет, удалите его.
sudo apt remove -y neo-htop

Для начала открываем официальный репозиторий NeoHtop и находим справа раздел Releases.

Переходим в Assets.

И скачиваем Source code (tar.gz).
![]()
Чтобы сборка прошла успешно, потребуется установить ряд зависимостей.
Обновим список пакетов:
sudo apt update
Теперь инсталлируем все необходимое для компиляции:
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev

Далее перемещаемся в /opt/sourcecode (если вы не создавали эту директорию в первой части, сделайте это сейчас. Она служит для хранения исходников, чтобы при необходимости их можно было легко найти и удалить).
cd /opt/sourcecode
Копируем скачанный архив (на момент написания это версия 1.2.0, у вас имя файла может отличаться).
cp ~/Загрузки/neohtop-1.2.0.tar.gz .
Распаковываем:
tar -xvf neohtop-1.2.0.tar.gz
Удаляем ненужный более архив:
rm -rf neohtop-1.2.0.tar.gz
Заходим в распакованную папку:
cd neohtop-1.2.0
Теперь инсталлируем nodejs и npm, которые требуются для работы NeoHtop.
sudo apt install nodejs npm

После установки проверим версию node:
node -v
Если вывод показывает 18.x или 20.x, все отлично.

Инсталляция JS-зависимостей проекта.
Находясь в папке с исходниками, подтягиваем библиотеки для фронтенда:
cd /opt/sourcecode/neohtop-1.2.0
npm install

Сообщения про husky и git не являются критическими ошибками. husky - это инструмент для разработчиков, настраивающий автоматические проверки кода перед коммитом. Поскольку мы скачали исходники архивом (без скрытой папки .git), он не может найти репозиторий и пропускает этот шаг. На саму сборку программы это никак не влияет. Предупреждения об уязвимостях (vulnerabilities) тоже можно смело игнорировать.
Переходим к самому главному этапу - компиляции приложения.
Запускаем полную сборку. Эта команда самостоятельно вызовет cargo build для Rust-части, предварительно собрав веб-интерфейс:
npm run tauri build

Сборка Tauri-приложений требует заметно больше времени и ресурсов, чем компиляция обычных скриптов. Наберитесь терпения.

Если сборка прошла успешно и в конце появились зеленые надписи Finished release [optimized], готовый бинарный файл будет лежать по пути:
/opt/sourcecode/neohtop-1.2.0/src-tauri/target/release/NeoHtop

Скопируем его в системную папку, чтобы запускать из любого места:
sudo cp src-tauri/target/release/NeoHtop /usr/local/bin/

Пробуем запустить NeoHtop:
NeoHtop

Теперь мы можем просто ввести NeoHtop в терминале. Ошибки GLIBC_2.39 not found больше не появится, так как программа собрана специально под нашу версию библиотеки.
Но есть одно НО. При установке deb-пакета система сама создает ярлыки для запуска. Давайте сделаем это вручную.
Подберем иконку для нашего ярлыка, посмотрим, что есть в исходниках.

Отлично, данная картинка идеально подходит.
Создадим ярлык на панели задач:
nvim ~/.fly/toolbar/NeoHtop.desktop
[Desktop Entry]
Name=NeoHtop
Type=Application
Comment=system monitor
Exec=NeoHtop
Icon=/opt/sourcecode/neohtop-1.2.0/src-tauri/icons/icon.png
Terminal=false
X-Fly-OriginFile=/usr/share/applications/NeoHtop.desktop
Обратите внимание, я прописал путь к иконке ярлыка в /opt/sourcecode.
![]()

Теперь создадим ярлык в системе, чтобы можно было запускать и через меню «Пуск».
sudo nvim /usr/share/applications/NeoHtop.desktop
[Desktop Entry]
Categories=
Comment=system monitor
Exec=NeoHtop
Icon=/opt/sourcecode/neohtop-1.2.0/src-tauri/icons/icon.png
Name=NeoHtop
Terminal=false
Type=Application
![]()
После создания ярлыков можно либо перезагрузиться, либо выйти из учетной записи и зайти обратно, либо перезапустить сессию (нас выкинет из учетной записи):
sudo systemctl restart fly-dm
После повторного входа мы увидим ярлык на панели задач.

При нажатии на него открывается GUI-окно с приложением NeoHtop.


Ниже я прикреплю скриншот с запущенным htop, под ним neohtop и справа btop.

LazyDocker представляет собой великолепный TUI-инструмент для управления и мониторинга контейнеров Docker. Незаменимая вещь для тех, кто регулярно взаимодействует с контейнеризацией.
Установка предельно простая:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
Единственное, что нужно сделать, это прописать в .zshrc путь на запуск lazydocker.

nvim ~/.zshrc
Дописываем в конце файла:
alias lzd="~/.local/bin/lazydocker"
Для своего удобства я сократил команду до lzd, но можно использовать и полное имя, просто замените lzd= на lazydocker=.

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

Запущу docker compose:

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

Следующий пункт программы - lazyssh. Крайне полезная утилита, позволяющая хранить список серверов, привязывать к ним SSH-ключи и проверять доступность хостов одним нажатием. Я пользуюсь ею постоянно. Особенно она выручает, когда лень вспоминать IP-адрес нужной машины. Прописал один раз - и выбираешь из удобного списка.
Установим jq для парсинга json:
sudo apt install jq
Теперь выполним ряд команд согласно документации:
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/Adembc/lazyssh/releases/latest | jq -r .tag_name)
curl -LJO "https://github.com/Adembc/lazyssh/releases/download/${LATEST_TAG}/lazyssh_$(uname)_$(uname -m).tar.gz"
tar -xzf lazyssh_$(uname)_$(uname -m).tar.gz
sudo mv lazyssh /usr/local/bin/
Запускаем lazyssh:
lazyssh

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

Выглядит она точно так же, как представлено на скриншоте выше. Ставится несложно. Загружаем с официального репозитория на GitHub deb-пакет и инсталлируем его.
![]()
sudo dpkg -i ~/Загрузки/duf_0.9.1_linux_amd64.deb

Запуск производится командой:
duf
Можно при желании через alias в .zshrc заменить обычный df на duf, тогда можно будет запускать привычной командой.

ncdu является продвинутой заменой команде du, позволяющей узнать размер файлов и папок. Если с du приходится комбинировать ее с другими инструментами и писать сложные конструкции, то ncdu работает по принципу: запустил в нужной директории и сразу видишь самые объемные объекты. Обожаю эту утилиту, она не раз выручала при поиске мусора, забившего диск.
Установка самая простая из нашего списка, данная утилита официально присутствует в репозиториях Astra Linux. Но если хотите, можно взять ее и с официального репозитория GitHub.
Ставим простой командой:
sudo apt install -y ncdu


Запускается так же просто:
ncdu

Linutil - это мощнейшая TUI-утилита с псевдографическим интерфейсом, напоминающим mc или старый BIOS Setup. Автором является известный Linux-блогер Chris Titus. По сути, это гигантская подборка готовых скриптов для автоматизации настройки, оптимизации и обслуживания Linux-систем, упакованная в удобное меню. Идеально подходит для ситуаций, когда нужно быстро выполнить рутинные действия без поиска команд в интернете.
Ссылка на репозиторий.
Ставится проще некуда, вернее она вообще не ставится, а выгружается прямо в оперативную память:
curl -fsSL https://christitus.com/linux | sh
Или, если хотите использовать бинарный файл напрямую:
curl -fsSL https://github.com/ChrisTitusTech/linutil/releases/latest/download/linutil -o linutil
chmod +x linutil
sudo ./linutil

Случайно запустил установку ollama, естественно она не встала.

Возможно, для Astra Linux это не полноценный инструмент ввиду особых подходов к установке тех или иных программ, но как дополнительное средство он крайне полезен.
В предыдущей части мы ставили fastfetch и собирали его из исходников, так как он не вставал из коробки. Я попробовал установить на машину, где уже есть fastfetch, с помощью утилиты linutil, и был приятно удивлен. Она сама скачала, установила и настроила zshrc так, что при запуске терминала автоматически вызывается команда fastfetch. Из личного опыта хочу сказать, что это крутой инструмент. Я сам разрабатываю по сей день похожую утилиту, только для себя, чтобы ускорить собственную рутину, а тут решение доступно всем желающим.



Я запустил лишь linutil, выбрал из списка fastfetch и получил готовый результат. В linutil много всего есть: от браузеров, утилит, принтеров и заканчивая даже рутинными командами по созданию пользователей.



Да-да, снова lazy 😃
Lazygit - это потрясающий инструмент для взаимодействия с Git. Да, набать git add, git commit -m, git push не так уж сложно. Но когда дело доходит до работы с ветками, просмотра сложных логов или разрешения конфликтов, ручной ввод команд быстро утомляет. Кроме того, если вы используете Git не ежедневно, специфические команды попросту выветриваются из головы. Lazygit позволяет хоткеями не только коммитить, но и визуально оценивать дерево веток и историю. Официальный репозиторий здесь.
Установка не сложная:
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | \grep -Po '"tag_name": *"v\K[^"]*')
LAZYGIT_ARCH=$(uname -m | sed -e 's/aarch64/arm64/')
curl -Lo lazygit.tar.gz https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_${LAZYGIT_ARCH}.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit -D -t /usr/local/bin/


Запустим lazygit командой:
lazygit



На этом список дополнительных утилит можно завершить. Разумеется, существует еще масса полезного софта, но я сознательно стараюсь не злоупотреблять сторонними решениями. Причина проста: к хорошему быстро привыкаешь. И когда попадаешь на чужой сервер, где нет твоих любимых lazyvim, nvim, neohtop, duf, ncdu, lazydocker, начинаешь судорожно вспоминать базовый синтаксис. То же самое касается режима восстановления Astra Linux, где из редакторов доступен лишь архаичный vi. Классика есть классика, и уметь работать с ней необходимо в первую очередь. Новомодные обертки - это лишь приятное дополнение. Не стоит браться за neohtop, если вы не освоили обычный top.
Демонстрация работы lazyvim и superfile
Быстрый пример с superfile:
Три развернутых ролика:
На этом цикл статей по улучшению терминала подошел к своему логическому завершению. Как вы могли убедиться, с помощью нехитрых манипуляций скучную консоль можно превратить в полноценный рабочий комбайн. Честно говоря, штатный fly-term от разработчиков Astra Linux и так весьма неплох. В нем присутствует все необходимое, он даже умеет делить окно на панели, как это делают tmux или terminator. Так зачем же тогда тратить время на кастомизацию? Ответ кроется в психологии: в каждом линуксоиде со временем просыпается желание подогнать систему под себя. Вот и мы превратили удобный, но стандартный терминал в уникальный и мощный инструмент для повседневных задач.
Надеюсь, вы почерпнули из этих двух частей что-то полезное для себя. Удачи в администрировании!
📚 Все части цикла «Превращаем терминал Astra Linux в мощный инструмент»: