惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

M
MIT News - Artificial intelligence
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
博客园 - Franky
腾讯CDC
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
V
V2EX
N
Netflix TechBlog - Medium
量子位
Jina AI
Jina AI
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
爱范儿
爱范儿
博客园 - 叶小钗
D
Docker
MongoDB | Blog
MongoDB | Blog
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
The 30 Linux Commands I Use Every Day on My VPS
Alex Chen · 2026-05-16 · via DEV Community

Alex Chen

The 30 Linux Commands I Use Every Day on My VPS

After 3 years of managing a $5 VPS, these are the commands that stuck.

File Operations

1. Find Large Files (When Disk is Full)

# Top 20 largest files in current directory
du -ah . | sort -rh | head -20

# Find files larger than 100MB
find . -type f -size +100M -exec ls -lh {} \;

# Quick directory sizes
du -sh */ | sort -rh

Enter fullscreen mode Exit fullscreen mode

2. Search File Contents

# Search for text in all files recursively
grep -r "search term" /path/to/search

# With line numbers and file names
grep -rn "function" src/

# Only show matching filenames
grep -rl "TODO" .

# Case insensitive, only .js files
grep -ri "error" --include="*.js" .

Enter fullscreen mode Exit fullscreen mode

3. Batch Rename Files

# Replace spaces with underscores
rename 's/ /_/g' *.jpg

# Add prefix to all files
for f in *.txt; do mv "$f" "prefix_$f"; done

# Remove extension from all files
for f in *.bak; do mv "$f" "${f%.bak}"; done

Enter fullscreen mode Exit fullscreen mode

4. Watch a File Change

# Show last lines as file grows (like tailing logs)
tail -f /var/log/nginx/error.log

# Follow with highlights
tail -f app.log | grep --color=always "ERROR"

# Show last N lines and follow
tail -n 50 -f /var/log/syslog

Enter fullscreen mode Exit fullscreen mode

Process Management

5. Find What's Using Port

# Find process using port 3000
lsof -i :3000
# or
ss -tlnp | grep :3000
# or
netstat -tlnp | grep :3000

# Kill process on port 3000
kill $(lsof -t -i:3000)

Enter fullscreen mode Exit fullscreen mode

6. Process Monitoring

# Real-time process view (like Task Manager)
htop
# If not installed: top

# Sort by memory usage
ps aux --sort=-%mem | head -15

# Find zombie processes
ps aux | awk '{if($8=="Z") print}'

# Process tree
pstree -p

Enter fullscreen mode Exit fullscreen mode

7. Background Jobs

# Run command in background
long-running-command &

# Bring back to foreground
fg

# List background jobs
jobs

# Send specific job to background
Ctrl+Z (pause) -> bg (background)

Enter fullscreen mode Exit fullscreen mode

Network

8. Debug Connectivity

# Test if port is open
nc -zv example.com 443
# or
telnet example.com 443

# DNS lookup
dig example.com
# or
nslookup example.com

# Trace route
traceroute example.com

# HTTP request (no curl needed!)
wget -qO- http://localhost:3000/health

Enter fullscreen mode Exit fullscreen mode

9. Bandwidth Usage

# Real-time network usage
iftop
# or
nethogs   # Per-process bandwidth

# Download speed test
curl -o /dev/null -w "Speed: %{speed_download} bytes/s\n" https://example.com/file.zip

Enter fullscreen mode Exit fullscreen mode

Disk & Memory

10. When Disk is Full

# Check disk usage
df -h

# Check inode usage (sometimes you run out of inodes, not space!)
df -i

# Find largest directories
du -sh /* | sort -rh | head -10

# Clean package cache
apt clean && apt autoremove -y    # Ubuntu/Debian
yum clean all                     # RHEL/CentOS

# Clean journal logs
journalctl --vacuum-size=100M

# Clean old logs
find /var/log -name "*.gz" -mtime +30 -delete
find /var/log -name "*.log" -mtime +30 -exec truncate -s 0 {} \;

Enter fullscreen mode Exit fullscreen mode

11. Memory Usage Deep Dive

# Overview
free -h

# Detailed per-process memory
smem     # If installed

# Swap usage
swapon --show

# Clear page cache (safe to do)
sync && echo 3 > /proc/sys/vm/drop_caches

Enter fullscreen mode Exit fullscreen mode

Text Processing

12. JSON Pretty-Print

# Pretty-print JSON from API response
curl -s api.example.com/data | python3 -m json.tool

# Extract specific field
curl -s api.example.com/data | python3 -c "import sys,json; print(json.load(sys.stdin)['key'])"

# Validate JSON
python3 -m json.tool < data.json > /dev/null && echo "Valid JSON" || echo "Invalid"

Enter fullscreen mode Exit fullscreen mode

13. Column Extraction

# Get column 2 from CSV
awk -F',' '{print $2}' data.csv

# Sum a column
awk -F',' '{sum+=$2} END {print sum}' data.csv

# Filter rows where column > value
awk -F',' '$2 > 100' data.csv

Enter fullscreen mode Exit fullscreen mode

14. Quick Text Stats

# Count lines, words, characters
wc file.txt

# Count occurrences of each word
tr ' ' '\n' < file.txt | sort | uniq -c | sort -rn | head -20

# Find unique lines
sort file.txt | uniq -u

Enter fullscreen mode Exit fullscreen mode

System Administration

15. User Management

# Create user with home directory
useradd -m -s /bin/bash newuser

# Set password
passwd newuser

# Add to sudo group
usermod -aG sudo newuser

# Switch user
su - newuser

# Run command as another user
sudo -u www-data command

Enter fullscreen mode Exit fullscreen mode

16. Service Management

# Start/stop/restart service
systemctl start nginx
systemctl restart nginx
systemctl status nginx

# Enable/disable at boot
systemctl enable nginx
systemctl disable nginx

# View logs for service
journalctl -u nginx -f

# Failed services
systemctl list-units --failed

Enter fullscreen mode Exit fullscreen mode

17. Cron Jobs

# Edit crontab
crontab -e

# List current jobs
crontab -l

# Format:
# ┌───────────── minute (0-59)
# │ ┌───────────── hour (0-23)
# │ │ ┌───────────── day of month (1-31)
# │ │ │ ┌───────────── month (1-12)
# │ │ │ │ ┌───────────── day of week (0-6, Sun=0)
# * * * * * command

# Examples:
0 */6 * * * /path/to/script.sh        # Every 6 hours
*/30 * * * * /path/to/every30min.sh    # Every 30 minutes
0 9 * * 1-5 /path/to/weekday.sh       # 9 AM weekdays
@reboot /path/to/onboot.sh             # On system boot

Enter fullscreen mode Exit fullscreen mode

Security

18. Firewall Basics

# UFW (Uncomplicated Firewall)
ufw status                    # Check status
ufw enable                    # Enable firewall
ufw allow 22                  # Allow SSH
ufw allow 80                  # Allow HTTP
ufw allow 443                 # Allow HTTPS
ufw deny 3306                 # Block MySQL from outside
ufw reload                    # Apply changes

# iptables (if no UFW)
iptables -L -n                # List rules
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Enter fullscreen mode Exit fullscreen mode

19. SSH Hardening

# Generate key pair
ssh-keygen -t ed25519 -C "my-key"

# Copy key to server
ssh-copy-id user@server

# Disable password login (after setting up keys)
# In /etc/ssh/sshd_config:
# PasswordAuthentication no
# PermitRootLogin no
# Port 2222  # Change default port

# Restart SSH after changes
systemctl restart sshd

Enter fullscreen mode Exit fullscreen mode

20. Fail2Ban Status

# Check status
fail2ban-client status

# Check specific jail
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

# View banned IPs
fail2ban-client status sshd | grep "Banned IP"

Enter fullscreen mode Exit fullscreen mode

Git

21. Quick Git Commands

# Undo last commit (keep changes staged)
git reset --soft HEAD~1

# Discard all uncommitted changes
git checkout -- .

# Stash everything
git stash save "WIP feature X"

# See what changed since last commit
git diff --stat

# Find who changed a line
git blame filename

# Search commit messages
git log --grep="bug fix"

# Interactive rebase (clean up history)
git rebase -i HEAD~5

Enter fullscreen mode Exit fullscreen mode

22. Git Troubleshooting

# Merge conflict? See which files are conflicted
git diff --name-only --diff-filter=U

# Abort a bad merge
git merge --abort

# Force push (be careful!)
git push --force-with-lease origin main

# Recover deleted branch
git reflog  # Find the SHA, then git checkout -b recovered-name SHA

Enter fullscreen mode Exit fullscreen mode

Docker

23. Docker Essentials

# Running containers
docker ps              # Only running
docker ps -a           # All including stopped

# Container details
docker inspect container_id | jq '.[0].State'

# Enter running container
docker exec -it container_name sh

# Container logs
docker logs -f container_name

# Resource usage
docker stats

# Cleanup (free significant disk space!)
docker system prune -af
docker volume prune -f

Enter fullscreen mode Exit fullscreen mode

24. Docker Debugging

# Why won't it start?
docker logs container_name

# Run with shell instead of entrypoint
docker run --rm -it --entrypoint sh image_name

# Copy file out of container
docker cp container_name:/path/to/file ./local_file

# Image size breakdown
docker history image_name

Enter fullscreen mode Exit fullscreen mode

Monitoring

25. One-Liner Health Check

# Server health overview
echo "=== CPU ===" && top -bn1 | head -5 && \
echo "=== MEM ===" && free -h && \
echo "=== DISK ===" && df -h / && \
echo "=== LOAD ===" && uptime && \
echo "=== TOP PROCESSES ===" && ps aux --sort=-%cpu | head -6

Enter fullscreen mode Exit fullscreen mode

26. Log Watching

# Multiple logs at once
tail -f /var/log/nginx/access.log /var/log/nginx/error.log

# Filter errors in real time
tail -f /var/log/app.log | grep -E "ERROR|FATAL|CRITICAL"

# Log rotation check
ls -lh /var/log/*.gz | tail -5

Enter fullscreen mode Exit fullscreen mode

27. Uptime & History

# How long has the server been up?
uptime

# Last reboot date
who -b

# Recent logins
last -10

# Command history with timestamps
export HISTTIMEFORMAT='%F %T '
history | tail -20

Enter fullscreen mode Exit fullscreen mode

Aliases That Save Time

# Add to ~/.bashrc
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias ports='ss -tlnp'
alias myip='curl -s ifconfig.me'
alias weather='curl -s wttr.in'
alias serve="python3 -m http.server 8000"
alias dstop='docker stop $(docker ps -q)'
alias gpush='git add -A && git commit -m "update" && git push'
alias nrestart='sudo systemctl restart nginx'
alias nlogs='sudo tail -f /var/log/nginx/error.log'
alias dfree='df -h | grep -E "^/dev|^Filesystem"'
alias psgrep='ps aux | grep -v grep | grep'

Enter fullscreen mode Exit fullscreen mode

The Emergency Cheat Sheet

# Server slow?
top → htop → check CPU/memory → kill rogue process

# Disk full?
df -hdu -sh /* | sort -rh → find large files → clean

# Website down?
systemctl status nginx → ss -tlnptail -f /var/log/nginx/error.log

# Can't connect?
ss -tlnp → ufw status → iptables -L → ping → traceroute

# Got hacked?
last → w → cat /var/log/auth.log | grep "Failed" → fail2ban status

Enter fullscreen mode Exit fullscreen mode


What's your most-used Linux command? Share your favorites!

Follow @armorbreak for more DevOps content.