nnn — файловый менеджер для терминала, написанный на C. У него нет графических зависимостей, кроме ncurses, а бинарник занимает около сотни килобайт и запускается мгновенно даже на слабой машине. Вместо мыши и панелей с вкладками здесь клавиатурная навигация, закладки, фильтр по имени и подключаемые плагины. Инструмент хорошо подходит для сервера без графики, для tmux и для тех, кто устал от тяжёлых файловых менеджеров, но не хочет запоминать десятки неочевидных сочетаний.

Чем nnn отличается от других

Философия простая: одна панель, минимум хрома, внешние команды вместо встроенных просмотрщиков. Предпросмотр, архивирование, корзина и даже воспроизведение музыки вынесены в плагины — небольшие скрипты, которые вызываются по горячей клавише. Ядро остаётся компактным, а поведение настраивается переменными окружения, а не отдельным конфигурационным файлом. За счёт этого nnn легко переносить между дистрибутивами: достаточно скопировать несколько строк в ~/.bashrc или ~/.zshrc.

Установка

Пакет есть в Debian, Ubuntu, Linux Mint, Fedora, Arch и openSUSE. Версия из репозитория обычно отстаёт на один-два выпуска, но для повседневной работы этого достаточно. Если нужна свежая сборка, её собирают из исходников, предварительно установив компилятор и заголовки ncurses.

sudo apt install nnn
nnn -h
nnn -d -H ~/Documents
man nnn

Ключ -d включает подробный режим с размером, правами и временем изменения, -H показывает скрытые файлы. Оба флага можно задать постоянно через переменную NNN_OPTS, чтобы не набирать их каждый раз.

Навигация и основные клавиши

Перемещение стрелками или j и k, вход в каталог — Enter или l, возврат на уровень выше — h или Backspace. Клавиша . переключает скрытые файлы, / запускает фильтр по имени, d открывает подробный режим. Пробел выделяет файл, a выделяет всё, y копирует, x вырезает, p вставляет. Для переименования служит r, для создания файла или каталога — n, для редактирования в $EDITOR — e. Клавиша ? показывает справку, q выходит.

Полезны быстрые переходы: ~ ведёт в домашний каталог, - — в предыдущий, @ — в стартовый. Закладки задаются клавишей b, переход к ним — апострофом. Восклицательный знак открывает shell в текущем каталоге, что удобно для разовой команды без выхода из менеджера.

  • Назначьте закладки на два-три рабочих каталога через NNN_BMS.
  • Включите подробный режим через постоянную опцию NNN_OPTS='dH'.
  • Проверьте, что каталог плагинов существует и доступен на чтение.
  • Настройте корзину до первой операции удаления.

Настройка через окружение

nnn читает переменные при старте. Главные из них — NNN_BMS для закладок, NNN_PLUG для привязки плагинов, NNN_OPENER для программы открытия и NNN_TRASH для безопасного удаления. Строки лучше держать в rc-файле оболочки: так они переживут обновление пакета и будут одинаковы в tmux и ssh-сессиях.

export NNN_BMS='d:~/Documents;D:~/Downloads;c:~/.config;p:~/Pictures'
export NNN_PLUG='p:preview-tui;t:trash;g:gitstatus'
export NNN_OPENER=mimeopen
export NNN_TRASH=1
export NNN_OPTS='dH'

Формат NNN_BMS — пары «клавиша:путь» через точку с запятой. В NNN_PLUG указывается клавиша и имя скрипта из каталога плагинов. Если плагин не найден, nnn не выдаст подробную ошибку, а просто ничего не сделает, поэтому путь стоит проверить отдельно.

Плагины

В дистрибутивном пакете плагины лежат в отдельном каталоге. Точное расположение зависит от сборки, поэтому его определяют через список файлов пакета. Свои скрипты можно положить в ~/.config/nnn/plugins — пользовательский каталог имеет приоритет.

dpkg -L nnn | grep -i plugins
ls /usr/share/nnn/plugins
mkdir -p ~/.config/nnn/plugins
nnn -d

Плагин preview-tui показывает содержимое файла в соседней панели tmux; для картинок ему нужен chafa или похожий просмотрщик, для текста достаточно bat или less. Плагин trash перемещает файлы в корзину через trash-cli, а gitstatus выводит состояние репозитория. После изменения NNN_PLUG менеджер нужно перезапустить: переменные читаются только при старте.

Выделение файлов и скрипты

Выделенные пробелом файлы можно передать внешней команде. Для этого удобен ключ -p: он указывает файл, куда nnn записывает список при выходе. Дальше с ним работает любой инструмент, читающий строки, — от ls до rsync. Это превращает менеджер в удобный селектор для пакетной обработки.

nnn -p /tmp/nnn_selection
xargs -a /tmp/nnn_selection -d '\n' ls -lh
xargs -a /tmp/nnn_selection -d '\n' cp -t ~/backup
xargs -a /tmp/nnn_selection -d '\n' rm -i

Проверяйте список перед удалением: xargs не спрашивает подтверждения, а имена с пробелами требуют нулевого разделителя. Для сложных имён надёжнее find -print0 и xargs -0, но в случае с nnn разделитель уже задан явно.

Диагностика

Если nnn открывается, но плагины и предпросмотр не работают, почти всегда виноват путь или отсутствующая утилита. Проверьте, какие переменные видит процесс, и убедитесь, что скрипт исполняемый. Проблемы с отображением в tmux обычно связаны с TERM и поддержкой цветов, а не с самим менеджером.

echo "$NNN_PLUG"
ls -l ~/.config/nnn/plugins
file ~/.config/nnn/plugins/preview-tui
nnn -d -x ~/Downloads

Флаг -x включает уведомления о действиях и помогает понять, сработала ли команда. Для проверки окружения запускайте nnn из той же оболочки, где заданы переменные: cron и systemd не читают ~/.bashrc, поэтому там настройки нужно прописывать отдельно.

Когда nnn не подойдёт

nnn сознательно экономит на встроенных возможностях. Здесь нет файлового дерева, встроенного просмотра PDF и полноценного двухпанельного режима, как в Midnight Commander. Предпросмотр зависит от внешних утилит, а настройка целиком держится на переменных окружения — новичку это кажется неудобным. Если нужна мышь, встроенные операции с архивами и работа без чтения документации, лучше выбрать файловый менеджер с графическим интерфейсом.

Зато на сервере, где нет X11, nnn остаётся одним из самых предсказуемых вариантов: он не тянет Python-зависимости, быстро реагирует и переживает разрыв ssh-сессии вместе с tmux. Для сценариев, где важна каждая секунда запуска, это заметное преимущество. Платой за скорость остаётся привычка: первые дни придётся держать справку под рукой.

Итог

nnn — пример инструмента, который делает одну вещь и не мешает остальным. Он быстро стартует, работает по ssh и расширяется плагинами без раздувания ядра. Начните с установки и трёх-четырёх клавиш, затем добавьте закладки и preview-tui. Если же нужен встроенный предпросмотр изображений и мышиная навигация из коробки, проще посмотреть в сторону более тяжёлых менеджеров.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте