DEV Community

Ragib Hasan
Ragib Hasan Subscriber

Posted on

🐧 Linux for DevOps — Complete Learning & Interview Preparation

Goal: āĻāĻ•āĻĻāĻŽ raw level āĻĨ⧇āϕ⧇ Linux āĻļāĻŋāϖ⧇ DevOps/SRE/Cloud/Kubernetes āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ production-ready foundation āϤ⧈āϰāĻŋ āĻ•āϰāĻžāĨ¤


📌 Table of Contents

  1. Linux āϕ⧀?
  2. Linux Architecture
  3. Linux Distribution
  4. Terminal & Shell
  5. Filesystem
  6. Essential Commands
  7. File & Directory Management
  8. File Permissions
  9. Users & Groups
  10. Ownership
  11. Processes
  12. Jobs & Signals
  13. System Monitoring
  14. Package Management
  15. Environment Variables
  16. Shell & Bash
  17. Pipes & Redirection
  18. grep, sed, awk
  19. Networking
  20. Ports & Sockets
  21. DNS
  22. SSH
  23. SCP & Rsync
  24. File Compression
  25. Disk & Storage
  26. Mounting
  27. /proc, /sys, /dev
  28. systemd & Services
  29. Logs & journald
  30. Cron & Scheduling
  31. Linux Security
  32. Firewall
  33. TLS/SSL Basics
  34. Web Server Basics
  35. Reverse Proxy
  36. Linux for Docker
  37. Linux for Kubernetes
  38. Performance Troubleshooting
  39. Production Troubleshooting
  40. Bash Automation
  41. DevOps Practical Tasks
  42. Interview Questions
  43. Scenario-Based Interview
  44. Hands-on Projects
  45. Final Checklist

1. Linux āϕ⧀?

Linux āĻāĻ•āϟāĻŋ open-source Unix-like operating system kernelāĨ¤

Linux system āϏāĻžāϧāĻžāϰāĻŖāϤ:

User
  ↓
Shell
  ↓
System Calls
  ↓
Linux Kernel
  ↓
Hardware
Enter fullscreen mode Exit fullscreen mode

Linux āϕ⧇āύ DevOps-āĻ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ?

āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ—:

  • Cloud server
  • Web server
  • Docker container
  • Kubernetes node
  • CI/CD runner
  • Database server
  • Monitoring server
  • Production infrastructure

Linux-āĻāϰ āωāĻĒāϰ āϚāϞ⧇āĨ¤

āϤāĻžāχ DevOps engineer-āĻāϰ āϜāĻ¨ā§āϝ Linux āĻšāϞ⧋ foundational skillāĨ¤


2. Linux Architecture

Basic architecture:

+-------------------------+
|        Applications     |
+-------------------------+
|        Shell            |
+-------------------------+
|     System Libraries    |
+-------------------------+
|     Linux Kernel        |
+-------------------------+
|        Hardware         |
+-------------------------+
Enter fullscreen mode Exit fullscreen mode

Kernel

Kernel manage āĻ•āϰ⧇:

  • CPU
  • Memory
  • Processes
  • Filesystem
  • Networking
  • Devices
  • Security

3. Linux Distribution

āϜāύāĻĒā§āϰāĻŋ⧟ distributions:

Ubuntu
Debian
Fedora
RHEL
Rocky Linux
AlmaLinux
Arch Linux
Amazon Linux
Enter fullscreen mode Exit fullscreen mode

DevOps-āĻ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇:

Ubuntu
Amazon Linux
RHEL-based systems
Debian
Enter fullscreen mode Exit fullscreen mode

āϜāĻžāύāĻž usefulāĨ¤


4. Terminal & Shell

Terminal āĻšāϞ⧋ interface āϝ⧇āĻ–āĻžāύ⧇ command āϚāĻžāϞāĻžāύ⧋ āĻšā§ŸāĨ¤

Shell command interpret āĻ•āϰ⧇āĨ¤

Popular shells:

bash
zsh
fish
sh
Enter fullscreen mode Exit fullscreen mode

DevOps-āĻāϰ āϜāĻ¨ā§āϝ Bash āĻ…āĻŦāĻļā§āϝāχ āĻļāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤

Check:

echo $SHELL
Enter fullscreen mode Exit fullscreen mode

Current shell:

ps -p $$
Enter fullscreen mode Exit fullscreen mode

5. Linux Filesystem

Linux filesystem tree:

/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var
Enter fullscreen mode Exit fullscreen mode

āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ directories

/

Root filesystemāĨ¤

/home

User filesāĨ¤

/home/ragib
Enter fullscreen mode Exit fullscreen mode

/etc

System configurationāĨ¤

Examples:

/etc/hosts
/etc/fstab
/etc/ssh/
/etc/systemd/
Enter fullscreen mode Exit fullscreen mode

/var

Frequently changing dataāĨ¤

Examples:

/var/log
/var/cache
/var/lib
Enter fullscreen mode Exit fullscreen mode

/tmp

Temporary filesāĨ¤

/usr

Applications, libraries, utilitiesāĨ¤

/opt

Optional/third-party applicationsāĨ¤

/dev

Device filesāĨ¤

/proc

Kernel/process informationāĨ¤

/sys

Kernel/device informationāĨ¤


6. Navigation Commands

Current directory:

pwd
Enter fullscreen mode Exit fullscreen mode

List:

ls
Enter fullscreen mode Exit fullscreen mode

Detailed:

ls -l
Enter fullscreen mode Exit fullscreen mode

Hidden:

ls -la
Enter fullscreen mode Exit fullscreen mode

Change directory:

cd /etc
Enter fullscreen mode Exit fullscreen mode

Home:

cd ~
Enter fullscreen mode Exit fullscreen mode

Previous directory:

cd -
Enter fullscreen mode Exit fullscreen mode

Parent:

cd ..
Enter fullscreen mode Exit fullscreen mode

7. File Management

Create file:

touch app.log
Enter fullscreen mode Exit fullscreen mode

Create directory:

mkdir project
Enter fullscreen mode Exit fullscreen mode

Nested directories:

mkdir -p project/src/app
Enter fullscreen mode Exit fullscreen mode

Copy:

cp file.txt backup.txt
Enter fullscreen mode Exit fullscreen mode

Copy directory:

cp -r project backup/
Enter fullscreen mode Exit fullscreen mode

Move:

mv file.txt /tmp/
Enter fullscreen mode Exit fullscreen mode

Rename:

mv old.txt new.txt
Enter fullscreen mode Exit fullscreen mode

Delete:

rm file.txt
Enter fullscreen mode Exit fullscreen mode

Delete directory:

rm -r directory/
Enter fullscreen mode Exit fullscreen mode

Force:

rm -rf directory/
Enter fullscreen mode Exit fullscreen mode

âš ī¸ rm -rf production server-āĻ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϏāϤāĻ°ā§āĻ•āϤāĻžāϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤


8. Reading Files

Small file:

cat file.txt
Enter fullscreen mode Exit fullscreen mode

Large file:

less file.txt
Enter fullscreen mode Exit fullscreen mode

First lines:

head file.txt
Enter fullscreen mode Exit fullscreen mode

Last lines:

tail file.txt
Enter fullscreen mode Exit fullscreen mode

Last 100:

tail -n 100 app.log
Enter fullscreen mode Exit fullscreen mode

Follow log:

tail -f app.log
Enter fullscreen mode Exit fullscreen mode

9. Searching Files

Find:

find /var/log -name "*.log"
Enter fullscreen mode Exit fullscreen mode

Search by type:

find . -type f
Enter fullscreen mode Exit fullscreen mode

Search directory:

find . -type d
Enter fullscreen mode Exit fullscreen mode

Search recently modified:

find . -mtime -1
Enter fullscreen mode Exit fullscreen mode

10. grep

Text search:

grep "error" app.log
Enter fullscreen mode Exit fullscreen mode

Case insensitive:

grep -i "error" app.log
Enter fullscreen mode Exit fullscreen mode

Recursive:

grep -r "database" /etc/
Enter fullscreen mode Exit fullscreen mode

Line number:

grep -n "error" app.log
Enter fullscreen mode Exit fullscreen mode

Invert match:

grep -v "INFO" app.log
Enter fullscreen mode Exit fullscreen mode

Multiple patterns:

grep -E "error|failed|critical" app.log
Enter fullscreen mode Exit fullscreen mode

11. Pipes

Pipe āĻāĻ•āϟāĻŋ command-āĻāϰ output āĻ…āĻ¨ā§āϝ command-āĻāϰ input āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻā§‡ā§ŸāĨ¤

ps aux | grep nginx
Enter fullscreen mode Exit fullscreen mode

Example:

cat app.log | grep ERROR
Enter fullscreen mode Exit fullscreen mode

Better:

grep ERROR app.log
Enter fullscreen mode Exit fullscreen mode

Multiple:

ps aux | grep python | grep -v grep
Enter fullscreen mode Exit fullscreen mode

12. Redirection

Output file:

ls > files.txt
Enter fullscreen mode Exit fullscreen mode

Append:

ls >> files.txt
Enter fullscreen mode Exit fullscreen mode

Error redirect:

command 2> error.log
Enter fullscreen mode Exit fullscreen mode

Both stdout + stderr:

command > output.log 2>&1
Enter fullscreen mode Exit fullscreen mode

Modern Bash:

command &> output.log
Enter fullscreen mode Exit fullscreen mode

13. Permissions

Linux permission:

r = read
w = write
x = execute
Enter fullscreen mode Exit fullscreen mode

Example:

-rwxr-xr--
Enter fullscreen mode Exit fullscreen mode

Breakdown:

Owner      Group      Others
rwx        r-x        r--
Enter fullscreen mode Exit fullscreen mode

Numeric permissions:

r = 4
w = 2
x = 1
Enter fullscreen mode Exit fullscreen mode

Examples:

7 = rwx
6 = rw-
5 = r-x
4 = r--
Enter fullscreen mode Exit fullscreen mode

Therefore:

chmod 755 script.sh
Enter fullscreen mode Exit fullscreen mode

Means:

Owner:  rwx
Group:  r-x
Others: r-x
Enter fullscreen mode Exit fullscreen mode

14. chmod

Add execute:

chmod +x script.sh
Enter fullscreen mode Exit fullscreen mode

Remove write:

chmod -w file.txt
Enter fullscreen mode Exit fullscreen mode

Recursive:

chmod -R 755 directory/
Enter fullscreen mode Exit fullscreen mode

Symbolic:

chmod u+x script.sh
Enter fullscreen mode Exit fullscreen mode

15. chown

Change owner:

sudo chown user file.txt
Enter fullscreen mode Exit fullscreen mode

Owner + group:

sudo chown user:group file.txt
Enter fullscreen mode Exit fullscreen mode

Recursive:

sudo chown -R user:group directory/
Enter fullscreen mode Exit fullscreen mode

16. Users

Current user:

whoami
Enter fullscreen mode Exit fullscreen mode

User ID:

id
Enter fullscreen mode Exit fullscreen mode

Logged-in users:

who
Enter fullscreen mode Exit fullscreen mode

User information:

/etc/passwd
Enter fullscreen mode Exit fullscreen mode

Password information:

/etc/shadow
Enter fullscreen mode Exit fullscreen mode

/etc/shadow sensitive; normally readable only by privileged users.


17. Groups

Current groups:

groups
Enter fullscreen mode Exit fullscreen mode

Add user:

sudo useradd -m devops
Enter fullscreen mode Exit fullscreen mode

Set password:

sudo passwd devops
Enter fullscreen mode Exit fullscreen mode

Add to group:

sudo usermod -aG docker devops
Enter fullscreen mode Exit fullscreen mode

List groups:

getent group
Enter fullscreen mode Exit fullscreen mode

18. sudo

sudo allows authorized users to execute commands with elevated privileges.

Example:

sudo systemctl restart nginx
Enter fullscreen mode Exit fullscreen mode

Configuration:

/etc/sudoers
Enter fullscreen mode Exit fullscreen mode

Edit safely:

sudo visudo
Enter fullscreen mode Exit fullscreen mode

19. Processes

List processes:

ps
Enter fullscreen mode Exit fullscreen mode

All processes:

ps aux
Enter fullscreen mode Exit fullscreen mode

Tree:

pstree
Enter fullscreen mode Exit fullscreen mode

Interactive:

top
Enter fullscreen mode Exit fullscreen mode

Better interactive monitor:

htop
Enter fullscreen mode Exit fullscreen mode

20. Process IDs

Every process has PID.

ps aux
Enter fullscreen mode Exit fullscreen mode

Find process:

pgrep nginx
Enter fullscreen mode Exit fullscreen mode

Process details:

ps -p 1234
Enter fullscreen mode Exit fullscreen mode

21. kill

Terminate:

kill 1234
Enter fullscreen mode Exit fullscreen mode

Force:

kill -9 1234
Enter fullscreen mode Exit fullscreen mode

Important signals:

SIGTERM = 15
SIGKILL = 9
SIGHUP  = 1
SIGINT  = 2
Enter fullscreen mode Exit fullscreen mode

Prefer:

kill PID
Enter fullscreen mode Exit fullscreen mode

before:

kill -9 PID
Enter fullscreen mode Exit fullscreen mode

because SIGTERM allows graceful shutdownāĨ¤


22. Background Processes

Run background:

command &
Enter fullscreen mode Exit fullscreen mode

Jobs:

jobs
Enter fullscreen mode Exit fullscreen mode

Bring foreground:

fg
Enter fullscreen mode Exit fullscreen mode

Background:

bg
Enter fullscreen mode Exit fullscreen mode

Detach process:

nohup command &
Enter fullscreen mode Exit fullscreen mode

23. System Monitoring

CPU:

top
Enter fullscreen mode Exit fullscreen mode

Memory:

free -h
Enter fullscreen mode Exit fullscreen mode

Disk:

df -h
Enter fullscreen mode Exit fullscreen mode

Directory size:

du -sh directory/
Enter fullscreen mode Exit fullscreen mode

Load average:

uptime
Enter fullscreen mode Exit fullscreen mode

System information:

uname -a
Enter fullscreen mode Exit fullscreen mode

CPU:

lscpu
Enter fullscreen mode Exit fullscreen mode

Memory:

free -h
Enter fullscreen mode Exit fullscreen mode

24. Load Average

Check:

uptime
Enter fullscreen mode Exit fullscreen mode

Example:

load average: 1.20, 0.80, 0.50
Enter fullscreen mode Exit fullscreen mode

āĻāϗ⧁āϞ⧋ āϏāĻžāϧāĻžāϰāĻŖāϤ:

1 minute
5 minutes
15 minutes
Enter fullscreen mode Exit fullscreen mode

load averageāĨ¤

Interview-āĻ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇:

Load average āĻļ⧁āϧ⧁ CPU utilization āύ⧟; runnable āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ uninterruptible tasks-āĻāϰ āϚāĻžāĻĒāĻ“ reflect āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


25. Package Management

Ubuntu/Debian:

sudo apt update
sudo apt install nginx
sudo apt remove nginx
Enter fullscreen mode Exit fullscreen mode

RHEL/Fedora:

dnf install nginx
Enter fullscreen mode Exit fullscreen mode

Arch:

sudo pacman -S nginx
Enter fullscreen mode Exit fullscreen mode

Package query:

pacman -Qs nginx
Enter fullscreen mode Exit fullscreen mode

DevOps engineer-āĻāϰ āϜāĻ¨ā§āϝ distribution āĻ…āύ⧁āϝāĻžā§Ÿā§€ package manager āϜāĻžāύāĻž usefulāĨ¤


26. Environment Variables

Show:

env
Enter fullscreen mode Exit fullscreen mode

Specific:

echo $PATH
Enter fullscreen mode Exit fullscreen mode

Set:

export APP_ENV=production
Enter fullscreen mode Exit fullscreen mode

Check:

echo $APP_ENV
Enter fullscreen mode Exit fullscreen mode

Permanent shell variable āϏāĻžāϧāĻžāϰāĻŖāϤ:

~/.bashrc
~/.zshrc
Enter fullscreen mode Exit fullscreen mode

server/application configuration-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ environment variables āϖ⧁āĻŦ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤


27. PATH

Check:

echo $PATH
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āύ executable āϕ⧋āĻĨāĻžā§Ÿ:

which python
Enter fullscreen mode Exit fullscreen mode

āφāϰāĻ“ reliable:

command -v python
Enter fullscreen mode Exit fullscreen mode

PATH-āĻāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ directory:

echo $PATH | tr ':' '\n'
Enter fullscreen mode Exit fullscreen mode

28. Bash Scripting

Basic:

#!/bin/bash

echo "Hello DevOps"
Enter fullscreen mode Exit fullscreen mode

Variable:

NAME="DevOps"

echo "$NAME"
Enter fullscreen mode Exit fullscreen mode

Condition:

if [ -f app.log ]; then
    echo "File exists"
fi
Enter fullscreen mode Exit fullscreen mode

Loop:

for file in *.log; do
    echo "$file"
done
Enter fullscreen mode Exit fullscreen mode

Function:

backup() {
    echo "Running backup"
}
Enter fullscreen mode Exit fullscreen mode

29. Exit Codes

āĻļ⧇āώ command-āĻāϰ exit code:

echo $?
Enter fullscreen mode Exit fullscreen mode

Generally:

0 = success
non-zero = failure
Enter fullscreen mode Exit fullscreen mode

Script:

command

if [ $? -ne 0 ]; then
    echo "Command failed"
fi
Enter fullscreen mode Exit fullscreen mode

Better:

if ! command; then
    echo "Failed"
fi
Enter fullscreen mode Exit fullscreen mode

Production scripts:

set -euo pipefail
Enter fullscreen mode Exit fullscreen mode

āĻāϰ meaning āĻŦ⧁āĻāϤ⧇ āĻšāĻŦ⧇āĨ¤


30. awk

Column processing:

awk '{print $1}' file.txt
Enter fullscreen mode Exit fullscreen mode

Example:

ps aux | awk '{print $1, $2}'
Enter fullscreen mode Exit fullscreen mode

Useful for:

  • logs
  • metrics
  • CSV-like text
  • command output

31. sed

Text replacement:

sed 's/old/new/g' file.txt
Enter fullscreen mode Exit fullscreen mode

Delete line:

sed '3d' file.txt
Enter fullscreen mode Exit fullscreen mode

Configuration automation-āĻ sed frequently āĻĻ⧇āĻ–āĻž āϝāĻžā§ŸāĨ¤


32. cut

echo "devops:linux:docker" | cut -d ':' -f 1
Enter fullscreen mode Exit fullscreen mode

Output:

devops
Enter fullscreen mode Exit fullscreen mode

33. sort

sort file.txt
Enter fullscreen mode Exit fullscreen mode

Reverse:

sort -r file.txt
Enter fullscreen mode Exit fullscreen mode

Numeric:

sort -n numbers.txt
Enter fullscreen mode Exit fullscreen mode

34. uniq

sort file.txt | uniq
Enter fullscreen mode Exit fullscreen mode

Count:

sort file.txt | uniq -c
Enter fullscreen mode Exit fullscreen mode

35. Networking Fundamentals

DevOps-āĻāϰ āϜāĻ¨ā§āϝ networking āĻ…āĻŦāĻļā§āϝāχ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻļāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇:

IP
MAC
TCP
UDP
HTTP
HTTPS
DNS
DHCP
NAT
Routing
Ports
Sockets
Firewall
Enter fullscreen mode Exit fullscreen mode

36. IP Address

IPv4 example:

192.168.1.10
Enter fullscreen mode Exit fullscreen mode

Private ranges:

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16
Enter fullscreen mode Exit fullscreen mode

Interface:

ip addr
Enter fullscreen mode Exit fullscreen mode

Short:

ip a
Enter fullscreen mode Exit fullscreen mode

37. Routing

Routes:

ip route
Enter fullscreen mode Exit fullscreen mode

Default route:

default via 192.168.1.1
Enter fullscreen mode Exit fullscreen mode

Important interview concept:

Default gateway āĻšāϞ⧋ āĻāĻŽāύ router āϝ⧇āĻ–āĻžāύ⧇ system unknown destinations-āĻāϰ traffic āĻĒāĻžāĻ āĻžā§ŸāĨ¤


38. Connectivity

Ping:

ping google.com
Enter fullscreen mode Exit fullscreen mode

Trace:

traceroute google.com
Enter fullscreen mode Exit fullscreen mode

āĻŦāĻž:

tracepath google.com
Enter fullscreen mode Exit fullscreen mode

39. Ports

Listening ports:

ss -tulpn
Enter fullscreen mode Exit fullscreen mode

Specific port:

ss -lntp | grep :8000
Enter fullscreen mode Exit fullscreen mode

Common ports:

22   SSH
53   DNS
80   HTTP
443  HTTPS
3306 MySQL
5432 PostgreSQL
6379 Redis
8000 FastAPI
8080 Common HTTP alternative
Enter fullscreen mode Exit fullscreen mode

40. DNS

DNS domain → IP resolve āĻ•āϰ⧇āĨ¤

Check:

dig google.com
Enter fullscreen mode Exit fullscreen mode

āĻŦāĻž:

nslookup google.com
Enter fullscreen mode Exit fullscreen mode

Simple:

getent hosts google.com
Enter fullscreen mode Exit fullscreen mode

DNS configuration:

/etc/resolv.conf
Enter fullscreen mode Exit fullscreen mode

Hosts:

/etc/hosts
Enter fullscreen mode Exit fullscreen mode

41. curl

HTTP request:

curl https://example.com
Enter fullscreen mode Exit fullscreen mode

Headers:

curl -I https://example.com
Enter fullscreen mode Exit fullscreen mode

POST:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name":"Ragib"}' \
  http://localhost:8000/predict
Enter fullscreen mode Exit fullscreen mode

DevOps troubleshooting-āĻāϰ āϜāĻ¨ā§āϝ curl āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤


42. wget

Download:

wget https://example.com/file.zip
Enter fullscreen mode Exit fullscreen mode

43. SSH

Remote server access:

ssh user@server-ip
Enter fullscreen mode Exit fullscreen mode

Specific key:

ssh -i key.pem user@server-ip
Enter fullscreen mode Exit fullscreen mode

SSH config:

~/.ssh/config
Enter fullscreen mode Exit fullscreen mode

44. SSH Keys

Generate:

ssh-keygen -t ed25519
Enter fullscreen mode Exit fullscreen mode

Public key:

~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Private key:

~/.ssh/id_ed25519
Enter fullscreen mode Exit fullscreen mode

Private key āĻ•āĻ–āύ⧋ share āĻŦāĻž Git repository-āϤ⧇ commit āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤


45. SCP

Copy local → remote:

scp file.txt user@server:/tmp/
Enter fullscreen mode Exit fullscreen mode

Remote → local:

scp user@server:/tmp/file.txt .
Enter fullscreen mode Exit fullscreen mode

46. rsync

Efficient synchronization:

rsync -av project/ server:/backup/project/
Enter fullscreen mode Exit fullscreen mode

Delete destination extras:

rsync -av --delete source/ destination/
Enter fullscreen mode Exit fullscreen mode

Production backup/deployment workflows-āĻ usefulāĨ¤


47. Compression

tar:

tar -cvf archive.tar directory/
Enter fullscreen mode Exit fullscreen mode

Extract:

tar -xvf archive.tar
Enter fullscreen mode Exit fullscreen mode

gzip:

tar -czvf archive.tar.gz directory/
Enter fullscreen mode Exit fullscreen mode

Extract:

tar -xzvf archive.tar.gz
Enter fullscreen mode Exit fullscreen mode

48. Disk Management

Disk usage:

df -h
Enter fullscreen mode Exit fullscreen mode

Directory:

du -sh /var/*
Enter fullscreen mode Exit fullscreen mode

Block devices:

lsblk
Enter fullscreen mode Exit fullscreen mode

Partitions:

sudo fdisk -l
Enter fullscreen mode Exit fullscreen mode

49. Mount

Mount filesystem:

sudo mount /dev/sdb1 /mnt
Enter fullscreen mode Exit fullscreen mode

Unmount:

sudo umount /mnt
Enter fullscreen mode Exit fullscreen mode

Persistent mounts:

/etc/fstab
Enter fullscreen mode Exit fullscreen mode

50. Inodes

Filesystem āĻļ⧁āϧ⧁ file size āĻĻāĻŋā§Ÿā§‡ manage āĻ•āϰ⧇ āύāĻž; inode-āĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

Check:

df -i
Enter fullscreen mode Exit fullscreen mode

Possible problem:

Disk space available
BUT
Inodes exhausted
Enter fullscreen mode Exit fullscreen mode

āϤāĻ–āύ āύāϤ⧁āύ file āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


51. /proc

/proc virtual filesystemāĨ¤

Process:

/proc/<PID>/
Enter fullscreen mode Exit fullscreen mode

CPU:

/proc/cpuinfo
Enter fullscreen mode Exit fullscreen mode

Memory:

/proc/meminfo
Enter fullscreen mode Exit fullscreen mode

Uptime:

/proc/uptime
Enter fullscreen mode Exit fullscreen mode

52. /dev

Device filesāĨ¤

Examples:

/dev/sda
/dev/nvme0n1
/dev/null
/dev/zero
Enter fullscreen mode Exit fullscreen mode

/dev/null:

command > /dev/null
Enter fullscreen mode Exit fullscreen mode

53. /dev/null

Anything written āĻāĻ–āĻžāύ⧇ discard āĻšā§ŸāĨ¤

echo "hello" > /dev/null
Enter fullscreen mode Exit fullscreen mode

Suppress output:

command > /dev/null 2>&1
Enter fullscreen mode Exit fullscreen mode

54. systemd

Modern Linux systems-āĻ systemd service manager āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

Service status:

systemctl status nginx
Enter fullscreen mode Exit fullscreen mode

Start:

sudo systemctl start nginx
Enter fullscreen mode Exit fullscreen mode

Stop:

sudo systemctl stop nginx
Enter fullscreen mode Exit fullscreen mode

Restart:

sudo systemctl restart nginx
Enter fullscreen mode Exit fullscreen mode

Enable on boot:

sudo systemctl enable nginx
Enter fullscreen mode Exit fullscreen mode

Disable:

sudo systemctl disable nginx
Enter fullscreen mode Exit fullscreen mode

55. systemd Logs

journalctl
Enter fullscreen mode Exit fullscreen mode

Specific service:

journalctl -u nginx
Enter fullscreen mode Exit fullscreen mode

Follow:

journalctl -u nginx -f
Enter fullscreen mode Exit fullscreen mode

Recent:

journalctl --since "1 hour ago"
Enter fullscreen mode Exit fullscreen mode

Boot logs:

journalctl -b
Enter fullscreen mode Exit fullscreen mode

56. Linux Logs

Common location:

/var/log/
Enter fullscreen mode Exit fullscreen mode

Examples:

/var/log/syslog
/var/log/auth.log
/var/log/nginx/
Enter fullscreen mode Exit fullscreen mode

Distribution āĻ…āύ⧁āϝāĻžā§Ÿā§€ filenames āĻ­āĻŋāĻ¨ā§āύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


57. Log Rotation

Long-running production systems-āĻ logs unlimited growth āĻ•āϰāϞ⧇ disk full āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Concepts:

logrotate
rotation
compression
retention
Enter fullscreen mode Exit fullscreen mode

Configuration:

/etc/logrotate.conf
/etc/logrotate.d/
Enter fullscreen mode Exit fullscreen mode

58. Cron

Scheduled jobsāĨ¤

Edit:

crontab -e
Enter fullscreen mode Exit fullscreen mode

Format:

minute hour day month weekday command
Enter fullscreen mode Exit fullscreen mode

Example:

0 2 * * * /home/user/backup.sh
Enter fullscreen mode Exit fullscreen mode

āĻŽāĻžāύ⧇ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āϰāĻžāϤ ⧍āϟāĻžā§ŸāĨ¤


59. Linux Security

Must know:

Users
Groups
Permissions
sudo
SSH
Firewall
SELinux/AppArmor
Secrets
Updates
Least privilege
Enter fullscreen mode Exit fullscreen mode

60. Firewall

Common tools:

ufw
firewalld
nftables
iptables
Enter fullscreen mode Exit fullscreen mode

Ubuntu example:

sudo ufw status
Enter fullscreen mode Exit fullscreen mode

Allow SSH:

sudo ufw allow 22
Enter fullscreen mode Exit fullscreen mode

Allow HTTP:

sudo ufw allow 80
Enter fullscreen mode Exit fullscreen mode

61. SELinux / AppArmor

Linux security frameworksāĨ¤

Know the concepts:

Mandatory Access Control
Policies
Security Context
Least Privilege
Enter fullscreen mode Exit fullscreen mode

RHEL ecosystem-āĻ SELinux āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

Ubuntu-āϤ⧇ AppArmor commonly āĻĻ⧇āĻ–āĻž āϝāĻžā§ŸāĨ¤


62. Web Server Basics

Popular:

Nginx
Apache
Enter fullscreen mode Exit fullscreen mode

Nginx can act as:

Web Server
Reverse Proxy
Load Balancer
TLS Termination
Enter fullscreen mode Exit fullscreen mode

63. Reverse Proxy

Architecture:

Client
  ↓
Nginx
  ↓
FastAPI
  ↓
ML Model
Enter fullscreen mode Exit fullscreen mode

Nginx backend-āĻāϰ āϏāĻžāĻŽāύ⧇ āĻĨāĻžāϕ⧇āĨ¤

Benefits:

  • TLS termination
  • routing
  • load balancing
  • buffering
  • security controls

64. Linux + Docker

Docker Linux-āĻāϰ āύāĻŋāĻšā§‡āϰ āĻ…āύ⧇āĻ• core concept āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇:

Namespaces
cgroups
filesystem layers
networking
process isolation
capabilities
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāχ Docker āĻļ⧇āĻ–āĻžāϰ āφāϗ⧇ Linux fundamentals āĻļāĻ•ā§āϤ āĻšāĻ“ā§ŸāĻž āϖ⧁āĻŦ usefulāĨ¤


65. Docker-āĻāϰ āϜāĻ¨ā§āϝ Linux Knowledge

āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇:

  • Process
  • PID
  • Namespace
  • cgroups
  • Filesystem
  • permissions
  • networking
  • ports
  • mounts
  • signals

Container-āĻāϰ āĻ­āĻŋāϤāϰ⧇āϰ process āϏāĻžāϧāĻžāϰāĻŖāϤ host-āĻāϰ kernel āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤


66. Linux + Kubernetes

Kubernetes node troubleshooting-āĻāϰ āϜāĻ¨ā§āϝ:

ps
top
free
df
du
ss
ip
journalctl
systemctl
curl
grep
Enter fullscreen mode Exit fullscreen mode

āϖ⧁āĻŦ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇āĨ¤


67. Kubernetes Troubleshooting Example

Pod:

CrashLoopBackOff
Enter fullscreen mode Exit fullscreen mode

āϤāĻ–āύ:

kubectl logs pod-name
kubectl describe pod pod-name
Enter fullscreen mode Exit fullscreen mode

āĻ•āĻŋāĻ¨ā§āϤ⧁ underlying node problem āĻšāϞ⧇ Linux:

journalctl
df -h
free -h
top
systemctl
Enter fullscreen mode Exit fullscreen mode

āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤


68. CPU Troubleshooting

Problem:

CPU = 100%
Enter fullscreen mode Exit fullscreen mode

Check:

top
Enter fullscreen mode Exit fullscreen mode

āĻŦāĻž:

htop
Enter fullscreen mode Exit fullscreen mode

Process:

ps aux --sort=-%cpu | head
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ determine āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:

Which process?
Why?
Application issue?
Infinite loop?
Too much traffic?
CPU throttling?
Enter fullscreen mode Exit fullscreen mode

69. Memory Troubleshooting

Check:

free -h
Enter fullscreen mode Exit fullscreen mode

Processes:

ps aux --sort=-%mem | head
Enter fullscreen mode Exit fullscreen mode

OOM-related logs:

dmesg | grep -i oom
Enter fullscreen mode Exit fullscreen mode

āĻŦāĻž:

journalctl | grep -i oom
Enter fullscreen mode Exit fullscreen mode

70. Disk Full Troubleshooting

āĻĒā§āϰāĻĨāĻŽ:

df -h
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ:

du -sh /*
Enter fullscreen mode Exit fullscreen mode

Specific:

du -sh /var/*
Enter fullscreen mode Exit fullscreen mode

Large files:

find /var -type f -size +1G
Enter fullscreen mode Exit fullscreen mode

Check inode:

df -i
Enter fullscreen mode Exit fullscreen mode

Potential causes:

Huge logs
Docker images
Docker volumes
Deleted-but-open files
Temporary files
Backups
Enter fullscreen mode Exit fullscreen mode

71. Deleted File Still Using Disk

āĻāĻ•āϟāĻŋ process file delete āĻ•āϰāĻžāϰ āĻĒāϰ⧇āĻ“ file descriptor open āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Check:

lsof +L1
Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻž production troubleshooting interview-āĻ useful scenarioāĨ¤


72. Port Already in Use

Error:

Address already in use
Enter fullscreen mode Exit fullscreen mode

Check:

ss -lntp | grep :8000
Enter fullscreen mode Exit fullscreen mode

āĻŦāĻž:

lsof -i :8000
Enter fullscreen mode Exit fullscreen mode

Process identify āĻ•āϰ⧇ graceful stop āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤


73. Service Not Starting

āϧāĻžāĻĒ:

systemctl status service
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ:

journalctl -u service
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ:

systemctl cat service
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ configuration validateāĨ¤


74. Server Reachable āĻ•āĻŋāĻ¨ā§āϤ⧁ Website āĻ•āĻžāϜ āĻ•āϰāϛ⧇ āύāĻž

Layer-by-layer troubleshoot:

1. DNS
2. Network
3. Port
4. Firewall
5. Web server
6. Reverse proxy
7. Application
8. Database
Enter fullscreen mode Exit fullscreen mode

Commands:

dig domain.com
ping server
ss -lntp
curl localhost
curl backend:8000
Enter fullscreen mode Exit fullscreen mode

75. HTTP Status Codes

Must know:

200 OK
201 Created
204 No Content

301/302 Redirect

400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timeout
409 Conflict
429 Too Many Requests

500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
Enter fullscreen mode Exit fullscreen mode

76. 502 vs 503 vs 504

502 Bad Gateway

Proxy backend āĻĨ⧇āϕ⧇ valid response āĻĒāĻžā§ŸāύāĻŋāĨ¤

503 Service Unavailable

Service available āύ⧟ āĻŦāĻž overloaded āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

504 Gateway Timeout

Upstream response āĻĻāĻŋāϤ⧇ āĻŦ⧇āĻļāĻŋ āϏāĻŽā§Ÿ āύāĻŋā§Ÿā§‡āϛ⧇āĨ¤

DevOps interview-āĻ āĻāϗ⧁āϞ⧋āϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϜāĻžāύāĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤


77. TCP vs UDP

TCP

  • Connection-oriented
  • Reliable
  • Ordered
  • Retransmission

UDP

  • Connectionless
  • Lower overhead
  • No guaranteed delivery
  • Faster for suitable workloads

Examples:

TCP → HTTP/HTTPS, SSH
UDP → DNS queries commonly, streaming/real-time workloads
Enter fullscreen mode Exit fullscreen mode

78. TCP Connection States

Know:

LISTEN
SYN-SENT
SYN-RECEIVED
ESTABLISHED
FIN-WAIT
TIME-WAIT
CLOSE-WAIT
Enter fullscreen mode Exit fullscreen mode

Check:

ss -tan
Enter fullscreen mode Exit fullscreen mode

79. TIME_WAIT

Connection close āĻšāĻ“ā§ŸāĻžāϰ āĻĒāϰ TCP āĻ•āĻŋāϛ⧁ āϏāĻŽā§Ÿ state āϧāϰ⧇ āϰāĻžāϖ⧇ āϝāĻžāϤ⧇ delayed packets āϏāĻŽāĻ¸ā§āϝāĻž āύāĻž āĻ•āϰ⧇āĨ¤

High traffic systems-āĻ āĻ…āύ⧇āĻ• TIME_WAIT āĻĻ⧇āĻ–āĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Interview-āĻ āĻļ⧁āϧ⧁ “TIME_WAIT is bad” āĻŦāϞāĻž āϭ⧁āϞāĨ¤


80. File Descriptors

Linux-āĻ process files, sockets āχāĻ¤ā§āϝāĻžāĻĻāĻŋ file descriptors āĻšāĻŋāϏ⧇āĻŦ⧇ handle āĻ•āϰ⧇āĨ¤

Check limits:

ulimit -n
Enter fullscreen mode Exit fullscreen mode

Process open files:

lsof -p PID
Enter fullscreen mode Exit fullscreen mode

81. Hard Link vs Soft Link

Soft link:

ln -s original.txt link.txt
Enter fullscreen mode Exit fullscreen mode

Hard link:

ln original.txt hardlink.txt
Enter fullscreen mode Exit fullscreen mode

Soft link

  • āφāϞāĻžāĻĻāĻž inode
  • target-āĻāϰ path reference āĻ•āϰ⧇
  • target delete āĻšāϞ⧇ broken āĻšāϤ⧇ āĻĒāĻžāϰ⧇

Hard link

  • āĻāĻ•āχ inode
  • āĻāĻ•āχ filesystem-āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ
  • original filename delete āĻšāϞ⧇āĻ“ data āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇

82. Symbolic Links in DevOps

Common examples:

/etc/nginx/sites-enabled/
Enter fullscreen mode Exit fullscreen mode

Configuration management āĻāĻŦāĻ‚ system files-āĻ symbolic links āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āĨ¤


83. Process vs Thread

Process

Independent execution contextāĨ¤

Thread

āĻāĻ•āχ process-āĻāϰ āĻŽāĻ§ā§āϝ⧇ execution unitāĨ¤

Threads āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āχ process-āĻāϰ memory share āĻ•āϰ⧇āĨ¤


84. Zombie Process

Parent process child-āĻāϰ exit status collect āύāĻž āĻ•āϰāϞ⧇ zombie process āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Check:

ps aux | grep Z
Enter fullscreen mode Exit fullscreen mode

Zombie kill āĻ•āϰāĻžāϰ āĻŦāĻĻāϞ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ parent process-āĻāϰ issue investigate āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤


85. Orphan Process

Parent process terminate āĻšāϞ⧇ child orphan āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ system-āĻāϰ init/systemd process āϤāĻžāϕ⧇ adopt āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


86. Context Switching

CPU āĻāĻ• execution context āĻĨ⧇āϕ⧇ āĻ…āĻ¨ā§āϝāϟāĻŋāϤ⧇ switch āĻ•āϰ⧇āĨ¤

Too many processes/threads context-switch overhead āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

Tools:

vmstat
pidstat
Enter fullscreen mode Exit fullscreen mode

87. vmstat

vmstat 1
Enter fullscreen mode Exit fullscreen mode

Useful for:

CPU
memory
swap
processes
I/O
context switching
Enter fullscreen mode Exit fullscreen mode

88. iostat

Disk I/O troubleshooting:

iostat
Enter fullscreen mode Exit fullscreen mode

Useful metrics:

IOPS
throughput
utilization
latency
Enter fullscreen mode Exit fullscreen mode

89. sar

Historical/current system performance statistics-āĻāϰ āϜāĻ¨ā§āϝ usefulāĨ¤

sar
Enter fullscreen mode Exit fullscreen mode

CPU:

sar -u
Enter fullscreen mode Exit fullscreen mode

Memory:

sar -r
Enter fullscreen mode Exit fullscreen mode

Network:

sar -n DEV
Enter fullscreen mode Exit fullscreen mode

90. Network Troubleshooting Toolkit

Must know:

ip
ss
ping
traceroute
tracepath
dig
nslookup
curl
wget
nc
tcpdump
Enter fullscreen mode Exit fullscreen mode

91. netcat

Port testing:

nc -zv server 8000
Enter fullscreen mode Exit fullscreen mode

Useful for checking TCP connectivityāĨ¤


92. tcpdump

Packet capture:

sudo tcpdump -i any port 8000
Enter fullscreen mode Exit fullscreen mode

HTTP traffic investigation:

sudo tcpdump -i any host 10.0.0.5
Enter fullscreen mode Exit fullscreen mode

Advanced networking troubleshooting-āĻāϰ āϜāĻ¨ā§āϝ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤


93. Linux Security Checklist

Production server:

[ ] Disable unnecessary services
[ ] Use SSH keys
[ ] Avoid root login
[ ] Use least privilege
[ ] Keep packages updated
[ ] Configure firewall
[ ] Protect secrets
[ ] Monitor logs
[ ] Rotate credentials
[ ] Backup critical data
Enter fullscreen mode Exit fullscreen mode

94. DevOps-āĻ Linux-āĻāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ Commands

āĻāχ commandāϗ⧁āϞ⧋ āĻŽā§āĻ–āĻ¸ā§āĻĨ āύāĻž āĻšāϞ⧇āĻ“ confidently āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāϤ⧇ āĻšāĻŦ⧇:

pwd
ls
cd
cp
mv
rm
mkdir
touch
cat
less
head
tail
grep
find
awk
sed
cut
sort
uniq
chmod
chown
sudo
ps
top
htop
kill
pkill
pgrep
free
df
du
lsblk
mount
ip
ss
ping
curl
wget
dig
nc
tcpdump
ssh
scp
rsync
tar
systemctl
journalctl
crontab
lsof
uname
uptime
Enter fullscreen mode Exit fullscreen mode

95. Production Troubleshooting Method

āĻ•āĻ–āύ⧋ random command āϚāĻžāϞāĻžāύ⧋ āωāϚāĻŋāϤ āύ⧟āĨ¤

āĻāχ framework follow āĻ•āϰāĻŦ⧇:

1. Identify the symptom
        ↓
2. Determine scope
        ↓
3. Check recent changes
        ↓
4. Check logs
        ↓
5. Check metrics
        ↓
6. Check resource usage
        ↓
7. Check network
        ↓
8. Reproduce if possible
        ↓
9. Fix
        ↓
10. Verify
        ↓
11. Document
Enter fullscreen mode Exit fullscreen mode

96. DevOps Incident Example

Problem

Application suddenly slowāĨ¤

Step 1

Check CPU:

top
Enter fullscreen mode Exit fullscreen mode

Step 2

Memory:

free -h
Enter fullscreen mode Exit fullscreen mode

Step 3

Disk:

df -h
Enter fullscreen mode Exit fullscreen mode

Step 4

Network:

ss -s
Enter fullscreen mode Exit fullscreen mode

Step 5

Application logs:

journalctl -u app
Enter fullscreen mode Exit fullscreen mode

Step 6

Recent deployment:

What changed?
Enter fullscreen mode Exit fullscreen mode

Step 7

Check upstream/database.

āĻāĻ­āĻžāĻŦ⧇ systematic troubleshooting āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤


97. Linux + ML Inference Platform

āϤ⧋āĻŽāĻžāϰ ML inference project-āĻ Linux knowledge āϏāϰāĻžāϏāϰāĻŋ āϞāĻžāĻ—āĻŦ⧇āĨ¤

Architecture:

Linux Server
    ↓
Docker
    ↓
Kubernetes
    ↓
FastAPI
    ↓
ML Model
Enter fullscreen mode Exit fullscreen mode

Troubleshooting:

High CPU
    ↓
top

High memory
    ↓
free / ps

Disk full
    ↓
df / du

Port issue
    ↓
ss

Service issue
    ↓
systemctl / journalctl

Network issue
    ↓
ip / ss / curl / dig

Container issue
    ↓
docker logs / docker stats
Enter fullscreen mode Exit fullscreen mode

98. Interview Preparation — Basic Questions

Q1. Linux āϕ⧀?

Linux āĻāĻ•āϟāĻŋ open-source Unix-like operating system kernel; Linux distributions kernel-āĻāϰ āϏāĻžāĻĨ⧇ user-space tools āĻ“ package ecosystem āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤


Q2. Kernel āϕ⧀?

Kernel hardware āĻāĻŦāĻ‚ applications-āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒā§āϰāϧāĻžāύ interface āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāĻŦāĻ‚ CPU, memory, processes, devices āĻ“ networking-āĻāϰ āĻŽāϤ⧋ resources manage āĻ•āϰ⧇āĨ¤


Q3. Linux-āĻ /etc āϕ⧀?

System configuration files-āĻāϰ āĻĒā§āϰāϧāĻžāύ directoryāĨ¤


Q4. /var āϕ⧀?

Variable data āϝ⧇āĻŽāύ logs, caches āĻāĻŦāĻ‚ application state-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤


Q5. Process āϕ⧀?

Running program-āĻāϰ āĻāĻ•āϟāĻŋ execution instanceāĨ¤


Q6. PID āϕ⧀?

Process IdentifierāĨ¤


Q7. kill -9 āϕ⧀ āĻ•āϰ⧇?

SIGKILL āĻĒāĻžāĻ āĻžā§ŸāĨ¤ Process graceful cleanup āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĒāĻžā§Ÿ āύāĻžāĨ¤


Q8. chmod 755 āϕ⧀?

Owner  = rwx
Group  = r-x
Other  = r-x
Enter fullscreen mode Exit fullscreen mode

Q9. chmod 644 āϕ⧀?

Owner  = rw-
Group  = r--
Other  = r--
Enter fullscreen mode Exit fullscreen mode

Q10. sudo āϕ⧀?

Authorized user-āϕ⧇ privileged command execute āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻā§‡ā§ŸāĨ¤


99. Intermediate Interview Questions

Q11. Hard link āĻāĻŦāĻ‚ soft link-āĻāϰ difference?

Hard link āĻāĻ•āχ inode-āĻāϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇; symbolic link āĻāĻ•āϟāĻŋ path reference āĻ•āϰ⧇ āĻāĻŦāĻ‚ āφāϞāĻžāĻĻāĻž inode āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤


Q12. Zombie process āϕ⧀?

Child process terminate āĻ•āϰ⧇āϛ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ parent āϤāĻžāϰ exit status collect āĻ•āϰ⧇āύāĻŋ—āϤāĻ–āύ zombie state āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


Q13. Load average āϕ⧀?

System-āĻāϰ runnable āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ uninterruptible work-āĻāϰ queue/load-āĻāϰ āĻāĻ•āϟāĻŋ time-windowed indicationāĨ¤


Q14. /proc āϕ⧀?

Kernel āĻāĻŦāĻ‚ process information expose āĻ•āϰāĻž virtual filesystemāĨ¤


Q15. df āĻāĻŦāĻ‚ du difference?

df → filesystem-level disk usage
du → directory/file-level usage
Enter fullscreen mode Exit fullscreen mode

Q16. systemctl āϕ⧀?

systemd-managed services āĻāĻŦāĻ‚ system state control āĻ•āϰāĻžāϰ commandāĨ¤


Q17. journalctl āϕ⧀?

systemd journal-āĻāϰ logs query āĻ•āϰāĻžāϰ toolāĨ¤


Q18. ss āϕ⧀?

Network sockets āĻāĻŦāĻ‚ listening connections inspect āĻ•āϰāĻžāϰ toolāĨ¤


100. Advanced Interview Questions

Q19. Linux-āĻ āĻāĻ•āϟāĻŋ process CPU 100% āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ troubleshoot āĻ•āϰāĻŦ⧇?

top/htop
   ↓
identify PID
   ↓
ps
   ↓
inspect process
   ↓
logs
   ↓
application behavior
   ↓
profiling/metrics
Enter fullscreen mode Exit fullscreen mode

Q20. Disk 100% fullāĨ¤ āϕ⧀ āĻ•āϰāĻŦ⧇?

df -h
du -sh /*
find /var -type f -size +1G
df -i
lsof +L1
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ identify āĻ•āϰ⧇ safe cleanupāĨ¤


Q21. Port 8080 already in useāĨ¤ āϕ⧀ āĻ•āϰāĻŦ⧇?

ss -lntp | grep :8080
Enter fullscreen mode Exit fullscreen mode

āĻ…āĻĨāĻŦāĻž:

lsof -i :8080
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ owning process identify āĻ•āϰ⧇ root cause āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āύ⧇āĻŦāĨ¤


Q22. Server ping āĻ•āϰāĻž āϝāĻžāĻšā§āϛ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ application access āĻ•āϰāĻž āϝāĻžāĻšā§āϛ⧇ āύāĻžāĨ¤ āϕ⧇āύ?

Possible layers:

DNS
Firewall
Port
Service
Application
Reverse Proxy
Routing
Security Group
Enter fullscreen mode Exit fullscreen mode

Q23. Nginx 502 āĻĻāĻŋāĻšā§āϛ⧇āĨ¤ āϕ⧀āĻ­āĻžāĻŦ⧇ troubleshoot āĻ•āϰāĻŦ⧇?

Nginx status
    ↓
Nginx logs
    ↓
Backend service
    ↓
Backend port
    ↓
curl backend directly
    ↓
Application logs
Enter fullscreen mode Exit fullscreen mode

Q24. Memory āĻļ⧇āώ āĻšā§Ÿā§‡ āϗ⧇āϞ⧇ Linux āϕ⧀ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇?

System swap āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇; extreme memory pressure-āĻ OOM killer process terminate āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


Q25. Docker container-āĻāϰ Linux process āϕ⧇āύ host-āĻāϰ kernel āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇?

Containers āϏāĻžāϧāĻžāϰāĻŖāϤ full VM āύ⧟; Linux kernel-āĻāϰ isolation primitives āϝ⧇āĻŽāύ namespaces āĻāĻŦāĻ‚ cgroups āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ process/environment isolate āĻ•āϰ⧇āĨ¤


101. Scenario-Based Interview

Scenario 1

Production API suddenly returning 500.

āϤ⧁āĻŽāĻŋ āĻŦāϞāĻŦ⧇:

1. Check application logs
2. Check recent deployment
3. Check dependencies
4. Check CPU/memory/disk
5. Check database/network
6. Reproduce request
7. Rollback if necessary
8. Verify recovery
Enter fullscreen mode Exit fullscreen mode

Scenario 2

API latency suddenly increased.

Check:

CPU
Memory
Load
Network
Disk I/O
Database latency
Upstream services
Application logs
Recent changes
Enter fullscreen mode Exit fullscreen mode

Scenario 3

Server disk full.

Check:

df -h
du -sh /var/*
df -i
lsof +L1
Enter fullscreen mode Exit fullscreen mode

Common causes:

Logs
Docker
Backups
Temporary files
Deleted open files
Enter fullscreen mode Exit fullscreen mode

Scenario 4

Kubernetes Pod āĻŦāĻžāϰāĻŦāĻžāϰ restart āĻ•āϰāϛ⧇āĨ¤

Linux-level āĻāĻŦāĻ‚ Kubernetes-level āĻĻ⧁āĻŸā§‹ āĻĻāĻŋāĻ•:

kubectl logs
kubectl describe pod
        ↓
Application logs
        ↓
OOM?
CPU?
Configuration?
Dependency?
        ↓
Node health
        ↓
journalctl
Enter fullscreen mode Exit fullscreen mode

102. Hands-on Lab 1 — Linux Server

āĻāĻ•āϟāĻŋ VM āĻŦāĻž cloud server āϤ⧈āϰāĻŋ āĻ•āϰ⧇:

Ubuntu
Enter fullscreen mode Exit fullscreen mode

Install:

nginx
git
docker
curl
htop
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ:

  • SSH āĻ•āϰ⧋
  • user āϤ⧈āϰāĻŋ āĻ•āϰ⧋
  • permissions change āĻ•āϰ⧋
  • Nginx āϚāĻžāϞāĻžāĻ“
  • logs āĻĻ⧇āĻ–ā§‹
  • port check āĻ•āϰ⧋

103. Hands-on Lab 2 — Nginx

Install:

sudo apt install nginx
Enter fullscreen mode Exit fullscreen mode

Check:

systemctl status nginx
Enter fullscreen mode Exit fullscreen mode

Test:

curl localhost
Enter fullscreen mode Exit fullscreen mode

Port:

ss -lntp | grep :80
Enter fullscreen mode Exit fullscreen mode

Logs:

journalctl -u nginx
Enter fullscreen mode Exit fullscreen mode

104. Hands-on Lab 3 — Deploy FastAPI

Flow:

Linux VM
   ↓
Python
   ↓
FastAPI
   ↓
Uvicorn
   ↓
Nginx
   ↓
Internet
Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻž āϤ⧋āĻŽāĻžāϰ ML inference platform-āĻāϰ foundation āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧋āĨ¤


105. Hands-on Lab 4 — Monitoring

āĻāĻ•āϟāĻŋ application āϚāĻžāϞāĻŋā§Ÿā§‡:

top
free -h
df -h
ss -lntp
Enter fullscreen mode Exit fullscreen mode

observe āĻ•āϰāĻŦ⧇āĨ¤

āϤāĻžāϰāĻĒāϰ artificial load āϤ⧈āϰāĻŋ āĻ•āϰ⧇ CPU/memory behavior āĻĻ⧇āĻ–āĻŦ⧇āĨ¤


106. Hands-on Lab 5 — Bash Automation

āĻāĻ•āϟāĻŋ script āĻŦāĻžāύāĻžāĻ“:

backup.sh
Enter fullscreen mode Exit fullscreen mode

āϝāĻž:

1. Application directory backup āĻ•āϰāĻŦ⧇
2. Timestamp āϝ⧋āĻ— āĻ•āϰāĻŦ⧇
3. tar.gz āĻŦāĻžāύāĻžāĻŦ⧇
4. āĻĒ⧁āϰāύ⧋ backup delete āĻ•āϰāĻŦ⧇
5. success/failure log āĻ•āϰāĻŦ⧇
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ cron āĻĻāĻŋā§Ÿā§‡ schedule āĻ•āϰ⧋āĨ¤


107. Hands-on Lab 6 — Linux Troubleshooting

āύāĻŋāĻœā§‡ intentionally problem āϤ⧈āϰāĻŋ āĻ•āϰ⧋:

Stop nginx
Kill application
Fill temporary disk
Block a port
Wrong permissions
Wrong environment variable
Wrong DNS entry
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ āύāĻŋāĻœā§‡ troubleshoot āĻ•āϰ⧋āĨ¤

āĻāϟāĻž interview preparation-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡ā§Ÿā§‡ valuable exerciseāϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻŋāĨ¤


108. DevOps Linux Skill Matrix

Topic Priority
Linux basics ⭐⭐⭐⭐⭐
Filesystem ⭐⭐⭐⭐⭐
Permissions ⭐⭐⭐⭐⭐
Users/Groups ⭐⭐⭐⭐⭐
Processes ⭐⭐⭐⭐⭐
Networking ⭐⭐⭐⭐⭐
SSH ⭐⭐⭐⭐⭐
systemd ⭐⭐⭐⭐⭐
Logs ⭐⭐⭐⭐⭐
Bash ⭐⭐⭐⭐⭐
Docker/Linux relationship ⭐⭐⭐⭐⭐
Troubleshooting ⭐⭐⭐⭐⭐
Disk/storage ⭐⭐⭐⭐
Security ⭐⭐⭐⭐
DNS ⭐⭐⭐⭐
TCP/IP ⭐⭐⭐⭐
Nginx ⭐⭐⭐⭐
cron ⭐⭐⭐
awk/sed ⭐⭐⭐
tcpdump ⭐⭐⭐
SELinux/AppArmor ⭐⭐⭐

109. 30-Day Linux → DevOps Foundation Plan

Week 1 — Linux Basics

Day 1
Linux + filesystem

Day 2
Navigation + file management

Day 3
Permissions + ownership

Day 4
Users + groups + sudo

Day 5
Processes + signals

Day 6
Package management

Day 7
Revision + practical lab
Enter fullscreen mode Exit fullscreen mode

Week 2 — Linux Administration

Day 8
Environment variables

Day 9
Bash basics

Day 10
grep + pipes

Day 11
awk + sed

Day 12
systemd

Day 13
journalctl + logs

Day 14
cron + automation
Enter fullscreen mode Exit fullscreen mode

Week 3 — Networking + Storage

Day 15
IP + subnet basics

Day 16
TCP/UDP + ports

Day 17
DNS

Day 18
SSH

Day 19
curl + wget + nc

Day 20
Disk + filesystem

Day 21
mount + inode + troubleshooting
Enter fullscreen mode Exit fullscreen mode

Week 4 — DevOps Linux

Day 22
Nginx

Day 23
Reverse proxy

Day 24
Linux security

Day 25
Docker + Linux

Day 26
Kubernetes + Linux

Day 27
Performance troubleshooting

Day 28
Production troubleshooting

Day 29
Interview preparation

Day 30
Complete practical project
Enter fullscreen mode Exit fullscreen mode

110. Final Linux Project

āĻāĻ•āϟāĻŋ complete mini-production environment āĻŦāĻžāύāĻžāĻ“:

                    Internet
                       |
                       v
                    Nginx
                       |
                       v
                   FastAPI
                       |
                       v
                  ML Model
                       |
                  +----+----+
                  |         |
                Logs      Metrics
Enter fullscreen mode Exit fullscreen mode

Server-āĻ:

Ubuntu
Nginx
FastAPI
systemd
SSH
Firewall
Bash
cron
logging
monitoring
Enter fullscreen mode Exit fullscreen mode

Implement:

  • [ ] SSH authentication
  • [ ] Non-root application user
  • [ ] FastAPI service
  • [ ] systemd service
  • [ ] Nginx reverse proxy
  • [ ] HTTPS
  • [ ] firewall
  • [ ] log rotation
  • [ ] backup script
  • [ ] cron
  • [ ] monitoring
  • [ ] troubleshooting documentation

111. Final Interview Checklist

Interview-āĻāϰ āφāϗ⧇ confidently explain āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇:

Linux

  • [ ] Linux architecture
  • [ ] Kernel
  • [ ] Filesystem
  • [ ] /etc
  • [ ] /var
  • [ ] /proc
  • [ ] permissions
  • [ ] users/groups
  • [ ] sudo

Processes

  • [ ] PID
  • [ ] signals
  • [ ] zombie
  • [ ] orphan
  • [ ] process vs thread
  • [ ] CPU troubleshooting
  • [ ] memory troubleshooting

Networking

  • [ ] IP
  • [ ] subnet
  • [ ] routing
  • [ ] TCP/UDP
  • [ ] DNS
  • [ ] ports
  • [ ] sockets
  • [ ] HTTP/HTTPS
  • [ ] firewall

Administration

  • [ ] SSH
  • [ ] systemd
  • [ ] journalctl
  • [ ] cron
  • [ ] package management
  • [ ] storage
  • [ ] mount
  • [ ] inode

DevOps

  • [ ] Linux + Docker
  • [ ] Linux + Kubernetes
  • [ ] Nginx
  • [ ] reverse proxy
  • [ ] Bash automation
  • [ ] monitoring
  • [ ] troubleshooting
  • [ ] security

đŸŽ¯ Final Goal

Linux āĻļ⧇āĻ–āĻžāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻļ⧁āϧ⧁ command āĻŽā§āĻ–āĻ¸ā§āĻĨ āĻ•āϰāĻž āύ⧟āĨ¤

āϤ⧋āĻŽāĻžāϰ goal āĻšāĻŦ⧇:

"I can operate and troubleshoot a Linux production server."
Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ:

Linux
   ↓
Git
   ↓
Docker
   ↓
Kubernetes
   ↓
Terraform
   ↓
GitHub Actions
   ↓
ArgoCD
   ↓
Prometheus/Grafana
   ↓
Production DevOps
Enter fullscreen mode Exit fullscreen mode

Linux-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ command āĻŽā§āĻ–āĻ¸ā§āĻĨ āĻ•āϰāĻžāϰ āĻšā§‡ā§Ÿā§‡ troubleshooting skill āĻŦ⧇āĻļāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

āĻāĻ•āϜāύ DevOps engineer āĻšāĻŋāϏ⧇āĻŦ⧇ āϤ⧁āĻŽāĻŋ āϝ⧇āύ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¸ā§āϝāĻž āĻĻ⧇āϖ⧇ āĻŦāϞāϤ⧇ āĻĒāĻžāϰ⧋:

What is broken?
        ↓
Where is it broken?
        ↓
Why is it broken?
        ↓
How can I verify it?
        ↓
How can I fix it safely?
        ↓
How can I prevent it from happening again?
Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻžāχ āĻāχ Linux roadmap-āĻāϰ āĻŽā§‚āϞ āϞāĻ•ā§āĻˇā§āϝāĨ¤

Top comments (0)