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 newfile.txt
•
Description: Creates an empty file named newfile.txt.
1.10 stat - Display file status stat newfile.txt
•
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/test.txt
•
Description: Opens test.txt 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/test.txt
•
Description: Sets the file permissions to rw-r--r-- for test.txt.
•
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/test.txt
•
Description: Changes the owner and group of test.txt 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 "test.txt"
•
Description: Searches for files named test.txt 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 google.com
•
Description: Sends 4 ICMP packets to google.com to check connectivity.
5.2 curl - Send HTTP requests curl https://example.com
•
Description: Fetches the contents of https://example.com.
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 google.com
•
Description: Displays the path packets take to reach google.com.
9.5 wget - Download files from the web wget https://example.com/file.zip
•
Description: Downloads file.zip from example.com.
9.6 scp - Securely copy files between systems scp file.txt user@192.168.1.10:/tmp/
•
Description: Copies file.txt 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 package.rpm
•
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 archive.tar /path/to/files
•
Description: Archives files into archive.tar.
•
Options:
o
-c: Create an archive.
o
-x: Extract an archive.
o
-z: Compress with gzip (tar -czvf archive.tar.gz /path/to/files).
12.2 gzip - Compress files gzip file.txt
•
Description: Compresses file.txt into file.txt.gz.
12.3 gunzip - Decompress files gunzip file.txt.gz
•
Description: Decompresses file.txt.gz back to file.txt.
12.4 zip - Compress files into a zip archive zip archive.zip file1.txt file2.txt
•
Description: Compresses file1.txt and file2.txt into archive.zip.
12.5 unzip - Extract a zip archive
unzip archive.zip
•
Description: Extracts all files from archive.zip.
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 script.sh
•
Description: Sets permissions to rwxr-xr-x for script.sh.
13.4 chown - Change file ownership sudo chown user:group file.txt
•
Description: Changes the owner and group of file.txt 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@192.168.1.10
•
Description: Connects to the remote server with IP 192.168.1.10 as user.
13.8 scp - Securely copy files scp file.txt user@192.168.1.10:/tmp/
•
Description: Copies file.txt to the /tmp/ directory on a remote host.
14. Text Processing
14.1 cat - Concatenate and display file contents
cat file.txt
•
Description: Displays the contents of file.txt.
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}' file.txt
•
Description: Prints the first column of file.txt.
14.4 sed - Stream editor for transforming text sed 's/old/new/g' file.txt
•
Description: Replaces "old" with "new" in file.txt.
14.5 sort - Sort lines in a file sort file.txt
•
Description: Sorts the lines in file.txt alphabetically.
14.6 uniq - Remove duplicate lines uniq file.txt
•
Description: Removes consecutive duplicate lines in file.txt.
14.7 wc - Word, line, and character count wc -l file.txt
•
Description: Counts the number of lines in file.txt.
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 script.sh
./script.sh
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 nginx.service
•
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 https://github.com/example/repo.git
•
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/script.sh
o
Description: Runs script.sh 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 file.txt s3://my-bucket/
o
Download file: aws s3 cp s3://my-bucket/file.txt ./
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 files.txt | xargs rm
•
Description: Reads file names from files.txt and deletes them.
26.2 tee - Redirect and output simultaneously echo "Logging this message" | tee log.txt
•
Description: Writes "Logging this message" to the terminal and log.txt.
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 file.txt
•
Description: Compresses file.txt into file.txt.xz.
27.2 7z - Compress files using 7-zip 7z a archive.7z file.txt
•
Description: Compresses file.txt into a .7z archive.
28. Network Monitoring
28.1 nmap - Network scanner nmap -sV 192.168.1.1
•
Description: Scans the host at 192.168.1.1 for open ports and services.
28.2 dig - Query DNS records dig example.com
•
Description: Fetches DNS information for example.com.
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 file.txt
•
Decrypt a file:
gpg file.txt.gpg
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 ./script.sh
•
Description: Runs script.sh 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 10:00:00"
•
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 myfile.txt
•
Description: Searches for myfile.txt 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 ./script.sh
•
Description: Runs script.sh 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 backup.tar.gz /path/to/directory
•
Description: Archives and compresses a directory into backup.tar.gz.
40.2 rsync - Sync files rsync -avz /source/ /destination/
•
Description: Synchronizes files between /source and /destination.
40.3 scp - Securely copy files scp file.txt user@remote:/path/
•
Description: Copies file.txt to a remote server.
40.4 dd - Create a disk image dd if=/dev/sda of=/backup/disk.img 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 192.168.1.1 22
•
Description: Checks if port 22 is open on 192.168.1.1
