DevOps Shack
Linux Complete Detailed Cheat Sheet
1. File and Directory Management
1.1 ls - List directory contents
ls -l /home
• Description: Lists all files and directories in /home with detailed information.
• Options:
o -l: Long format (permissions, owner, size, etc.)
o -a: Show hidden files.
o -h: Human-readable file sizes.
1.2 cd - Change directory
cd /var/log
• Description: Moves to the /var/log directory.
• Tips:
o cd ..: Go to the parent directory.
o cd ~: Go to the home directory.
1.3 pwd - Print working directory
pwd
• Description: Outputs the full path of the current working directory.
1.4 mkdir - Create directories
mkdir -p /tmp/test_dir/sub_dir
• Description: Creates /tmp/test_dir and sub_dir if they don’t already exist.
o -p: Create parent directories as needed.
1.5 rmdir - Remove empty directories
rmdir /tmp/test_dir/sub_dir
• Description: Removes the sub_dir if it's empty.
1.6 rm - Remove files or directories
rm -rf /tmp/test_dir
• Description: Deletes the test_dir directory and its contents recursively.
• Options:
o -r: Recursive delete.
o -f: Force delete without confirmation.
1.7 cp - Copy files or directories
cp -r /etc/nginx /tmp/
• Description: Copies the /etc/nginx directory to /tmp/.
• Options:
o -r: Copy directories recursively.
1.8 mv - Move or rename files
mv /tmp/nginx /tmp/nginx_backup
• Description: Renames or moves /tmp/nginx to /tmp/nginx_backup.
1.9 touch - Create empty files
touch [Link]
• Description: Creates an empty file named [Link].
1.10 stat - Display file status
stat [Link]
• Description: Provides detailed information about the file, such as size, permissions, and
timestamps.
2. File Viewing and Editing
2.1 cat - View file contents
cat /etc/hosts
• Description: Displays the contents of /etc/hosts.
• Tips:
o Use cat file1 file2 > combined_file to concatenate files.
2.2 less - View file contents page by page
less /var/log/syslog
• Description: Opens the /var/log/syslog file in a scrollable view.
2.3 head - Display the first lines of a file
head -n 5 /etc/passwd
• Description: Shows the first 5 lines of the /etc/passwd file.
2.4 tail - Display the last lines of a file
tail -n 10 /var/log/syslog
• Description: Shows the last 10 lines of the /var/log/syslog file.
• Tips:
o Use tail -f to monitor a file in real time.
2.5 nano - Edit files
nano /tmp/[Link]
• Description: Opens [Link] in the Nano text editor.
• Tips:
o Ctrl + O: Save.
o Ctrl + X: Exit.
3. File Permissions and Ownership
3.1 chmod - Change file permissions
chmod 644 /tmp/[Link]
• Description: Sets the file permissions to rw-r--r-- for [Link].
• Options:
o 777: Full permissions for all.
o 644: Owner can read/write, others can only read.
3.2 chown - Change file ownership
chown user:user /tmp/[Link]
• Description: Changes the owner and group of [Link] to user.
3.3 umask - Set default file permissions
umask 022
• Description: Sets the default permission for new files to 755.
4. Searching and Finding Files
4.1 find - Search for files
find / -name "[Link]"
• Description: Searches for files named [Link] in the root directory.
• Options:
o -type f: Search for files.
o -type d: Search for directories.
4.2 grep - Search inside files
grep "error" /var/log/syslog
• Description: Searches for the term error in /var/log/syslog.
5. Networking
5.1 ping - Test network connectivity
ping -c 4 [Link]
• Description: Sends 4 ICMP packets to [Link] to check connectivity.
5.2 curl - Send HTTP requests
curl [Link]
• Description: Fetches the contents of [Link]
6. Disk and Filesystem Management
6.1 df - Display disk space usage
df -h
• Description: Shows disk space usage in a human-readable format.
• Options:
o -h: Human-readable sizes.
o -T: Displays filesystem type.
6.2 du - Display directory size
du -sh /var/log
• Description: Shows the size of the /var/log directory.
• Options:
o -s: Summary for the directory.
o -h: Human-readable format.
6.3 mount - Mount a filesystem
mount /dev/sdb1 /mnt
• Description: Mounts the partition /dev/sdb1 to /mnt.
• Options:
o -t ext4: Specify the filesystem type.
6.4 umount - Unmount a filesystem
umount /mnt
• Description: Unmounts the /mnt directory.
6.5 lsblk - List information about block devices
lsblk
• Description: Displays information about block devices, such as partitions.
6.6 blkid - Display block device UUIDs
blkid
• Description: Lists the UUIDs and filesystem types of block devices.
6.7 fsck - Filesystem check and repair
fsck /dev/sdb1
• Description: Checks and repairs filesystem errors on /dev/sdb1.
6.8 mkfs - Create a filesystem
mkfs.ext4 /dev/sdb1
• Description: Formats /dev/sdb1 with the ext4 filesystem.
7. Process Management
7.1 ps - Display process information
ps aux | grep apache
• Description: Lists all processes with details and filters for apache.
7.2 top - Monitor system processes
top
• Description: Displays a real-time view of system processes and resource usage.
7.3 htop - Enhanced process viewer
htop
• Description: Provides an interactive process viewer (requires installation).
7.4 kill - Terminate a process
kill -9 1234
• Description: Sends the SIGKILL signal to terminate process 1234.
7.5 pkill - Kill processes by name
pkill -f apache
• Description: Terminates all processes with apache in their name.
7.6 jobs - List background jobs
jobs
• Description: Displays jobs running in the background.
7.7 bg - Resume a job in the background
bg %1
• Description: Resumes job 1 in the background.
7.8 fg - Bring a job to the foreground
fg %1
• Description: Brings job 1 to the foreground.
8. User Management
8.1 who - Show who is logged in
who
• Description: Lists users currently logged into the system.
8.2 whoami - Show the current user
whoami
• Description: Displays the username of the current user.
8.3 adduser - Add a new user
sudo adduser john
• Description: Creates a new user john.
8.4 usermod - Modify user details
sudo usermod -aG sudo john
• Description: Adds john to the sudo group.
8.5 passwd - Change user password
passwd john
• Description: Changes the password for user john.
8.6 deluser - Remove a user
sudo deluser john
• Description: Deletes user john.
9. Networking
9.1 ifconfig - Display or configure network interfaces
ifconfig
• Description: Shows network interface details.
• Note: Use ip a for modern systems.
9.2 ip - Display or configure IP addresses
ip a
• Description: Lists all network interfaces and their IP addresses.
9.3 netstat - Network statistics
netstat -tuln
• Description: Lists open ports and active connections.
• Options:
o -t: TCP connections.
o -u: UDP connections.
9.4 traceroute - Trace the route to a host
traceroute [Link]
• Description: Displays the path packets take to reach [Link].
9.5 wget - Download files from the web
wget [Link]
• Description: Downloads [Link] from [Link].
9.6 scp - Securely copy files between systems
scp [Link] user@[Link]:/tmp/
• Description: Copies [Link] to /tmp/ on a remote host.
10. System Monitoring
10.1 uptime - System uptime and load
uptime
• Description: Shows how long the system has been running.
10.2 free - Display memory usage
free -h
• Description: Displays memory usage in a human-readable format.
10.3 vmstat - System performance metrics
vmstat 1 5
• Description: Provides CPU, memory, and I/O stats every second for 5 seconds.
10.4 iostat - CPU and I/O statistics
iostat
• Description: Shows CPU and disk I/O statistics.
10.5 sar - System activity report
sar -u 1 3
• Description: Displays CPU usage over 3 intervals.
11. Package Management
11.1 apt - Manage packages on Debian-based systems
sudo apt update && sudo apt upgrade -y
• Description: Updates the package list and upgrades all packages to the latest version.
• Options:
o install: Install a package (sudo apt install nginx).
o remove: Uninstall a package (sudo apt remove nginx).
o search: Search for a package (apt search apache).
11.2 yum - Manage packages on RHEL-based systems
sudo yum install httpd
• Description: Installs the Apache web server on Red Hat-based distributions.
• Options:
o update: Update all packages (sudo yum update).
o remove: Remove a package (sudo yum remove httpd).
11.3 dnf - Next-gen package manager for RHEL systems
sudo dnf install vim
• Description: Installs the Vim editor using dnf.
11.4 rpm - Manage RPM packages
rpm -ivh [Link]
• Description: Installs an RPM package.
• Options:
o -e: Remove a package (rpm -e package_name).
o -q: Query installed packages (rpm -q package_name).
11.5 snap - Manage Snap packages
sudo snap install vlc
• Description: Installs the VLC media player as a Snap package.
12. Archiving and Compression
12.1 tar - Archive files
tar -cvf [Link] /path/to/files
• Description: Archives files into [Link].
• Options:
o -c: Create an archive.
o -x: Extract an archive.
o -z: Compress with gzip (tar -czvf [Link] /path/to/files).
12.2 gzip - Compress files
gzip [Link]
• Description: Compresses [Link] into [Link].
12.3 gunzip - Decompress files
gunzip [Link]
• Description: Decompresses [Link] back to [Link].
12.4 zip - Compress files into a zip archive
zip [Link] [Link] [Link]
• Description: Compresses [Link] and [Link] into [Link].
12.5 unzip - Extract a zip archive
unzip [Link]
• Description: Extracts all files from [Link].
13. Security and Permissions
13.1 sudo - Execute a command as superuser
sudo apt install nginx
• Description: Runs the apt install nginx command as a superuser.
13.2 passwd - Change user password
sudo passwd username
• Description: Sets or changes the password for the username.
13.3 chmod - Modify file permissions
chmod 755 [Link]
• Description: Sets permissions to rwxr-xr-x for [Link].
13.4 chown - Change file ownership
sudo chown user:group [Link]
• Description: Changes the owner and group of [Link] to user and group.
13.5 iptables - Manage firewall rules
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
• Description: Allows incoming SSH traffic on port 22.
13.6 ufw - Uncomplicated Firewall
sudo ufw allow 80
• Description: Allows incoming HTTP traffic on port 80.
13.7 ssh - Connect to a remote server
ssh user@[Link]
• Description: Connects to the remote server with IP [Link] as user.
13.8 scp - Securely copy files
scp [Link] user@[Link]:/tmp/
• Description: Copies [Link] to the /tmp/ directory on a remote host.
14. Text Processing
14.1 cat - Concatenate and display file contents
cat [Link]
• Description: Displays the contents of [Link].
14.2 grep - Search text patterns in files
grep "error" /var/log/syslog
• Description: Searches for the word "error" in /var/log/syslog.
14.3 awk - Pattern scanning and processing
awk '{print $1}' [Link]
• Description: Prints the first column of [Link].
14.4 sed - Stream editor for transforming text
sed 's/old/new/g' [Link]
• Description: Replaces "old" with "new" in [Link].
14.5 sort - Sort lines in a file
sort [Link]
• Description: Sorts the lines in [Link] alphabetically.
14.6 uniq - Remove duplicate lines
uniq [Link]
• Description: Removes consecutive duplicate lines in [Link].
14.7 wc - Word, line, and character count
wc -l [Link]
• Description: Counts the number of lines in [Link].
14.8 cut - Extract sections of text
cut -d':' -f1 /etc/passwd
• Description: Extracts the first field (username) from /etc/passwd.
15. Shell Scripting
15.1 Basic Shell Script
#!/bin/bash
echo "Hello, World!"
• Description: A simple shell script that prints "Hello, World!".
• Usage:
chmod +x [Link]
./[Link]
15.2 Variables in Scripts
#!/bin/bash
name="Linux"
echo "Welcome to $name scripting!"
• Description: Demonstrates how to use variables in shell scripts.
15.3 Loops in Scripts
#!/bin/bash
for i in 1 2 3 4 5; do
echo "Number: $i"
done
• Description: A for loop that prints numbers from 1 to 5.
15.4 Conditional Statements
#!/bin/bash
if [ $1 -gt 10 ]; then
echo "Greater than 10"
else
echo "Less than or equal to 10"
fi
• Description: A script that checks if a number is greater than 10.
16. System Information
16.1 uname - System information
uname -a
• Description: Displays system kernel and architecture details.
16.2 hostname - Display hostname
hostname
• Description: Outputs the hostname of the machine.
16.3 uptime - System uptime
uptime
• Description: Shows how long the system has been running.
17. System Performance Monitoring
17.1 vmstat - System performance statistics
vmstat 1 5
• Description: Displays system performance metrics (CPU, memory, I/O) every 1 second for 5
iterations.
17.2 iostat - CPU and I/O usage
iostat -x
• Description: Shows detailed CPU and disk I/O statistics.
17.3 sar - Historical performance data
sar -u 1 5
• Description: Displays CPU usage over 5 intervals, collected every 1 second.
17.4 top - Real-time process monitoring
top
• Description: Shows a dynamic real-time view of processes and system resource usage.
17.5 htop - Interactive process monitoring
htop
• Description: Interactive and visually enriched version of top (requires installation).
17.6 free - Memory usage
free -m
• Description: Displays memory usage in megabytes.
• Options:
o -g: Display in gigabytes.
o -h: Human-readable format.
17.7 dstat - Comprehensive system monitoring
dstat
• Description: Displays real-time CPU, disk, and network usage.
18. Troubleshooting and Logs
18.1 dmesg - Kernel ring buffer
dmesg | grep error
• Description: Filters kernel logs for "error" messages.
18.2 journalctl - Systemd logs
journalctl -u [Link]
• Description: Shows logs related to the nginx service.
18.3 lsof - List open files
lsof -i :80
• Description: Lists processes using port 80.
18.4 strace - Trace system calls
strace -c ls
• Description: Tracks and summarizes system calls made by the ls command.
18.5 tcpdump - Network packet analyzer
sudo tcpdump -i eth0 port 80
• Description: Captures network traffic on port 80 for the eth0 interface.
18.6 netstat - Network connections
netstat -tuln
• Description: Lists all listening ports and established connections.
18.7 ss - View network sockets
ss -tuln
• Description: Displays listening TCP and UDP ports.
19. Advanced Scripting
19.1 Functions in Shell Scripts
#!/bin/bash
greet() {
echo "Hello, $1!"
}
greet "World"
• Description: Demonstrates a function that greets the given input.
19.2 Array Handling
#!/bin/bash
arr=("apple" "banana" "cherry")
for fruit in "${arr[@]}"; do
echo "Fruit: $fruit"
done
• Description: Iterates through an array and prints each element.
19.3 Reading User Input
#!/bin/bash
read -p "Enter your name: " name
echo "Welcome, $name!"
• Description: Prompts the user for input and prints a welcome message.
20. Development Tools
20.1 gcc - Compile C programs
gcc -o hello hello.c
• Description: Compiles hello.c into an executable named hello.
20.2 make - Build automation
make
• Description: Executes the build process defined in a Makefile.
20.3 git - Version control
git clone [Link]
• Description: Clones a Git repository from the specified URL.
• Other Commands:
o git add file: Stage changes.
o git commit -m "message": Commit staged changes.
21. Scheduling and Automation
21.1 cron - Schedule recurring tasks
• Setup a Cron Job:
crontab -e
• Example Cron Entry:
javascript
Copy code
0 2 * * * /path/to/[Link]
o Description: Runs [Link] every day at 2:00 AM.
21.2 at - Schedule a one-time task
echo "shutdown -h now" | at 10:00 PM
• Description: Schedules a system shutdown at 10:00 PM.
22. File Synchronization
22.1 rsync - Synchronize files/directories
rsync -av /source/ /destination/
• Description: Synchronizes /source/ with /destination/.
• Options:
o -a: Archive mode.
o -v: Verbose output.
23. Containers and Virtualization
23.1 docker - Manage Docker containers
docker run -d -p 8080:80 nginx
• Description: Runs an NGINX container and maps port 8080 to the container’s port 80.
23.2 kubectl - Manage Kubernetes clusters
kubectl get pods
• Description: Lists all running pods in the Kubernetes cluster.
24. Miscellaneous
24.1 alias - Create command shortcuts
alias ll='ls -la'
• Description: Defines ll as an alias for ls -la.
24.2 time - Measure command execution time
time ls
• Description: Measures how long the ls command takes to execute.
24.3 uptime - System uptime
uptime
• Description: Displays how long the system has been running.
5. Cloud and DevOps Tools
25.1 AWS CLI
aws s3 ls s3://my-bucket
• Description: Lists all objects in the my-bucket S3 bucket.
• Other Examples:
o Upload file: aws s3 cp [Link] s3://my-bucket/
o Download file: aws s3 cp s3://my-bucket/[Link] ./
25.2 Terraform
terraform init
• Description: Initializes a Terraform working directory.
• Other Commands:
o terraform plan: Previews infrastructure changes.
o terraform apply: Applies infrastructure changes.
25.3 Kubernetes (kubectl)
kubectl describe pod my-pod
• Description: Shows detailed information about my-pod.
25.4 Docker
docker build -t my-app .
• Description: Builds a Docker image named my-app from the current directory.
26. Advanced File Handling
26.1 xargs - Execute commands on input
cat [Link] | xargs rm
• Description: Reads file names from [Link] and deletes them.
26.2 tee - Redirect and output simultaneously
echo "Logging this message" | tee [Link]
• Description: Writes "Logging this message" to the terminal and [Link].
26.3 split - Split large files
split -b 10M largefile part_
• Description: Splits largefile into 10MB chunks named part_aa, part_ab, etc.
27. Compression and Archiving
27.1 xz - Compress files with high compression
xz [Link]
• Description: Compresses [Link] into [Link].
27.2 7z - Compress files using 7-zip
7z a archive.7z [Link]
• Description: Compresses [Link] into a .7z archive.
28. Network Monitoring
28.1 nmap - Network scanner
nmap -sV [Link]
• Description: Scans the host at [Link] for open ports and services.
28.2 dig - Query DNS records
dig [Link]
• Description: Fetches DNS information for [Link].
29. User Management
29.1 id - Show user ID and group ID
id
• Description: Displays the current user's UID and GID.
29.2 groupadd - Add a new group
sudo groupadd developers
• Description: Creates a new group named developers.
29.3 groups - Show groups for a user
groups username
• Description: Lists all groups the username belongs to.
30. Security
30.1 gpg - Encrypt and decrypt files
• Encrypt a file:
gpg -c [Link]
• Decrypt a file:
gpg [Link]
30.2 fail2ban - Prevent brute-force attacks
sudo fail2ban-client status
• Description: Shows the status of the fail2ban service.
31. Process Management (Advanced)
31.1 nice - Set process priority
nice -n 10 ./[Link]
• Description: Runs [Link] with a lower priority (nice value of 10).
31.2 renice - Adjust priority of a running process
renice -n -5 -p 1234
• Description: Sets process 1234 to a higher priority (-5).
32. System Troubleshooting
32.1 uptime
uptime -p
• Description: Shows the system uptime in a human-readable format.
32.2 iotop - Monitor disk I/O usage
sudo iotop
• Description: Displays real-time disk I/O by processes.
33. Time and Date
33.1 date - Display or set the date
date "+%Y-%m-%d %H:%M:%S"
• Description: Displays the current date and time in the specified format.
33.2 timedatectl - Manage system time
timedatectl set-time "2024-01-01 [Link]"
• Description: Sets the system date and time.
34. System Backup
34.1 rsync - Sync files and directories
rsync -avz /source /backup/
• Description: Backs up /source to /backup with compression (-z).
35. Miscellaneous
35.1 uptime - System uptime
uptime
• Description: Displays the time since the system last booted.
35.2 bc - Command-line calculator
echo "10+5" | bc
• Description: Performs basic arithmetic.
35.3 yes - Auto-answer prompts
yes | sudo apt upgrade
• Description: Automatically confirms all prompts with "yes."
36. Advanced Utilities
36.1 watch - Run a command periodically
watch -n 2 ls -lh
• Description: Runs ls -lh every 2 seconds and displays the output.
36.2 alias - Create command shortcuts
alias ll='ls -la'
• Description: Defines ll as a shortcut for ls -la.
36.3 unalias - Remove an alias
unalias ll
• Description: Removes the ll alias.
36.4 locate - Quickly find files
locate [Link]
• Description: Searches for [Link] using a pre-built file database.
36.5 updatedb - Update the locate database
sudo updatedb
• Description: Refreshes the database used by locate.
37. Disk Management
37.1 fdisk - Partition a disk
sudo fdisk /dev/sda
• Description: Opens a menu to create, modify, or delete partitions on /dev/sda.
37.2 parted - Advanced partitioning tool
sudo parted /dev/sdb mklabel gpt
• Description: Creates a new GPT partition table on /dev/sdb.
37.3 lsblk - List information about block devices
lsblk -f
• Description: Displays a tree view of block devices and their filesystems.
37.4 mkfs - Create a filesystem
sudo mkfs.ext4 /dev/sdb1
• Description: Formats /dev/sdb1 with the ext4 filesystem.
37.5 mount - Mount a filesystem
sudo mount /dev/sdb1 /mnt/data
• Description: Mounts /dev/sdb1 to /mnt/data.
37.6 umount - Unmount a filesystem
sudo umount /mnt/data
• Description: Unmounts /mnt/data.
38. System Diagnostics
38.1 uptime - System load and uptime
uptime
• Description: Displays system uptime and load averages.
38.2 dmesg - Kernel log messages
dmesg | tail -20
• Description: Shows the last 20 kernel messages.
38.3 sar - Performance statistics
sar -r 1 5
• Description: Displays memory usage over 5 intervals.
38.4 lsof - List open files
sudo lsof /path/to/file
• Description: Shows processes that have the specified file open.
38.5 iotop - Monitor disk I/O usage
sudo iotop
• Description: Displays real-time disk I/O by processes.
39. Performance Optimization
39.1 sysctl - Modify kernel parameters
sudo sysctl -w net.ipv4.ip_forward=1
• Description: Enables IP forwarding.
39.2 nice - Set priority for a command
nice -n 10 ./[Link]
• Description: Runs [Link] with a lower CPU priority.
39.3 renice - Change priority of a running process
renice -n 5 -p 1234
• Description: Adjusts the priority of process ID 1234 to 5.
40. Backup and Restore
40.1 tar - Archive files
tar -czvf [Link] /path/to/directory
• Description: Archives and compresses a directory into [Link].
40.2 rsync - Sync files
rsync -avz /source/ /destination/
• Description: Synchronizes files between /source and /destination.
40.3 scp - Securely copy files
scp [Link] user@remote:/path/
• Description: Copies [Link] to a remote server.
40.4 dd - Create a disk image
dd if=/dev/sda of=/backup/[Link] bs=4M
• Description: Backs up the /dev/sda disk to an image file.
41. Advanced Networking
41.1 ip - Manage network interfaces
ip a
• Description: Displays all network interfaces and IP addresses.
41.2 netcat (nc) - Debug network connections
nc -zv [Link] 22
• Description: Checks if port 22 is open on [Link].