Knowing how to edit files quickly and effectively via the command line is vital for every Linux system administrator. File edits are performed on a daily basis, whether it’s a configuration file, user file, text document, or whatever file you need to edit.
It’s a good idea to choose a favorite command-line text editor and master it. While it’s beneficial to know how to use various text editors, mastering at least one is essential for handling more complex tasks.
In this tutorial, we will introduce you to the most common command-line text editors in Linux and discuss their pros and cons.
However, we will not provide a comprehensive guide on how to work with each one of them, as that could be an entirely separate article with detailed explanations.
1. Vi/Vim Editor
First in our list is the infamous Vi/Vim (Vim comes from Vi improved), which is a very flexible text editor that can perform many different operations on text.
For example, you can use regular expressions in Vim to replace text snippets within a file. This, of course, isn’t its only advantage, it also offers easy navigation between lines, words, paragraphs, and text highlighting.
Vim may not be the most user-friendly text editor, but it is often preferred by developers and Linux power users. If you want to install the Vim command line text editor on your system, you can use the command associated with your Linux distribution:
Install Vi/Vim Editor in Linux
$ sudo apt install vim [On Debian, Ubuntu and Mint] $ sudo yum install vim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/vim [On Gentoo Linux] $ sudo apk add vim [On Alpine Linux] $ sudo pacman -S vim [On Arch Linux] $ sudo zypper install vim [On OpenSUSE]
If you’d like to view our comprehensive coverage of Vim, please refer to the links below:
2. Nano Editor
Nano is probably one of the most used command-line text editors. The reason for this is its simplicity and the fact that it’s preinstalled in most of the Linux distributions.
Nano doesn’t have Vim’s flexibility, but it will definitely do the work if you need to edit a large file. Actually, pico and nano are quite similar.
Both have their command options displayed at the bottom so you can choose which one to run. Commands are completed with key combinations of Ctrl and a letter displayed at the bottom.
Nano has the following features that you can use out of the box:
- Get Help
- Write out
- Read File
- Where is (search)
- Previous page
- Next page
- Cut Text
- Uncut Text
- Cur Pos (Current position)
- Spell check
Install Nano Editor in Linux
$ sudo apt install nano [On Debian, Ubuntu and Mint] $ sudo yum install nano [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/nano [On Gentoo Linux] $ sudo apk add nano [On Alpine Linux] $ sudo pacman -S nano [On Arch Linux] $ sudo zypper install nano [On OpenSUSE]
You can refer to our comprehensive guide on editing files with the Nano editor in the Linux command line.
3. Emacs Editor
This is probably the most complex text editor on our list. It’s the oldest command line editor available for both Linux and UNIX-based systems. Emacs can help you be more productive by providing an integrated environment for different kinds of tasks.
At first, the user interface may look somehow confusing. The good thing is that emacs has a very detailed manual that will help you with file navigation, edits, customization, and setting up commands. Emacs is the ultimate tool used by advanced *Nix users.
Here are some of the features that make it the preferred choice over the previous editors we mentioned:
- The Emacs server platform enables multiple hosts to connect to the same Emacs server and share the buffer list.
- Powerful and extensible file manager.
- Customization beyond a regular editor – as some say it’s an OS within the OS.
- Commands customization.
- Can change to Vi(m) like mode.
Install Emacs Editor in Linux
Emacs is a multi-platform editor and can be easily installed with the commands shown below:
$ sudo apt install emacs [On Debian, Ubuntu and Mint] $ sudo yum install emacs [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/emacs [On Gentoo Linux] $ sudo apk add emacs [On Alpine Linux] $ sudo pacman -S emacs [On Arch Linux] $ sudo zypper install emacs [On OpenSUSE]
There are other command line editors, but they barely even reach the functionality that the above 3 provide. Whether you are a Linux newbie or a Linux guru, you will most definitely need to learn at least one of the above-mentioned editors.
If we’ve missed any command-line editor in this article, please don’t forget to inform us via comments.