Here in this cheat sheet, Linux commands are categorized into different sections according to its usage. We have designed all the commands in a nice background color.
I have added had both pdf and image (png) format of the cheat sheet.
Cheat sheet
Download your linux commands cheat sheet in pdf format and please keep us posted if you have any suggestions or if you find any command that we missed out.
Displays how long the system has been running including load average
hostname
Shows the system hostname
hostname -i
Displays the IP address of the system
last reboot
Shows system reboot history
date
Displays current system date and time
timedatectl
Query and change the System clock
cal
Displays the current calendar month and day
w
Displays currently logged in users in the system
whoami
Displays who you are logged in as
finger username
Displays information about the user
2) Hardware
dmesg
Displays bootup messages
cat /proc/cpuinfo
Displays more information about CPU e.g model, model name, cores, vendor id
cat /proc/meminfo
Displays more information about hardware memory e.g. Total and Free memory
lshw
Displays information about system's hardware configuration
lsblk
Displays block devices related information
free -m
Displays free and used memory in the system (-m flag indicates memory in MB)
lspci -tv
Displays PCI devices in a tree-like diagram
lsusb -tv
Displays USB devices in a tree-like diagram
dmidecode
Displays hardware information from the BIOS
hdparm -i /dev/xda
Displays information about disk data
hdparm -tT /dev/xda <:code>
Conducts a read speed test on device xda
badblocks -s /dev/xda
Tests for unreadable blocks on disk
3) Users
id
Displays the details of the active user e.g. uid, gid, and groups
last
Shows the last logins in the system
who
Shows who is logged in to the system
groupadd "admin"
Adds the group 'admin'
adduser "Sam"
Adds user Sam
userdel "Sam"
Deletes user Sam
usermod
Used for changing / modifying user information
4) File Commands
ls -al
Lists files - both regular & hidden files and their permissions as well.
pwd
Displays the current directory file path
mkdir 'directory_name'
Creates a new directory
rm file_name
Removes a file
rm -f filename
Forcefully removes a file
rm -r directory_name
Removes a directory recursively
rm -rf directory_name
Removes a directory forcefully and recursively
cp file1 file2
Copies the contents of file1 to file2
cp -r dir1 dir2
Recursively Copies dir1 to dir2. dir2 is created if it does not exist
mv file1 file2
Renames file1 to file2
ln -s /path/to/file_name link_name
Creates a symbolic link to file_name
touch file_name
Creates a new file
cat > file_name
Places standard input into a file
more file_name
Outputs the contents of a file
head file_name
Displays the first 10 lines of a file
tail file_name
Displays the last 10 lines of a file
gpg -c file_name
Encrypts a file
gpg file_name.gpg
Decrypts a file
wc
Prints the number of bytes, words and lines in a file
xargs
Executes commands from standard input
5) Process Related
ps
Display currently active processes
ps aux | grep 'telnet'
Searches for the id of the process 'telnet'
pmap
Displays memory map of processes
top
Displays all running processes
kill pid
Terminates process with a given pid
killall proc
Kills / Terminates all processes named proc
pkill process-name
Sends a signal to a process with its name
bg
Resumes suspended jobs in the background
fg
Brings suspended jobs to the foreground
fg n
job n to the foreground
lsof
Lists files that are open by processes
renice 19 PID
makes a process run with very low priority
pgrep firefox
find Firefox process ID
pstree
visualizing processes in tree model
6) File Permission
chmod octal filename
Change file permissions of the file to octal
Example
chmod 777 /data/test.c
Set rwx permissions to owner, group and everyone (everyone else who has access to the server)
chmod 755 /data/test.c
Set rwx to the owner and r_x to group and everyone
chmod 766 /data/test.c
Sets rwx for owner, rw for group and everyone
chown owner user-file
Change ownership of the file
chown owner-user:owner-group file_name
Change owner and group owner of the file
chown owner-user:owner-group directory
Change owner and group owner of the directory
7) Network
ip addr show
Displays IP addresses and all the network interfaces
ip address add 192.168.0.1/24 dev eth0
Assigns IP address 192.168.0.1 to interface eth0
ifconfig
Displays IP addresses of all network interfaces
ping host
ping command sends an ICMP echo request to establish a connection to server / PC
whois domain
Retrieves more information about a domain name
dig domain
Retrieves DNS information about the domain
dig -x host
Performs reverse lookup on a domain
host google.com
Performs an IP lookup for the domain name
hostname -i
Displays local IP address
wget file_name
Downloads a file from an online source
netstat -pnltu
Displays all active listening ports
8) Compression/Archives
tar -cf home.tar home<:code>
Creates archive file called 'home.tar' from file 'home'
tar -xf files.tar
Extract archive file 'files.tar'
tar -zcvf home.tar.gz source-folder
Creates gzipped tar archive file from the source folder
gzip file
Compression a file with .gz extension
9) Install Packages
rpm -i pkg_name.rpm
Install an rpm package
rpm -e pkg_name
Removes an rpm package
dnf install pkg_name
Install package using dnf utility
10) Install Source (Compilation)
./configure
Checks your system for the required software needed to build the program. It will build the Makefile containing the instructions required to effectively build the project
make
It reads the Makefile to compile the program with the required operations. The process may take some time, depending on your system and the size of the program
make install
The command installs the binaries in the default/modified paths after the compilation
11) Search
grep 'pattern' files
Search for a given pattern in files
grep -r pattern dir
Search recursively for a pattern in a given directory
locate file
Find all instances of the file
find /home/ -name "index"
Find file names that begin with 'index' in /home folder
find /home -size +10000k
Find files greater than 10000k in the home folder
12) Login
ssh user@host
Securely connect to host as user
ssh -p port_number user@host
Securely connect to host using a specified port
ssh host
Securely connect to the system via SSH default port 22
telnet host
Connect to host via telnet default port 23
13) File Transfer
scp file1.txt server2/tmp
Securely copy file1.txt to server2 in /tmp directory
rsync -a /home/apps /backup/
Synchronize contents in /home/apps directory with /backup directory
14) Disk Usage
df -h
Displays free space on mounted systems
df -i
Displays free inodes on filesystems
fdisk -l
Shows disk partitions, sizes, and types
du -sh
Displays disk usage in the current directory in a human-readable format
Hi Paul, thanks for sharing your ideas. Many users use different frequency based on their specific job. Alphabetical order will not likely help specific requirement. "Order of like" suggestion is good idea :-)
I really like the layout of this Paul. I am just learning linux and trying to learn some commands. If I wanted to put a link in a file directory or delete a directory then trying to find it alphabetically would be hard since I don't know the command I am looking for. Also the poster is right. Which commands someone uses most often depends upon what they usually work with. If I know I want to change a directory or file I can just look into the appropriate category.
How about moving sections like system and hardware far away from the top and sticking to commonly used but harder to remember sections like process, install from package etc near the top.
I use just about all these commands, and more; only thing I learned is that should really be using hostname -i more often instead of scanning through ifconfig -a for my IP. :)
Also wanted to point at an error in your cheat sheet:
"bg" does not "Lists stopped or background jobs"; it puts the most recent job in the background (ctrl-z then bg). It's "jobs" that lists 'em (which I always have aliased to just "j").
I came back to see if you'd fixed the error I pointed out on your cheat sheet, but instead I see that not only was it not fixed, but my comment pointing it was DELETED. Why? I'm not wrong.
To be clear - The ERROR above is that "bg" does NOT "list stopped or background jobs"; the "jobs" command does that. "bg" puts the most recent job in the background.
Hi Jason, You are 100% correct. I am really thankful for pointing out this. I really saw your comments other day. Please give me couple days , I will change it on infograph. I have already changed on the html page(detailed command page).
In the File Permission related section: #chmod 755 sets rwx for owner, r_x for group and world. #chmod 766 would sets rwx for owner, rw for group and world
The only MAJOR problem I have with this so far is that the page clearly states at the top that this page is 'supposed' to be for the Black & White version of the Cheatsheet, however the .pdf file linked to is for the Color version. And the cheatsheet image itself is the color version as well. So where do we actually get the Black & White version from?
Ok, I'll ask again since my post was apparently deleted. Why is this page titled "Linux Commands Cheat Sheet in Black & White" when only the color version is supplied as a .pdf and the image shown is the color version. I'd like to download the BLACK & WHITE .pdf version, not the color .pdf one, not the color .png one, but yes the BLACK & WHITE version. (if you're not going to provide the Black & White version on a page that is clearly labeled as being for the Black & White version then the least you can do is change the name of the page to reflect that fact!!!)
Hi Edwin , thanks for the comments. Let me see if I can get black & white version. Other option would be print document in black & white ink then scan the document to pdf version
It would be really really helpful to have a true black & white version. The color version is very nice, but not all printers handle pdf color inversion correctly. Excellent work collecting this useful cheat-sheet.
Wow, very good idea, this cheat-sheet is very nice to have under the keyboard.
Seeing forward for more commands on this sheet.
Philip, sure will add more commands as it goes.
People want the important stuff first. that is all systemd business and of course xrandr.
Handy chart, but why this order? Why not by frequency of use, order of likely need, or alphabetical?
Hi Paul, thanks for sharing your ideas. Many users use different frequency based on their specific job. Alphabetical order will not likely help specific requirement. "Order of like" suggestion is good idea :-)
I really like the layout of this Paul. I am just learning linux and trying to learn some commands. If I wanted to put a link in a file directory or delete a directory then trying to find it alphabetically would be hard since I don't know the command I am looking for. Also the poster is right. Which commands someone uses most often depends upon what they usually work with. If I know I want to change a directory or file I can just look into the appropriate category.
How about moving sections like system and hardware far away from the top and sticking to commonly used but harder to remember sections like process, install from package etc near the top.
Nice sheet.
I use just about all these commands, and more; only thing I learned is that should really be using hostname -i more often instead of scanning through ifconfig -a for my IP. :)
Also wanted to point at an error in your cheat sheet:
"bg" does not "Lists stopped or background jobs"; it puts the most recent job in the background (ctrl-z then bg). It's "jobs" that lists 'em (which I always have aliased to just "j").
Awesome stuff, thank you. Would you consider doing it as a 16:9 Wallpaper?
@Craig Yes will design a wallpaper sketch. There are few minor errors on the cheat sheet , once I correct all then I will do
Small typo after uname -r. Says "isplay kernel information" instead of "Display.."
Bundle of thanks brother
Thanks Javed
Why each command begins with '#'? It makes the whole very useful thing less readable!
@TesTeq "#" symbol is removed :-)
Thank you! Great cheat sheet!
Great thanks for this cheat sheet
Maybe a write-background for printing would be an idea?
@Tobbi Thanks for the comments. I will see if i can make a change the background :-)
Cool ;-)
Hi Bobbin,
I came back to see if you'd fixed the error I pointed out on your cheat sheet, but instead I see that not only was it not fixed, but my comment pointing it was DELETED. Why? I'm not wrong.
To be clear - The ERROR above is that "bg" does NOT "list stopped or background jobs"; the "jobs" command does that. "bg" puts the most recent job in the background.
Hi Jason, You are 100% correct. I am really thankful for pointing out this. I really saw your comments other day. Please give me couple days , I will change it on infograph. I have already changed on the html page(detailed command page).
@Jason please find the updated sheet
There's a typo in the chart:
In the File Permission related section: #chmod 755 sets rwx for owner, r_x for group and world. #chmod 766 would sets rwx for owner, rw for group and world
@David I will correct typo soon. Thanks... :-)
@David its sorted :-)
White background? Please?
@Keven check http://goo.gl/WVTTUu one friend made print copy :-)
The only MAJOR problem I have with this so far is that the page clearly states at the top that this page is 'supposed' to be for the Black & White version of the Cheatsheet, however the .pdf file linked to is for the Color version. And the cheatsheet image itself is the color version as well. So where do we actually get the Black & White version from?
Ok, I'll ask again since my post was apparently deleted. Why is this page titled "Linux Commands Cheat Sheet in Black & White" when only the color version is supplied as a .pdf and the image shown is the color version. I'd like to download the BLACK & WHITE .pdf version, not the color .pdf one, not the color .png one, but yes the BLACK & WHITE version. (if you're not going to provide the Black & White version on a page that is clearly labeled as being for the Black & White version then the least you can do is change the name of the page to reflect that fact!!!)
Hi Edwin , thanks for the comments. Let me see if I can get black & white version. Other option would be print document in black & white ink then scan the document to pdf version
A cool idea but I have some suggestions;
1) How about adding package managers other then rpm (apt-get at least, since most Linux n00bs will be using Debian-based distros)
2) Could you provide us with source files so anyone can make translated versions of the infographic and submi it back here?
Cheers!
Let me see if i can edit it and will check with graphic designer who did it :-)
Hi Bobbin great thanks.. this sheet is very useful for me to learn hdfs file operations in hadoop.
thanks
Hareesh
Thanks Hareesh
Please INVERT colors before printing!
It would be really really helpful to have a true black & white version. The color version is very nice, but not all printers handle pdf color inversion correctly. Excellent work collecting this useful cheat-sheet.
I wanted a more copy/search-friendly version, FWIW https://gist.github.com/paulredmond/b6c509d24666619e4b9ced8e1b6fcb64
nice :-)
Awesome!
I love Linux thank you very much
One of the best sites I have come across. Brilliant job Bobbin.
Hi Faisal,
Your comment really encourages us. Thanks for that.
for listing target ports I recommend `ss -plnt` as `netstat` is a depreciated command afaik
Thanks Scott,
net-tools are no longer maintained and become obsolete. As you mentioned, the replacement for netstat is ss.