Terminal commands are the easiest way to handle your Linux system, and learning to use them properly will do wonders for your productivity. Bash is one type of shell used in Linux terminals, and by default, most Linux distributions come with bash shell. This post will walk you through some of the most useful beginner-level bash commands you may want to start using.
File and Directory-Related Commands
File and directory manipulation in bash is very easy and intuitive. These are some of the most-used commands that you need to learn.
Print Text with echo
To print out any string in your terminal, you can use the
echo command. If you wish to print out “Hello world” in your terminal, use the following:
echo "Hello world"
You can add escape characters like
\n for new lines using
echo -e "hello \n world"
Create Files Using touch
touch command is used to create files. You can create single or multiple files as follows.
To create multiple files, append their file names one after another.
touch file2.txt file3.txt
Write on Files Using nano Text Editor
You can write or modify file contents using the nano editor. To open a file in write mode, use:
The above command opens a text editor in the terminal. You can write whatever you want and save the file using Ctrl + O and exit the text editor using Ctrl + X .
See Content of a File With cat
To see what is written on a file without opening it, you can use the
List Files and Directories Using ls
In the steps above, you’ve created three files: file1.txt, file2.txt and file3.txt. You can list those files using the
Create Directories With mkdir
We use the
mkdir command to create directories. it is an acronym for “make directories.”
mkdir [directory name]
You can create a “greetings” directory like this.
Change Directory With cd
You can change and navigate directories using the
cd [directory path]
Go to the previous directory using the
../ path parameter.
You can directly go to your home folder using the
~ path parameter.
Get to Your Working Directory Using pwd
If you want to know the working directory of any file or directory, you can use the
Copy a File or Directory Using cp
cp command requires two arguments. The first should be the file or directory path you want to copy, while the second is the target location path. In the following example we are copying our “file1.txt” file to the “greetings” directory.
cp file1.txt greetings/
Move and Rename a File With mv
If you want to move your file, you’ll have to use the
mv command. It also needs two arguments: source file location and destination location.
mv file2.txt greetings/
You can also rename a file using the
mv command. The trick is to leave the source path the same, but in the destination path you’ll need to write the modified name with the same file extension.
mv file3.txt modified-file3.txt
Remove a File Using rm
You can use the
rm command with the file location to remove or delete a file.
If you want to delete a directory, use the
-rf flag. It allows you to recursively delete all the files inside the directory.
rm -rf greetings/
Delete a Directory with rmdir
Add the directory path after the
rmdir command to delete an empty directory. You can also delete multiple directories in a single command.
rmdir greetings/ rmdir dir1 dir2 dir3
Permission Management Commands
Each file in Linux has various permissions. For instance, you may not be permitted to view or use a file. Fortunately, this list of commands allows you to change file permissions in Linux.
Modify File Permissions With chmod
You can add or remove file permissions using the
chmod command. To make a file readable, add the
+r flag after
chmod. To make a file executable, add
+x after the
In Linux, we often need to make files executable to run them. To solve this issue, you can run this command in your terminal:
chmod +x filename
The executable can be run as:
Become Superuser Using su and sudo
To install new software and modify files and folders beyond your user directory, you need superuser permissions. Superuser can change anything in your operating system.
There are two popular ways to temporarily become superuser in Linux. Using
su, you’ll get a superuser prompt, and your commands will run as a superuser inside that prompt. You can use
su like this:
You can leave the superuser prompt by running the
Modern Linux distributions use
sudo instead of
su. You can escalate your permission to superuser only by prefixing
sudo in your command. After the command executes, your permission will return to normal. This is a more secure option than
sudo apt update
As Linux is very popular in the server space, it comes with various tools to work with networking. Below you’ll find some commands which can give you the basic idea about networking in Linux.
Download Files Using wget
You can download files and interact with any REST APIs using the
wget supports HTTP, HTTPS, FTP and FTPS protocols. You can download a file by simply adding the link of the source after the
In this example, we are downloading a video using
wget automatically fetches the video file and downloads it.
Curl is a networking utility that is used to transfer data to and from servers. It provides a number of options allowing you to resume transfers, limit the bandwidth, proxy support, user authentication etc.
To download and save a file using curl, use the
curl -O https://archive.org/download/BigBuckBunny_328/BigBuckBunny.ogv
If the connection drops during the download, you can resume the download by using
curl -C -O https://archive.org/download/BigBuckBunny_328/BigBuckBunny.ogv
These are some of the utilities you can use in your day-to-day activities. Knowing them will help you save a lot of time and become more efficient.
Get today’s date using the
Output contains date, month, year, weekdays and your timezone.
Mon Aug 15 04:39:43 PM IST 2022
Search With grep
grep is a very powerful searching tool that you can use to search for words and sentences in directories.
You can also employ
grep to find a software package of your choice. For example, if you need to install VLC player and don’t know its package name, you can combine
grep to search for the software package.
apt search vlc | grep "vlc"
Find Package Installation Path Using which
You can use
which to see the location where packages are installed. For example, to see the location of your bash installed binary use:
Get Previous Command via History
Sometimes we forget commands. Fortunately, you can use
history to see all the previous commands you ran and refresh your memory.
Close a GUI Application Using kill
Once you’ve opened a GUI application from your terminal, you get the ID of the application. This is like a handle to that application.
To close this application, you can use kill command.
kill [application ID]
Read CLI User Manual via man
You can look at the documentation of a CLI tool using the
The above command will give you the manual for the
Here you can learn about all the available flags for the
echo command. You should try different flags to customize the command to suit your needs. To exit from the manual page, hit the q button.
Clean the Terminal
If your terminal is filling with clutter, you can wipe it clean by using the
You can also use the Ctrl + l shortcut the clean the terminal window.
Show Off to Your Friends
If you’d like to have some fun and print some random cool stuff on your screen just for the sake of it or to show off to your friends, you can employ a tool called
cmatrix, run these commands.
sudo apt update sudo apt install cmatrix
In your terminal, run
The output will be like a snapshot of the matrix.
You can also display a moving train using a simple bash command:
sl. You can install this using the following command.
sudo apt update sudo apt instal sl
Run this utility in the terminal.
Frequently Asked Questions
What are some other shells for Linux apart from bash?
What is the purpose of bash shell?
Bash shell or generally shells help us to efficiently manipulate files and directories. Shell has many essential tools like
touch, etc., that help us create and modify files very easily in the terminal.
What are some limitations of the bash shell?
Unlike other scripting languages, bash is very slow and error prone. The main drawback of bash is the lack of any debugging framework. This makes bash not suitable for large scripts and automation.
Image credit: Gabriel Heinzer via Unsplash. All screenshots are by Hrishikesh Pathak
Our latest tutorials delivered straight to your inbox