Essential Linux Command Line Programs

Spread the love

If we work as developers, we have to work with the Linux command line eventually.

In this article, we’ll look at some basic Linux programs we should know to work with the Linux command line.


curl lets us make HTTP requests to a server a get a request back.

We can use it to specify the headers and body of the request in addition to any cookies.

python -m json.tool / jq

python -m json.tool and jq are 2 separate programs that we can use to pretty-print JSON so that we can read them easily.

They all work after the pipe. For instance, we can run both as follows assuming test.json has JSON text in it:

cat test.json | jq


cat test.json | python -m json.tool


ls lists the files and directory in a directory.

Once we run this, we get the permissions of the files and folders and when they changed.


tail shows us the end of a text file. As the text file updates with new content, it’ll show the latest and keep showing the end of the file if new things are added if we add the -f option


cat is used to concatenate and print files on the screen. We just add the paths that we want to the end of the list and the content of all the files will be concatenated one after the other on the screen.


grep lets us search for patterns from the output of another command.

This is very handy for searching for data from any large blocks of text.


ps shows the status of the running processed in our computer.

The date, process ID, and time are all included.


env prints out environment variables. It’s useful if environment variables are added incorrectly.


top shows us the number of resources used by the currently running processes in our system.


netstat shows us the network status of our system. It shows us the ports that are used and the IP address they connected from.

Also, we can see the processes that are using network connections in one table.

ip address

The iproute2 package has the ip address programs that show us which interfaces are connected to which network.


The lsof package shows us the item that are listening for incoming data in our network.

it lists the ports that it’s listening to and the ID of the process that’s listening to a given port.


The df program shows us the free disk space that’s on our system.

We can see which volumes are full and which aren’t.


We can get more information our disk volumes than df with du .

The -h flag makes the output human-readable and -s shows the total size.


The id command returns the currently logged in user’s identify.


chmod is used to change the permissions of our files and directories.

This can help us fix permission errors when we encounter them.

dig / nslookup

dig and nslookup let us troubleshoot DNS errors. We can see whether we can resolve the some URL to their IP address with it.

Just put the URL we want to find the IP address after each and check the output.


iptables is used to block or allow traffic on a Linux system. It’s similar to a network firewall.

We can whitelist and blacklist by IP address with this package.


We can check if we have SELinux enabled with this command. Then we can check if it’s enabled or not.


history shows us the commands that we’ve run recently. It’s easy to look at what we’ve run so we can run them again.


tar can be used to created archives and uncompress them.

We create one by running tar cvf archive.tar /dirname to create an archive out of the /dirname directory.

The extract data from an archive, we run tar xvf archive.tar .

To view an archive, we run tar tvf archive.tar .


There’re many commands that we can use to do things on the Linux command.

Commands like curl and tar are important for making requests and extracting files.

There’re also packages that we can install like jq to pretty-print JSON.

And there’re many more that’ll come in handy for troubleshooting networks and processes.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *