DEV Community

Cover image for Linux Cheat Sheet For Beginners
Suhail Kakar
Suhail Kakar

Posted on • Originally published at blog.suhailkakar.com

Linux Cheat Sheet For Beginners

If you're not using the terminal, Linux commands may appear scary at first by once you start using them you will understand them very easily On a Linux system, there are numerous commands for executing operations and procedures.

Having a list of commands on hand is useful whether you are new to Linux or an experienced user.

File Permission commands

Command Description
ls-l to show file type and access permission
r read permission
w write permission
x execute permission
-= no permission
Chown user For changing the ownership of a file/directory
Chown user:group filename change the user as well as group for a file or directory

Hardware commands

Command Description
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

Basic Linux commands

Command Description
ls Lists all files and directories in the present working directory
ls-R Lists files in sub-directories as well
ls-a Lists hidden files as well
ls-al Lists files and directories with detailed information like permissions,size, owner, etc.
cd or cd ~ Navigate to HOME directory
cd .. Move one level up
cd To change to a particular directory
cd / Move to the root directory
cat > filename Creates a new file
cat filename Displays the file content
cat file1 file2 > file3 Joins two files (file1, file2) and stores the output in a new file (file3)
mv file "new file path" Moves the files to the new location
mv filename new_file_name Renames the file to a new filename
sudo Allows regular users to run programs with the security privileges of the superuser or root
rm filename Deletes a file
man Gives help information on a command
history Gives a list of all past commands typed in the current terminal session
clear Clears the terminal
mkdir directoryname Creates a new directory in the present working directory or a at the specified path
rmdir Deletes a directory
mv Renames a directory
pr -x Divides the file into x columns
pr -h Assigns a header to the file
pr -n Denotes the file with Line Numbers
lp -nc , lpr c Prints "c" copies of the File
 lp-d lp-P Specifies name of the printer
apt-get Command used to install and update packages
mail -s 'subject' -c 'cc-address' -b 'bcc-address' 'to-address' Command to send email
mail -s "Subject" to-address < Filename Command to send email with attachment

Environment Variables command

Command Description
echo $VARIABLE To display value of a variable
env Displays all environment variables
VARIABLE_NAME= variable_value Create a new variable
Unset Remove a variable
export Variable=value To set value of an environment variable

User management commands of linux

Command Description
sudo adduser username To add a new user to your current Linux machine
sudo userdel -r 'username' deluser removes a user from a specific group.
finger Gives information on all logged in user
finger username Gives information of a particular user

Network command

Command Description
SSH username@ip-address or hostname login into a remote Linux machine using SSH
Ping hostname="" or ="" To ping and Analyzing network and host connections
dir Display files in the current directory of a remote computer
cd "dirname" change directory to "dirname" on a remote computer
put file upload 'file' from local to remote computer
get file Download 'file' from remote to local computer
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
quit Logout

Process command

Command Description
bg To send a process to the background
fg To run a stopped process in the foreground
top Details on all Active Processes
ps Give the status of processes running for a user
ps PID Gives the status of a particular process
pidof Gives the Process ID (PID) of a process
kill PID Kills a process
nice Starts a process with a given priority
renice Changes priority of an already running process
df Gives free hard disk space on your system
free Gives free RAM on your system

System Information

Command Description
time It is a utility that measures the time taken by a program to execute. 
/proc The files under /proc displays system information. 
dmseg This command is used to print the contents of the bootup messages displayed by the kernel. This is particularly useful in debugging issues.
df Displays the information about the space on the mounted file-systems.
who Displays information about the logged in users including their login time.
w This command displays who are logged in into the system and the processes they are running. 
users This command prints the name of the currently logged in users.
last This command displays the time of the logged-out users. This also displays the information when the computer was rebooted.
lastlog Displays a list of the users and the time/day of their login.
whoami It tells the username of the logged in user.
free Displays memory status. (Total, Used, Free, cached, Swap)
uptime | w It displays how long the computer has been up and running. Additionally, it displays the number of users and the processor load.
uname It is used to display system information such as OS type, kernel version, etc.
xargs This command is used to run a command as many times as required. 
date It is used to display the system. It can also be used to set the date/time.
cal This command displays the calendar of the current month.
acpi This command is used to display the battery status and other ACPI(Advanced Configuration and Power Information) related  information.
acpi_available This command is used to test if the ACPI subsystem is available.
aptitude   

VI Editing Commands

Command Description
i Insert at cursor (goes into insert mode)
a Write after cursor (goes into insert mode)
A Write at the end of line (goes into insert mode)
ESC Terminate insert mode
u Undo last change
U Undo all changes to the entire line
o Open a new line (goes into insert mode)
dd Delete line
3dd Delete 3 lines
D Delete contents of line after the cursor
C Delete contents of a line after the cursor and insert new text. Press ESC key to end insertion.
dw Delete word
4dw Delete 4 words
cw Change word
x Delete character at the cursor
r Replace character
R Overwrite characters from cursor onward
s Substitute one character under cursor continue to insert
S Substitute entire line and begin to insert at the beginning of the line
~ Change case of individual character

References: Linoxide, Guru 99, Hackr, Loggly, Phoenixnap

Conclusion

I hope you found this cheatsheet helpful. If you need any help please let me know in the comment section

Let's connect on Twitter and LinkedIn

👋 Thanks for reading, See you next time

Top comments (4)

Collapse
 
labib profile image
Asif

I truly respect and Appreciate your hardWork mann !

Collapse
 
suhailkakar profile image
Suhail Kakar

Thanks Asif, Glad you liked it :)

Collapse
 
moopet profile image
Ben Sinclair

Your "User management commands" descriptions are all wrong - they're copied from your environment variables table.

Collapse
 
suhailkakar profile image
Suhail Kakar

Thanks for mentioning, I fixed it 😀