This cheatsheet includes a list of basic and advanced useful Linux commands that every Kali Linux user must know.
Mastering the command line is critical for every Kali user. There are many things you can do via command line that cannot be done in a standard GUI environment. Tasks that take minutes or even hours to do on a desktop environment (GUI) can be done in a matter of seconds from the command line.
To give you an example, here's a one line linux command to download an entire website:
wget -r domain.com
If you tried the same on a desktop environment, you'd have to save each page of the site, one by one.
Recommend: Step-by-Step: How To Install & Boot Kali Linux From A USB Drive
This is only one of many examples as to how powerful the command line truly is. There are many other tasks on Linux that can only be done from the command line.
To put simply, knowing your way around a command line will make you a more efficient and effective. You'll be able to get shit done faster by automating repetitive tasks.
If you're new to Unix/Linux operating systems, this cheatsheet also includes the fundamental linux commands such as jumping from one directory to another, as well as more technical stuff like managing processes.
Keyboard Shortcuts
CTRL + L | Clear terminal screen |
CTRL + D | Log out of current session |
CTRL + C | Stop (halt) currently running command/processes |
CTRL + Z | Suspend (pause) currently running command/processes |
CTRL + W | Delete the last word/argument |
CTRL + E | Jump (skip) to the very LAST line |
CTRL + A | Jump (skip) to the very FIRST line |
CTRL + F | Move cursor one letter forward |
CTRL + B | Move cursor one letter backward |
CTRL + U | Cut (copy) everything BEFORE the cursor |
CTRL + K | Cut (copy) everything AFTER the cursor |
CTRL + Y | Paste previously copied text |
clear | Clear terminal screen |
reset | Fix display errors |
exit | Exit (log out) current session |
tab | Auto-complete |
!! | Repeat last command |
sudo !! | Repeat last command as sudo (admin/root) user |
man <cmd> | Read the manual page of a command |
which <cmd> | Locate the path name of a command |
Important Tips:
Everything inside "<>" should be replaced with a name of a file, directory or command.
Bash = A popular command-line used in Unix/Linux operating systems.
dir = directory/folder
file = file name & type (e.g. notes.txt)
cmd = command (eg. mkdir, ls, curl, etc)
location = path/destination (e.g. /home/Desktop)
File & Directory Manipulation
pwd: Display path of current directory you’re in
ls: List all files and folders in the current directory
ls -la: List detailed list of files and folders, including hidden ones
Change to a specific directory
cd: Change to home directory
cd /user/Desktop: Change to a specific directory called Desktop
cd .. : Move back a directory
Create a directory/folder
mkdir <dir>: Create a new directory
mkdir /home/Desktop/dir: Create a directory in a specific location
Create and edit files
touch <file>: Create an empty file
nano <file>: Edit an existing file or create it if it doesn’t exist.
Alternatives to nano text editor: vim, emacs
Copy, move and rename files and directories
cp <file1> <file2>: Create a copy of a file
cp -r <dir1> <dir2>: Create a copy of a directory and everything in it
cp <file> /home/Desktop/file2: Create a copy of a file in a different directory and name it file2.
mv <file> /home/Desktop: Move a file to a specific directory (overwrites any existing file with the same name)
mv <dir> /home/Desktop: Move a directory to another location
mv <dir1> <dir2>: Rename a file OR directory (dir1 -> dir2)
Delete files
rm <file>: Delete a file
rm -f <file>: Force delete a file
Careful now..
rm -r <dir>: Delete a directory and its contents
rm -rf <dir>: Force delete a directory and its contents
Careful when using this command as it will delete everything including the directory itself
Output and analyze files
cat <file>: Display/output the contents of a file
less <file>: Display the contents of a file with scroll (paginate) ability (press q to quit)
head <file>: Display the first ten lines in a file
head -20 <file>: Display the first 20 lines in a file
tail <file>: Display the last ten lines in a file
tail -20 <file>: Display the last 20 lines in a file
diff <file1> <file2>: Check the difference between two files (file1 and file2)
System & User Information
cal: Display monthly calendar
date: Check date and time
uptime: Check system uptime and currently logged in users
uname -a: Display system information.
dmesg: Display kernel ring buffer
poweroff: Shutdown system
reboot: Reboot system
View disk and memory usage
df -h: Display disk space usage
fdisk -l: List disk partition tables
free: Display memory usage
cat /proc/meminfo: Display memory information
cat /proc/cpuinfo: Display cpu information
View user information
whoami: Output your username
w: Check who’s online
history: View a list of your previously executed commands
View last logged in users and information
last: Display last login info of users
last <user>: Display last login info of a specific user
finger <user>: Display user information
Installing & Upgrading Packages
Search for packages
apt-cache pkgnames: List all available packages
apt search <name>: Search for a package and its description
apt show <name>: Check detailed description of a package Install packages
apt-get install <name>: Install a package
apt-get install <name1> <name2>: Install multiple packages
Update, upgrade & cleanup
apt-get update: Update list of available packages
apt-get upgrade: Install the newest version of available packages
apt-get dist-upgrade: Force upgrade packages.
apt-get autoremove: Remove installed packages that are no longer needed
apt-get clean: Free up disk space by removing archived packages
Delete packages
apt-get remove: Uninstall a package
apt-get remove --purge: Uninstall a package and remove its configuration files
Processes & Job Management
top: Display running processes & system usage in real-time.
ps: Display currently running processes
ps -u <user>: Display currently running processes of a user
kill <PID>: Kill a processes by PID #.
killall <processes>: Kill all processes with specified name.
Start, stop, resume jobs
jobs: Display the status of current jobs
jobs -l: Display detailed info about each job
jobs -r: Display only running jobs
bg: View stopped background jobs or resume job in the background
fg: Resume recent job in the foreground
fg <job>: Bring specific job to the foreground.
Networking Utilities
ping <host>: Ping a host
whois <domain/IP>: Get whois information about a domain or IP.
dig <domain/IP>: Get DNS information
nslookup: <NS>: Get nameserver information
ifconfig: Configure/display network interfaces
iwconfig: Configure/display wireless network interfaces
netstat -r: Display kernel IP routing tables
netstat -antp: Check for established and listening ports/connections
arp -a: Display ARP cache tables for all interfaces
Secure File Transfer (SCP)
Transfer files FROM the local system TO a remote host
scp /path/to/file user@host:/path/to/dest
Transfer files FROM a remote host TO the local system
scp user@host:/path/to/file /path/to/dest
Transfer directories and everything within it
scp -r /path/to/dir user@host:/path/to/dest
Transfer all files that match a specific filetype
scp /path/to/*.txt user@host:/path/to/dest
Transfer local public SSH public key to remote host
cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> .ssh/authorized_keys'
Am I forgetting something? Let me know in the comments below. I'll continue to update this when I get a chance.
Looking for a PDF version? Use this Linux commands cheat sheet. I recommend printing it out and hanging it next to your computer.
Recommend: Best Wireless Adapters Compatible With Kali Linux (2023)
Thank you. Great info for students!
Thanks for the commands. It's very helpful
The commands are really helpful,post more if available
Thank you for helping a beginners.
Awesome thank you for contributing and helping out a newb 🙂
love the list and yes you can never remember every command. DOS Linux… all? it? no way lol Thanks again.