When operating on the Linux command line, it is easy to get disoriented, which can have disastrous consequences. I once issued a remove command before realizing that I'd moved the boot directory of my computer. I learned to use the
pwd command to know exactly which part of the file system I was in (and these days, there are command projects, like
trash-cli, that serve as intermediates when removing files).
When I was new to Linux, I had a cheat sheet that hung over my desk to help me remember those commands as I managed my Linux servers. It was called the 101 commands for Linux cheat sheet. As I became more familiar with these commands, I became more proficient with server administration.
Here are 12 Linux commands I find most useful.
1. Print working directory (pwd)
pwd command prints your working directory. In other words, it outputs the path of the directory you are currently working in. There are two options:
--logical to display your location with any symlinks and
--physical to display your location after resolving any symlinks.
2. Make directory (mkdir)
Making directories is easy with the
mkdir command. The following command creates a directory called
example already exists:
$ mkdir example
You can make directories within directories:
$ mkdir -p example/one/two
one already exist, only directory
two is created. If none of them exist, then three nested directories are created.
3. List (ls)
Coming from MS-DOS, I was used to listing files with the
dir command. I don't recall working on Linux at the time, although today,
dir is in the GNU Core Utilities package. Most people use the
ls command to display the files, along with all their properties, are in a directory. The
ls command has many options, including
-l to view a long listing of files, displaying the file owner and permissions.
4. Change directory (cd)
It is often necessary to change directories. That's the
cd command's function. For instance, this example takes you from your home directory into the
$ cd Documents
You can quickly change to your home directory with
cd ~ or just
cd on most systems. You can use
cd .. to move up a level.
5. Remove a file (rm)
Removing files is inherently dangerous. Traditionally, the Linux terminal has no Trash or Bin like the desktop does, so many terminal users have the bad habit of permanently removing data they believe they no longer need. There's no "un-remove" command, though, so this habit can be problematic should you accidentally delete a directory containing important data.
A Linux system provides
shred for data removal. To delete file
example.txt, type the following:
$ rm example.txt
$ trash example.txt
6. Copy a file (cp)
Copy files with the
cp command. The syntax is copy from-here to-there. Here's an example:
$ cp file1.txt newfile1.txt
You can copy entire directories, too:
$ cp -r dir1 newdirectory
7. Move and rename a file (mv)
Renaming and moving a file is functionally the same process. When you move a file, you take a file from one directory and put it into a new one. When renaming a file, you take a file from one directory and put it back into the same directory or a different directory, but with a new name. Either way, you use the
$ mv file1.txt file_001.txt
8. Create an empty file (touch)
Easily create an empty file with the
$ touch one.txt
$ touch two.txt
$ touch three.md
9. Change permissions (chmod)
Change the permissions of a file with the
chmod command. One of the most common uses of
chmod is making a file executable:
$ chmod +x myfile
This example is how you give a file permission to be executed as a command. This is particularly handy for scripts. Try this simple exercise:
$ echo 'echo Hello $USER' > hello.sh
$ chmod +x hello.sh
10. Escalate privileges (sudo)
While administering your system, it may be necessary to act as the super user (also called root). This is where the
sudo (or super user do) command comes in. Assuming you're trying to do something that your computer alerts you that only an administrator (or root) user can do, just preface it with the command
$ touch /etc/os-release && echo "Success"
touch: cannot touch '/etc/os-release': Permission denied
$ sudo touch /etc/os-release && echo "Success"
11. Shut down (poweroff)
poweroff command does exactly what it sounds like: it powers your computer down. It requires
sudo to succeed.
There are actually many ways to shut down your computer and some variations on the process. For instance, the
shutdown command allows you to power down your computer after an arbitrary amount of time, such as 60 seconds:
$ sudo shutdown -h 60
$ sudo shutdown -h now
You can also restart your computer with
sudo shutdown -r now or just
12. Read the manual (man)
man command could be the most important command of all. It gets you to the documentation for each of the commands on your Linux system. For instance, to read more about
$ man mkdir
A related command is
info, which provides a different set of manuals (as long as they're available) usually written more verbosely than the often terse man pages.
What's your favorite Linux command?
There are many more commands on a Linux system—hundreds! What's your favorite command, the one you find yourself using time and time again?