Все статьи

10 инструментов Linux, которые делают терминал удобнее

10 инструментов Linux, которые делают терминал удобнее

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

В этой подборке — инструменты Linux, которые я сам добавил в окружение или внимательно тестировал. Почти все работают в терминале, большинство написаны на Rust и Go, а у каждого есть свои ограничения, о которых лучше знать заранее.

rmt: удаление через корзину вместо безвозвратного rm

Классическая ситуация: вы выполняете rm на файл, через секунду понимаете, что это был не тот файл, и вспоминаете, что не закоммитили его в git. Обычный rm не оставляет шанса — файл не попадает ни в какую корзину.

rmt — утилита на Rust, которая вместо удаления перемещает файлы в собственную корзину:

rmt hello.txt              # переместить файл в корзину
rmt folder test.txt *.sh   # несколько файлов и папок сразу
rmt --ti                   # информация о содержимом корзины
rmt --td                   # интерфейс корзины: восстановить или удалить элементы
rmt --tf                   # очистить корзину

Я планирую поставить rmt вместо rm через алиас. В fish это строка в ~/.config/fish/config.fish:

alias rm rmt
alias cat bat

Важная оговорка: алиас работает только в интерактивной оболочке. Скрипты продолжат вызывать настоящий rm, и это правильно — подменять системную команду для скриптов опасно.

Atuin: история команд с поиском и синхронизацией

Atuin заменяет стандартную историю оболочки на базу данных. Каждая команда сохраняется вместе с каталогом, временем и кодом завершения, а поиск по истории открывается по стрелке вверх или Ctrl+R в отдельном интерфейсе.

Где это реально выручает: у меня есть длинная команда ffmpeg для сжатия видео, которую я постоянно забываю и раньше искал в заметках Obsidian. С Atuin достаточно набрать ffmpeg и пару слов из середины команды вроде preset slow — нужная строка находится сразу.

Полезные команды:

atuin import auto      # импортировать существующую историю bash/zsh/fish
atuin history list     # список команд
atuin stats            # самые частые команды

У Atuin есть синхронизация между машинами (atuin register, atuin login, atuin sync): история шифруется на клиенте и отправляется на сервер. Я пользуюсь Atuin на одной машине и не хочу отправлять историю команд на чужой сервер, поэтому ограничился локальным импортом. Если синхронизация нужна, сервер Atuin можно поднять у себя.

Devzat: чат через SSH

Devzat — SSH-сервер, который вместо командной строки открывает чат-комнату. Подключиться можно из любого SSH-клиента, в том числе с телефона:

ssh devzat.hackclub.com
ssh имя@devzat.hackclub.com        # выбрать ник при первом входе
ssh devzat.hackclub.com -p 443     # если обычный порт закрыт

Меня в этом проекте зацепила идея: SSH — одна из базовых вещей, без которой не работает администрирование, поэтому чат на своём сервере остаётся доступен, когда привычные мессенджеры недоступны. Свой экземпляр собирается из исходников на Go и по умолчанию слушает порт 2221. Кроме сообщений и изображений там есть развлечения вроде мини-игр, но главное — простой чат, который можно поднять за минуты.

otter-launcher: лаунчер для тех, кто живёт на клавиатуре

otter-launcher — терминальный лаунчер на Rust для пользователей тайловых оконных менеджеров. Работает он через префиксы-модули:

  • gg запрос — поиск в Google;
  • aw, pac, aur — поиск по Arch Wiki, пакетам и AUR;
  • app — запуск приложений;
  • sh — выполнение команды;
  • po — меню питания.

Модули описываются в TOML-конфиге, так что можно добавить свои: запуск скриптов, управление Bluetooth, открытие часто нужных сайтов. Есть режимы клавиш vi и emacs и вывод изображений в терминале. Минус — пакета нет в большинстве дистрибутивов: на Arch он ставится из AUR (paru -S otter-launcher), в остальных случаях собирается через cargo build --release.

killport: освободить порт одной командой

Знакомая ситуация: запускаете сервер разработки, а порт уже занят процессом, название которого вы не помните. Обычно это поиск через lsof или ss, затем kill. killport делает всё одной командой:

killport 8080                  # убить то, что слушает порт 8080
killport 3000 8080 9090        # несколько портов
killport -s sigterm 8080       # мягкое завершение вместо SIGKILL

По умолчанию отправляется SIGKILL, то есть процесс не успеет сохранить данные. Для базы данных или чего-то с состоянием лучше начинать с -s sigterm.

lsd и eza: читаемый вывод вместо ls

lsd — замена ls на Rust с иконками по типу файла, цветами и понятными размерами. Каталоги, скрипты Bash, файлы Python и Java сразу различаются визуально, а lsd -la показывает права и размеры в читаемом виде вместо байтов. Цвета настраиваются: я, например, сделал права одного цвета, мне так спокойнее.

Похожий результат даёт eza, тоже на Rust. Оба умеют древовидный вывод (--tree), а у eza ещё есть колонка со статусом файлов в git (eza -l --git). Выбирайте по вкусу. Для иконок в обоих случаях нужен шрифт из набора Nerd Fonts.

Noisy и Urusai: шум в логах провайдера

Провайдер видит, к каким доменам вы обращаетесь, даже если содержимое зашифровано. Noisy и его современная реализация на Go Urusai генерируют фоновый HTTP- и DNS-трафик: обходят случайные сайты со стартовых адресов, переходят по ссылкам, меняют user agent. Ваши реальные посещения тонут в этом шуме.

Noisy давно не обновляется, Urusai поддерживается активно и работает на Linux, macOS и Windows, в том числе в Docker:

docker run calpa/urusai
./urusai --config config.json   # свои стартовые сайты, чёрный список, интервалы

Честно о границах: это не анонимность и не замена VPN или Tor. Шум усложняет анализ, но не скрывает трафик, при этом расходует интернет и ресурсы машины.

Bashfuscator: как выглядит обфускация Bash

Bashfuscator превращает читаемую команду или скрипт в нечитаемую, но рабочую последовательность. Инструмент создан для исследований безопасности: он помогает понять, как прячут вредоносные команды, и проверить, ловит ли их защита. Скрыть так логику собственного скрипта надёжно не получится — обфускация лишь замедляет чтение, а запуск под отладкой раскрывает команды.

amazing-qr и cpufetch: две мелочи

amazing-qr создаёт QR-коды прямо из терминала, в том числе поверх картинки или анимированного GIF:

pip install amzqr
amzqr https://zproger-school.com -p logo.png -c -n qr.png

cpufetch — дополнение к fastfetch: красиво выводит модель процессора, микроархитектуру, ядра, частоты и кеши для Intel, AMD и ARM. Работает на Linux, macOS, Windows и FreeBSD.

С чего начать

Задача Инструмент
Не терять файлы после удаления rmt
Быстро находить старые команды Atuin
Освобождать порты killport
Понятный вывод списка файлов lsd или eza
Запуск всего с клавиатуры otter-launcher
Чат на своём сервере Devzat

Я бы начал с Atuin и killport: эффект от них ощущается в первый же день. Если вы подбираете утилиты для поиска файлов, посмотрите отдельный разбор fd вместо find, а для контроля нагрузки — статью про мониторинг Linux. Графические программы для повседневной работы собраны в подборке 10 полезных программ для Linux.

Источники