25 Linux Commands Every Professional Server Administrator Must Master
Linux is the operating system behind a huge portion of web servers, cloud instances, containers, and network appliances. If you manage servers for a living (or you’re aiming to), the difference between “I can use Linux” and “I can administer Linux professionally” often comes down to your command-line fluency: knowing the right command, the right flags, and the right workflow when things go wrong.
This guide covers 25 Linux commands professional server administrators should master, explained in a practical way: what each command does, common syntax, high-value options, real admin scenarios, and mistakes to avoid. Along the way, you’ll also learn the mechanics of how the Linux CLI works (pipes, redirection, exit codes, permissions) so you can combine commands into reliable operational procedures.
Table of Contents
- Mechanism: How the Linux Command Line Works
- 25 Must-Know Linux Commands (with examples)
- Common Mistakes & Troubleshooting (Admin-focused)
- Quick Checklist
- FAQ
- Conclusion
Mechanism: How the Linux Command Line Works (The “How” Behind the Commands)
Before diving into the commands, it helps to understand the mechanics that make them powerful:
1) Shell and processes
When you type a command, your shell (commonly bash or zsh) starts a process. That process returns an exit code:
0usually means success- non-zero means error (the specific number depends on the program)
Check the last command’s exit code:
echo $?
2) PATH and how commands are found
When you run ls or systemctl, the shell looks for an executable in directories listed in $PATH:
echo $PATH
which ls
If a binary isn’t found, you’ll see “command not found”. Fixing that is typically about installing packages, using the full path, or updating PATH.
3) stdout, stderr, pipes, and redirection
Commands usually write output to:
- stdout (standard output)
- stderr (errors)
Redirect stdout to a file:
command > output.txt
Append instead of overwrite:
command >> output.txt
Redirect stderr:
command 2> errors.txt
Redirect both:
command > all.txt 2>&1
Pipes (|) send stdout of one command into another:
journalctl -u nginx | grep -i error
4) Quoting rules
-
Use single quotes to avoid shell interpreting variables and wildcards:
echo '$HOME' -
Use double quotes when you need variables expanded but want to preserve spaces:
echo "$HOME"
5) Permissions basics
Linux permissions are typically managed with owner/group/others and bits like read/write/execute. This matters for commands like chmod, chown, and any service that reads config files.
25 Linux Commands Every Professional Server Administrator Must Master
Below are 25 commands you’ll use constantly in server work. For each, you’ll get: function, syntax, examples, key options, admin scenarios, and common mistakes.
1) ssh — Secure remote access
Main function: Connect to remote servers securely.
Syntax:
ssh user@host
Examples:
ssh root@203.0.113.10
ssh -p 2222 admin@server.example.com
Key options:
-p <port>: non-default SSH port-i <keyfile>: use specific private key-ooptions: advanced behavior (timeouts, host key checking)
Admin scenarios: emergency login, configuration, patching, incident response.
Common mistakes: logging in as root without key-based auth; forgetting -p; ignoring host key warnings.
2) scp — Secure copy over SSH
Main function: Copy files to/from servers.
Syntax:
scp source destination
Examples:
scp file.txt user@host:/tmp/
scp -P 2222 -r ./configs user@host:/etc/myapp/
Key options:
-P <port>: SSH port (uppercase P)-r: recursive copy for folders
Admin scenarios: pushing configs, retrieving logs during incidents.
Common mistakes: mixing up -P vs -p; copying secrets to insecure locations.
3) rsync — Efficient file synchronization
Main function: Fast incremental copy/sync.
Syntax:
rsync [options] source destination
Examples:
rsync -avh /var/www/ backup:/backups/www/
rsync -avh --delete /srv/app/ backup:/srv/app/
Key options:
-a: archive mode (preserve permissions, timestamps)-v: verbose--delete: delete files on destination not present in source (use carefully)
Admin scenarios: backups, migrations, synchronizing web content.
Common mistakes: using --delete without validating paths; trailing slash confusion (/src/ vs /src).
4) sudo — Run commands with elevated privileges
Main function: Execute commands as root (or another user).
Syntax:
sudo command
Examples:
sudo systemctl restart nginx
sudo -u postgres psql
Key options:
-u <user>: run as another user-i: interactive shell as root (be cautious)
Admin scenarios: service management, package installs, permission fixes.
Common mistakes: using root shell unnecessarily; running destructive commands without confirming.
5) systemctl — Control systemd services
Main function: Start/stop/enable services.
Syntax:
systemctl <action> <service>
Examples:
sudo systemctl status nginx
sudo systemctl restart sshd
sudo systemctl enable --now firewalld
Key options:
status,start,stop,restart,reloadenable --now: enable at boot + start immediately
Admin scenarios: deploying updates, recovering failed services.
Common mistakes: restarting when reload would be safer; editing configs but forgetting to reload/restart.
6) journalctl — Query systemd logs
Main function: Read logs for services and system.
Syntax:
journalctl [options]
Examples:
journalctl -u nginx --since "1 hour ago"
journalctl -xe
Key options:
-u <unit>: filter by service--since,--until: time ranges-xe: show recent logs with explanations
Admin scenarios: diagnosing service failures, boot issues.
Common mistakes: forgetting sudo on restricted logs; not narrowing timeframe (too much output).
7) ps — View running processes
Main function: List processes and their details.
Syntax:
ps aux
Examples:
ps aux | grep nginx
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
Key options:
aux: common “show everything” format-eo: custom columns--sort: sort by CPU or memory
Admin scenarios: finding runaway processes, verifying daemons.
Common mistakes: relying only on grep matches; forgetting process trees (parent/child relationships).
8) top / htop — Real-time resource monitoring
Main function: Live CPU/memory/process view.
Syntax:
top
Examples:
top
# if available:
htop
Key options (top):
P: sort by CPUM: sort by memoryk: kill a process (careful)
Admin scenarios: performance incidents, capacity checks.
Common mistakes: killing symptoms instead of root cause (e.g., OOM, disk I/O).
9) kill / killall — Signal processes
Main function: Send signals (terminate, reload).
Syntax:
kill <pid>
Examples:
kill 1234
kill -TERM 1234
kill -KILL 1234
Key options:
-TERM(15): graceful termination-KILL(9): force kill (last resort)
Admin scenarios: stop stuck jobs, recover from deadlocks.
Common mistakes: using -KILL first; killing the wrong PID on shared systems.
10) df — Disk space usage by filesystem
Main function: Check free/used space.
Syntax:
df -h
Examples:
df -h
df -hT
Key options:
-h: human readable-T: show filesystem type
Admin scenarios: “disk full” incidents, monitoring.
Common mistakes: confusing partition full vs inode full (see df -i).
11) du — Disk usage by directory/file
Main function: Find what consumes space.
Syntax:
du [options] path
Examples:
du -sh /var/log/*
du -sh /var/* | sort -h
Key options:
-s: summarize-h: human readable
Admin scenarios: locate large logs, runaway caches.
Common mistakes: running du at filesystem root on huge volumes without planning (slow).
12) ls — List files and permissions
Main function: View directory contents.
Syntax:
ls
Examples:
ls -lah
ls -l /etc/nginx/
Key options:
-l: long listing (permissions, owner)-a: show hidden files-h: human sizes
Admin scenarios: inspect configs, permissions.
Common mistakes: missing hidden .env or .ssh files without -a.
13) cd / pwd — Navigate and confirm location
Main function: Change directory; print working directory.
Examples:
pwd
cd /var/www
cd -
Admin scenarios: safe navigation during maintenance.
Common mistakes: running commands in the wrong directory; forgetting cd - toggles back.
14) mkdir / touch — Create directories and files
Main function: Create structure for apps, logs, backups.
Examples:
mkdir -p /srv/myapp/{logs,data,config}
touch /var/log/myapp.log
Key options:
mkdir -p: create parents if missing
Admin scenarios: preparing deployments, creating mount points.
Common mistakes: forgetting -p and assuming nested dirs exist.
15) cp / mv / rm — Copy, move, remove (carefully)
Main function: File operations.
Examples:
cp -a /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
mv app.conf app.conf.disabled
rm -i old.conf
Key options:
cp -a: preserve attributesrm -i: interactive promptrm -r: recursive (danger)
Admin scenarios: backing up configs before edits, cleanup.
Common mistakes: rm -rf in the wrong path; not backing up before changes.
16) cat / less / head / tail — Read files efficiently
Main function: Inspect logs/configs without opening editors.
Examples:
less /var/log/syslog
tail -n 200 /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
head -n 50 /etc/ssh/sshd_config
Key options:
tail -f: follow logs liveless: search with/pattern
Admin scenarios: debugging errors, verifying config changes.
Common mistakes: using cat on huge files (slow/noisy).
17) grep — Search text by pattern
Main function: Find lines matching patterns.
Syntax:
grep [options] pattern file
Examples:
grep -n "PermitRootLogin" /etc/ssh/sshd_config
journalctl -u sshd | grep -i "failed"
Key options:
-i: case-insensitive-n: show line numbers-r: recursive-E: extended regex
Admin scenarios: find errors, locate directives.
Common mistakes: forgetting quotes in regex; searching binary files without limiting scope.
18) find — Locate files by name, time, size
Main function: Powerful filesystem search.
Examples:
find /var/log -type f -name "*.log" -mtime -7
find / -type f -size +1G 2>/dev/null
Key options:
-type f/d: files/dirs-mtime: modified time-size: size filters
Admin scenarios: locate large files, rotate old artifacts.
Common mistakes: searching / without excluding mounts; not redirecting permission errors.
19) chmod — Change file permissions
Main function: Set read/write/execute bits.
Examples:
chmod 640 /etc/myapp/config.yml
chmod +x /usr/local/bin/deploy.sh
Key options:
- numeric mode (e.g.,
640,755) - symbolic mode (e.g.,
u+x,g-w)
Admin scenarios: securing config files, enabling scripts.
Common mistakes: chmod -R 777 (security disaster); breaking service access by overly restrictive perms.
20) chown — Change file owner/group
Main function: Fix ownership for services and apps.
Examples:
sudo chown -R www-data:www-data /var/www/myapp
sudo chown root:root /etc/ssh/sshd_config
Key options:
-R: recursive
Admin scenarios: web deployments, fixing permission denied errors.
Common mistakes: recursive chown on shared paths; wrong service user (e.g., nginx vs www-data).
21) tar — Archive and compress
Main function: Backups and packaging.
Examples:
tar -czf backup.tgz /etc/nginx
tar -xzf backup.tgz -C /restore/path
Key options:
-c: create-x: extract-z: gzip-f: filename-C: target directory for extract
Admin scenarios: config backups, log bundles for support.
Common mistakes: forgetting -f; extracting into the wrong directory.
22) curl — HTTP requests and API testing
Main function: Test endpoints, download, debug headers.
Examples:
curl -I <https://example.com>
curl -sS <https://localhost/health>
curl -sS -X POST <https://api.example.com/login> -H "Content-Type: application/json" -d '{"user":"a","pass":"b"}'
Key options:
-I: headers only-sS: silent but show errors-X,-H,-d: method/headers/body
Admin scenarios: verify load balancer health, test APIs from servers.
Common mistakes: not checking status codes; leaking secrets in shell history.
23) wget — Download files non-interactively
Main function: Fetch files/scripts/packages.
Examples:
wget <https://example.com/file.tar.gz>
wget -O app.tar.gz <https://example.com/releases/latest.tar.gz>
Key options:
-O: output filename-q: quiet (use cautiously; prefer visibility in ops)
Admin scenarios: retrieving artifacts in minimal environments.
Common mistakes: downloading and executing scripts without verification.
24) ss (or netstat) — Inspect network sockets
Main function: See listening ports and connections.
Examples:
ss -tulpen
ss -tan | head
Key options:
-t: TCP-u: UDP-l: listening-p: process info-n: numeric (no DNS)
Admin scenarios: “is the service listening?”, debugging port conflicts.
Common mistakes: assuming firewall issue when service isn’t listening at all.
25) iptables / ufw (or firewalld) — Host firewall management
Main function: Control inbound/outbound traffic.
Examples (UFW, Ubuntu-based):
sudo ufw status
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw enable
Examples (firewalld, RHEL-based):
sudo firewall-cmd --state
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Admin scenarios: hardening servers, opening ports for new services.
Common mistakes: locking yourself out (always keep console access); applying rules without permanence.
Common Mistakes & Troubleshooting (Server Admin Edition)
- “Command not found”
-
Check if package is installed, and verify PATH:
which <command> echo $PATH
- Permission denied
-
Check ownership and permissions:
ls -l file -
Use
sudowhen appropriate, but fix ownership properly (avoid blanket chmod 777).
- Service won’t start after config change
-
Validate config (if supported), then inspect logs:
sudo systemctl status <service> sudo journalctl -u <service> -xe
- Disk is full but you can’t find large files
-
Check inodes and hidden dirs:
df -i du -sh /var/* | sort -h
- High CPU but unclear cause
-
Use
top, then inspect the process:ps -p <pid> -o pid,ppid,cmd,%mem,%cpu
- Port is “open” on firewall but app still unreachable
-
Confirm the app is listening:
ss -tulpen | grep <port> -
Confirm local health:
curl -sS <http://localhost>:<port>/
- Accidental destructive command risk
- Use safer flags like
rm -i, back up configs withcp -a, and confirm paths withpwdbefore action.
Quick Checklist (Do This to Level Up Fast)
- [ ] Use SSH keys (not passwords) and verify host keys.
- [ ] Always back up configs before editing (
cp -a). - [ ] Learn to read logs with
journalctlandtail -f. - [ ] Diagnose “down services” with
systemctl status+ logs. - [ ] Identify disk problems quickly with
df -h,df -i,du -sh. - [ ] Find files safely with
find(limit scope). - [ ] Understand permissions deeply (
chmod,chown). - [ ] Validate listening ports with
ss -tulpen. - [ ] Test endpoints locally with
curl. - [ ] Prefer incremental sync with
rsyncfor backups/migrations.
FAQ
1) What’s the difference between reload and restart in systemctl?
reload asks the service to re-read configuration without full stop/start. restart fully restarts the service and may cause brief downtime.
2) Why does scp use -P (capital P) for port?
That’s simply how scp implements the option. ssh uses -p, but scp uses -P. It’s a common gotcha.
3) When should I use kill -9?
Only as a last resort when a process ignores TERM and cannot be stopped gracefully.
4) How do I quickly find what’s eating disk space?
Start with:
df -h
du -sh /var/* | sort -h
5) Why does find / produce many “Permission denied” lines?
Because system directories restrict access. Redirect stderr:
find / -type f -size +1G 2>/dev/null
6) What’s safer for moving large data: scp or rsync?
rsync is usually safer and faster for large or repeated transfers because it copies only changes and can resume better.
7) How do I know if the firewall or the service is the problem?
Check if the service is listening locally (ss), then test locally (curl localhost). If local works, investigate firewall/routing.
8) Should I edit files as root?
Prefer editing as a normal user and elevate only for saving when needed. Avoid living in a root shell.
Conclusion
Mastering Linux server administration isn’t about memorizing commands—it’s about understanding the mechanics (permissions, processes, logs, networking) and building reliable habits: validate, observe, change safely, and confirm. These 25 commands cover the majority of day-to-day server operations, from diagnosing incidents to deploying changes with confidence.
If you practice these with real scenarios—checking service health, reading logs, troubleshooting disk and networking—you’ll move from “Linux user” to “professional server administrator” much faster.

Komentar
Posting Komentar