Last Updated on May 28, 2022
Summary
nnn is an extremely fast and frugal file manager. It employs a variety of optimization techniques to improve performance. To maximize performance, nnn doesn’t adopt a kitchen-sink approach to features, although it’s feature-list is still impressive. And plugins offer a variety of additional functionality.
nnn fully warrants inclusion in our Essential System Tools compilation. Following the release of its latest version, it just pips Midnight Commander to our recommended console-based file manager. If you insist on a GUI interface, Krusader gets our recommendation.
The latest version offers a number of notable improvements including Perl Compatible Regular Expressions (PCRE) support, and some useful keybindings such as F5 keybinding to toggle hidden files, and the reintroduction of e to edit a file in your editor.
Personally I disagree with nnn’s reliance on a terminal multiplexer for multi-pane support. nnn’s design focuses on encompassing multiple utilities wrapped together including file management, file launcher, and disk usage analysis. Given that multi-pane functionality is so useful (at least for me), it seems reasonable for nnn’s design to offer multi-pane support too.

Documentation could be better.
The project hosts a Wiki which provides a lot of useful information, but it’s not complete.
Maybe something you’d want to help with?
As it’s important to learn the keyboard shortcuts, it’s helpful that nnn has some in-program help.
Press ? and get the low-down on the keyboard shortcuts.
Website: github.com/jarun/nnn
Support: Wiki
Developer: Arun Prakash Jana and contributors
License: BSD 2-Clause “Simplified” License
nnn is written in C. Learn C with our recommended free books and free tutorials.
Pages in this article:
Page 1 – Introduction / Installation
Page 2 – In Operation
Page 3 – Disk usage analyzer
Page 4 – Plugins
Page 5 – Memory Usage & Comparison with other console-based file managers
Page 6 – Summary
All the essential tools in this series:
| Essential System Tools | |
|---|---|
| Alacritty | Innovative, hardware-accelerated terminal emulator |
| BleachBit | System cleaning software. Quick and easy way to service your computer |
| bottom | Graphical process/system monitor for the terminal |
| btop++ | Monitor usage and stats for CPU, memory, disks, network and processes |
| catfish | Versatile file searching software |
| Clonezilla | Partition and disk cloning software |
| CPU-X | System profiler with both a GUI and text-based |
| Czkawka | Find duplicate files, big files, empty files, similar images, and much more |
| ddrescue | Data recovery tool, retrieving data from failing drives as safely as possible |
| dust | More intuitive version of du written in Rust |
| f3 | Detect and fix counterfeit flash storage |
| Fail2ban | Ban hosts that cause multiple authentication errors |
| fdupes | Find or delete duplicate files |
| Firejail | Restrict the running environment of untrusted applications |
| Glances | Cross-platform system monitoring tool written in Python |
| GParted | Resize, copy, and move partitions without data |
| GreenWithEnvy | NVIDIA graphics card utility |
| gtop | System monitoring dashboard |
| gWakeOnLAN | Turn machines on through Wake On LAN |
| hyperfine | Command-line benchmarking tool |
| HyFetch | System information tool written in Python |
| inxi | Command-line system information tool that's a time-saver for everyone |
| journalctl | Query and display messages from the journal |
| kmon | Manage Linux kernel modules with this text-based tool |
| Krusader | Advanced, twin-panel (commander-style) file manager |
| Nmap | Network security tool that builds a "map" of the network |
| nmon | Systems administrator, tuner, and benchmark tool |
| nnn | Portable terminal file manager that's amazingly frugal |
| pet | Simple command-line snippet manager |
| Pingnoo | Graphical representation for traceroute and ping output |
| ps_mem | Accurate reporting of software's memory consumption |
| SMC | Multi-featured system monitor written in Python |
| Timeshift | Reliable system restore tool |
| QDirStat | Qt-based directory statistics |
| QJournalctl | Graphical User Interface for systemd’s journalctl |
| TLP | Must-have tool for anyone running Linux on a notebook |
| Unison | Console and graphical file synchronization software |
| VeraCrypt | Strong disk encryption software |
| Ventoy | Create bootable USB drive for ISO, WIM, IMG, VHD(x), EFI files |
| WTF | Personal information dashboard for your terminal |
What optimizations does nnn use? The developer’s website seems unclear on this.
You’ll find the details here: https://github.com/jarun/nnn/wiki/Performance
Thanks, that’s very interesting.