Basic Linux Commands

Linux beginners may get overwhelmed by the sheer number of commands that are available in the terminal, but most users will find themselves executing the same few commands over and over. If you are looking to get started with the Linux command line, we have listed 20 of the most important and basic commands that you should know. These basic commands are the most essential to learn, and also the ones you will likley find yourself using the most.

Every Linux distro has inherent access to a terminal, though the interface may look different depending on your desktop environment or configuration. Join us in this tutorial to learn about the 20 of the most basic Linux commands. By the end, you will know enough to begin navigating your Linux terminal.

In this tutorial you will learn:

  • Top 20 basic Linux commands you must know
Basic Linux Commands
Basic Linux Commands
Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Any Linux distro
Software N/A
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Basic Linux Commands

These are our top picks for the most basic Linux commands that ever beginner should familiarize yourself with. Once you are used to these, it is easy to pick up other commands as you go along. Let’s dive in!

1. cd

One of the most essential commands in Linux is the change directory command or cd command. This is how you will navigate to different directories throughout your system. Using this command will change your current working directory to a different one you specify.

Navigate to any directory with the following syntax:

$ cd /path/to/directory

Or navigate to your user’s home directory:


See more: cd command in Linux with examples

2. pwd

The pwd command in Linux is short for present working directory. When it comes to Linux commands, this has to be one of the simplest. It’s only function is to print the present working directory of your terminal. It comes in handy when you’re not exactly sure what directory you’re in, or when you need to pass the present working directory inside of a Bash script, for example.

The syntax requires no further options:

$ pwd

See also: pwd command in Linux with examples

3. ls

ls is short for list, and is used to list the files in your present working directory or some other directory if you specify one. What makes ls so essential is that it allows you to see what files are in a directory. You’ll be using it constantly to list directory contents.

It is common to use it with no further options in order to show what’s in your present working directory:

$ ls

To get a list format, with one file per line, add the -l option.

$ ls -l

See more: ls command in Linux with examples

4. cat

The cat command in Linux is our primary tool for viewing the contents of text files. Whether we are talking about Linux log files or configuration files, they are all simple ASCII text files. Therefore, the skills to be able to read the content of such text files is imperative.

You will most commonly use the cat command to read the contents of a particular file:

$ cat file.txt

See more: Cat command in Linux with examples

5. echo

The echo command can be used to read variables and direct output. It is especially common to use echo inside of Bash scripts.


$ echo "some text" > file.txt
$ echo "Hello World"
$ echo $variable

See also: Bash Scripting Tutorial for Beginners

6. mv

The mv command in Linux is short for move. As you can probably guess or may already know, the command is used to move files and directories from one location to the other. Users that are more accustomed to a GUI might know this action better as “cutting and pasting.” The mv command is just the command line equivalent of that action.

Move a file to a different directory:

$ mv /home/linuxconfig/Downloads/linux.iso /home/linuxconfig/Desktop

The mv command can also rename files:

$ mv old-name new-name

See more: mv command in Linux with examples

7. which

To see what directory a command belongs to, you can use the which command. This is a good way to verify whether a command is usable, and makes for a good troubleshooting tool when you need to determine the absolute path to a command.

$ which date

8. find

If you need to search for one or more particular files or directories, the find command in Linux is the perfect tool for the job. The find command can search for a file with a specific name, but you can also search for files that follow certain naming patterns. This can be broadened all the way to finding files based on file size, file extension, or a lot of other options.

Most basic syntax:

$ find . -name "example.txt"

A plethora of other options exist, in order to search for specific naming patterns. See more: find command in Linux with examples

9. grep

On a Linux system, the need to search one or multiple files for a specific text string can arise quite often. On the command line, the grep command has this function covered very well.

To search a file for a text string, use the following command syntax:

$ grep string filename

See also: How to find a string or text in a file on Linux

10. chmod

The chmod command in Linux is used to manage file permissions. It’s an essential command that pretty much every user will find the need to utilize at least every once in a while. Linux file permissions involve read, write, and execute permissions.

chmod uses the u, g, and o options to change the permissions for the owning user, group, and others respectively. Take a look at how it works.

$ chmod g+w somefile.txt

See more: chmod command in Linux with examples

11. chown

The chown command changes the user ownership of a file. This command goes hand in hand with chmod mentioned above. You will often need to make the root account or a normal user account the owner of a file, and then apply permissions specifically to the owner.

Here is the syntax:

$ chown username:username file

12. head

The head command prints the first x number of lines in a specific file. By default, it will display the first 10 lines of the specified file. The purposes of the options you can use with the head command are displaying contents in a file in different ways depending on the situation.

$ head file.txt

See more: head command in Linux with examples

13. tail

The tail command is used to print the last 10 lines of multiple files or a specified file. tail, with it’s interesting and convenient functions, can be used to monitor changes that are made to files.

$ tail file.txt

Or to monitor continuous changes to a file:

$ tail -f apache.log

14. cp

One of the most basic commands in Linux is the cp or copy command. The most basic way to use this command is to copy a file or multiple files. The cp command is one of the first commands you should learn as a newcomer to Linux, as copying files and directories is something you’ll do often.

Basic syntax:

$ cp file01 file01-copy

See more: cp command in Linux with examples

15. rm

The rm command is one of the most common and basic commands in Linux. Even if you have a limited amount of experience with Linux, you’ve most likely heard of it. The main purpose of this command is to remove files and directories. Using this command to remove files and directories cannot be undone.

Use rm to delete a file by following the command with the name of the file:

$ rm file.txt

You will need to use the -r option when deleting a directory.

$ rm -r directory01

See more: rm command in Linux with examples

16. kill

Everything that’s running on a Linux system – a service, script, or anything else – is considered a “process.” If you need to end a running process on Linux, the kill command is sure to do the job.

Once you’ve determined the PID of the process you wish to end, you can specify it as an argument to the kill command. For example, to end a process with a PID of 1234:

# kill 1234

See also: How to Kill a Running Process on Linux

17. history

The history command allows us to see all of the recently executed commands on our system. To visualize the current content of the shell history, we can use the history command, without passing any argument or option. Each line in the output produced by it, is prefixed by number:

$ history
    1  echo ""
    2  cat /etc/hostname
    3  ls -l /etc/hostname
    4  history

See also: How to manage Bash history

18. touch

The touch command in Linux is used to alter the access and modification times for a given file or set of files. It’s also a super handy way to create an empty file very quickly, if you are running the touch command and specify a file that doesn’t already exist.

The syntax is very simple – just specify the file name you wish to create or update the modification time for:

$ touch document.txt

See also: touch command in Linux with examples

19. df

The df utility is used to display, among the other things, filesystems available and used disk space. If the program is called without any argument, all mounted filesystem are included in the report:

$ df
Filesystem                       1K-blocks     Used Available Use% Mounted on
devtmpfs                           2908316        0   2908316   0% /dev
tmpfs                              2930156    28392   2901764   1% /dev/shm
tmpfs                              2930156     1792   2928364   1% /run
/dev/mapper/fingolfin_vg-root_lv  35862048  7210616  26800040  22% /
tmpfs                              2930156      124   2930032   1% /tmp
/dev/sda1                          1032088   161664    817996  17% /boot
/dev/mapper/fingolfin_vg-home_lv  25671908  1515396  22829408   7% /home
/dev/mapper/fingolfin_vg-data_lv 152737296 90208196  54700828  63% /mnt/data

See more: How to check disk space with df and du on Linux

20. man

Knowing how to use the man command in Linux will grant you the instant ability to learn how to use any other Linux command. Best of all, you don’t have to use Google to learn about a command or any other third party source – you can just get the information you need from the Linux command line.

Normally, you won’t specify any extra options with the man command. All you need to do is specify the name of the command for which you’d like to view instructions:

$ man cat

See more: Man command in Linux with Examples

Closing Thoughts

In this tutorial, we saw 20 of the most basic and essential commands that beginners need to learn on a Linux system. These commands are meant to teach you basic file system navigation and file manipulation tasks, so you can get started with modifying files and feeling more comfortable inside of the command line terminal. These commands will be enough to get you started, but there are lots more to learn!