A file manager is a tool that helps you keep your filesystem in order. There are some really good ones for the terminal. Sure, learning system commands for managing your files is really important, but mastering a terminal file manager just takes things to another level.
Note: See the parent document: Using the Terminal as a Daily Driver for more about terminal productivity applications.
Yazi, Ranger, and LF have a very similar look and feel and are excellent. Midnight Commander has a much different look and feel. For that reason alone, it is worth taking a look.
Yazi
I currently use Yazi the most as a file manager. It hits the sweet spot for me.
There’s a lot to love with Yazi. I like the colored syntax highlighting when previewing code files. It’s fast, written in rust, and even supports image previews.
Yazi Installation
I had initially installed Yazi on my system by compiling from source with rust. But alas, when I tried to upgrade to a newer version, I was having difficulty with my rust toolchain. So instead, I uninstalled it from rust and replaced it using homebrew. I have had pretty good results using homebrew on Linux, so no complaints there.
brew install yazi
Yazi Configuration
The Yazi configuration files are stored in the ~/.config/yazi folder. There are three primary configuration files for Yazi:
yazi.toml- General configurationkeymap.toml- Key bindingstheme.toml- Sets color scheme
These files are used to override default Yazi settings.
Ranger
Another worthy file manager. Its basic movement commands are inspired by vim and the application design is influenced by Midnight Commander.
- Ranger Home Page
- Ranger Documentation
- Ranger Source Code
- Ranger Official User Guide - part of the wiki.
Ranger Installation
Ranger version 1.9.3 was available for installation in my Linux Mint software manager. The source code on GitHub was at version 1.9.4, so instead of using software manager, I installed it with:
uv tool install ranger-fm
# to run ranger
ranger
This installed two tools, ranger the file manager, and rifle, a helper tool that aids with opening a file correctly.
Ranger Configuration
Ranger’s configuration is stored in ~/.config/ranger/rc.conf. One nice thing about the rc.conf file is that it only needs to contain the options you want to override from ranger’s defaults.
Midnight Commander
Midnight Commander has been around forever (since 1994). Its longevity speaks to how good it is. Of all the applications reviewed here, this is the only terminal application I remember using from back in my DOS days.
Mc is very full featured and includes its own editor, file viewer and file difference tools. If you have never encountered this file manager, it’s well worth taking a look at.
Help can be accessed by pressing F1 or checking out the “man” pages for mc, mcedit, mcview, and mcdiff.
Midnight Commander Installation
Mc installs from my system package manager.
sudo apt install mc
LF - Terminal File Manager
Lf - list files, is a terminal file manager written in the Go programming language. It draws a lot of inspiration from Ranger as well. Lf uses vim-style key-bindings for navigating the folder structure and managing files.
Also, don’t neglect looking at the “man” page for lf, it is quite extensive.
This one took me a little to get used to. It uses the letter e to launch the editor and I have been used to pressing Enter. Since then, I’ve also learned you can press l (right) to run the default application for opening a file.
LF Installation
I just used my system package manager to install lf. That means I am currently running version “31+ds”. Their GitHub releases page shows the current version as “41” of 2/3/2026. So, there are looks to be significant changes from the version I’m currently running.
sudo apt install lf
LF Configuration
The configuration file lfrc is in the ~/.config/lf folder. There are also some sample files in the lf etc folder on their GitHub site. I did have some trouble getting the icons to show up. But, I had started by copying the icons_colored.example file to an ~/.config/lf/icons file. When I switched to the plain icons.example file, they worked fine.
LF is a minimal application that has room for lots of configuration. For example, there is no image preview out of the box. See Luke Smith’s LF Video for additional information. Here is a link to his Sample Configuration Files as well.
LF Commands
Here are some basic keys to get started. For more information see the Quick Reference Documentation.
| Keystroke | Description |
|---|---|
| +++ | **Navigation Commands |
q | quit |
j | down |
k | up |
| half pg up | |
| half pg down | |
| , | pg up |
| , | pg dn |
h, | move to parent dir |
l, | open current dir, or run default file opener |
gg, | go to top |
G, | go to bottom |
gh | go to home ~ folder |
| +++ | File / Folder Selections & Manipulation |
| toggle current selection | |
v | invert selection |
u | unmark all selections |
y | copy current file or selection |
d | cut current file or selection |
p | paste current file or selection |
c | clear copied or cut files |
| +++ | Shell Interactions |
: | read a builtin or custom command |
$ | run a command in the shell |
% | shell pipe |
! | shell wait runs shell command and waits for keypress |
& | run a shell command in the background |
| +++ | Searching |
/ | search command |
? | search backwards |
n | search for next item |
N | search for previous item |
| +++ | Options |
z | toggle various settings |
za | - display file size and timestamp |
zh | - toggle hidden file display |
zn | - display only filenames |
zr | - reverse file sort |
zs | - display file sizes |
zt | - display timestamp |
s | change sort by and info options |
sa | - sort by file access time |
sc | - sort by file change time |
se | - sort by file extension |
sn | - sort by file name |
ss | - sort by file size |
st | - sort by file time |
e | launch editor |
i | launch pager (e.g. cat) |
w | launch shell |