当前位置:首页>Linux>野生Linux 命令速查手册

野生Linux 命令速查手册

  • 2026-10-11 07:43:24
野生Linux 命令速查手册

野生Linux 命令速查手册

这份手册是我从几百条命令里筛出来的,标准就三条:天天用得到、出问题能救命、复制就能跑。 不堆参数,只留你最可能用到的那些。


📂 文件与目录

命令
干了什么
常用组合
ls -lh
看文件大小(人类可读)
ls -lht
 按时间排,ls -lhrS 按大小排
find . -name "*.log"
按名字找文件
-type f -size +100M
 找大文件,-mtime -7 最近7天改过的
fd log
find 替代,快且语法友好
fd -e py
 按扩展名,fd --type d 只搜目录
du -sh * | sort -hr | head -10
当前目录下谁占空间最大
ncdu
 更好用,交互式扫磁盘
df -h
磁盘还剩多少
df -i
 看 inode,小文件太多也会"磁盘满"
lsof +L1 | grep deleted
找"已删但没释放空间"的文件
经典坑:日志删了但进程还抓着,空间不释放

🔍 文本处理

命令
干了什么
记这个就行
grep -r "error" /var/log/
递归搜 error
-v
 排除,-A 3 多显示后3行,-c 计数,-i 忽略大小写
rg error /var/log/
ripgrep,比 grep 快10倍
自动递归、自动忽略 .git、彩色输出,无脑用
sed -i 's/old/new/g' file
原地替换文本
-i.bak
 替换前备份,/^$/d 删空行
awk '{print $1,$NF}' file
打印第1列和最后1列
-F':'
 指定分隔符,$3>100 过滤,{sum+=$3}END{print sum} 求和
jq '.items[].name' data.json
从 JSON 里抠数据
jq -r
 去掉引号输出,jq '.[] | select(.status=="error")'
sort file | uniq -c | sort -rn
统计出现次数排名
日志里统计 Top10 IP 请求数必备
cat /dev/null > file.log
清空大日志文件
比 rm 安全,进程可以继续写

👤 用户与权限

命令
干了什么
chmod 755 script.sh
7=rwx 所有者, 5=r-x 组, 5=r-x 其他人
chown user:group file
同时改所有者和组
chmod u+x file
给所有者加执行(不记数字时用这个)
find . -type f -perm 777
找出权限过大的文件
usermod -aG sudo username
加用户到 sudo 组
sudo -i
变成 root(比 sudo su 干净)
visudo
安全编辑 sudoers(自带语法检查,别直接 vim)

⚡ 进程管理

命令
干了什么
top
 / htop
交互看进程。htop 按 F6 选排序方式,F9 杀进程
ps aux --sort=-%mem | head -10
按内存占用排前10
ps -ef --forest
树形看父子进程关系
kill -9 PID
强制杀进程(先试 kill PID 温柔版)
kill -HUP PID
让进程重读配置(nginx 等支持热加载的)
nohup cmd &
后台跑,关了终端也不断
Ctrl+Z
 → bg → disown
前台任务丢后台 + 退出终端也不停
lsof -i :80
看谁占了 80 端口

💾 磁盘与存储

命令
干了什么
lsblk -f
看磁盘/分区/文件系统/UUID 全貌
mount /dev/sdb1 /mnt/data
挂载
umount -l /mnt/data
强制卸载(忙的时候用 -l)
mount -o remount,rw /
只读系统恢复后可写
findmnt --verify
验证 /etc/fstab 语法(改完 fstab 先跑这个!)
fdisk -l
 / gdisk -l
看分区表(MBR/GPT)
fsck /dev/sdb1
修复文件系统(先卸载!)
dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
磁盘镜像

🌐 网络诊断

命令
干了什么
ss -tlnp
看谁在监听什么端口
ss -tan state time-wait | wc -l
数 TIME_WAIT 连接数(多了说明短连接太多)
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn
各状态连接数统计
curl -I https://example.com
看 HTTP 头
curl -w "\ntime_total: %{time_total}\n" -o /dev/null -s https://example.com
测请求耗时
dig +short example.com
DNS 解析(比 nslookup 详细)
nc -zv 1.2.3.4 22
测端口通不通
mtr example.com
路由追踪+丢包/延迟统计(比 traceroute 直观)
tcpdump -i eth0 -nn port 80
抓包看 HTTP 流量
telnet 1.2.3.4 3306
老派测端口(还能手写 HTTP 请求)
nmcli device wifi connect "SSID" password "密码"
命令行连 WiFi

📦 压缩与归档

命令
干了什么
tar -czvf archive.tar.gz dir/
打包压缩(你80%的情况用这条)
tar -xzvf archive.tar.gz
解压
tar -tzvf archive.tar.gz
只看看里面有什么,不解压
tar -czvf a.tar.gz --exclude="*.log" dir/
排除日志文件
gzip file
 / gunzip file.gz
单文件压缩/解压
zip -r a.zip dir/
 / unzip a.zip
zip 格式
7z a a.7z dir/
最高压缩率(需 p7zip)

🛠️ systemd 服务管理

命令
干了什么
systemctl status nginx
看服务状态(含最近日志)
systemctl start|stop|restart nginx
启动/停止/重启
systemctl enable --now nginx
设为开机自启并立即启动
systemctl reload nginx
重载配置(不中断服务)
systemctl list-units --state=failed
找出失败的服务
journalctl -u nginx -f
追踪某服务的日志
journalctl -u nginx --since "1 hour ago" -p err
最近1小时的错误日志
journalctl --vacuum-size=500M
清理日志到 500M 以下
systemd-analyze blame
看开机各服务耗时排名

🔐 SSH

命令
干了什么
ssh user@host
连上去(默认 22 端口)
ssh -p 2222 -i ~/.ssh/key user@host
指定端口+密钥
ssh-keygen -t ed25519 -C "我是谁"
生成密钥(比 RSA 快且短)
ssh-copy-id user@host
传公钥到目标机
ssh -L 8080:localhost:80 user@bastion
本地端口转发:本地 8080 → 跳板机背后的 80
ssh -D 1080 user@host
SOCKS 代理
scp file user@host:/path/
拷文件
rsync -avz source/ user@host:/dest/
同步目录(增量+压缩)
rsync -avz --delete source/ dest/
镜像同步(目标多出的文件删掉)

💻 Shell 效率

# 历史记录强化(加到 ~/.bashrc)
export
 HISTSIZE=10000
export
 HISTFILESIZE=20000
export
 HISTTIMEFORMAT="%F %T "        # 每条命令带时间戳
export
 HISTCONTROL=ignoredups:erasedups  # 去重

# 安全别名(防手滑)

alias
 rm='rm -i'
alias
 cp='cp -i'
alias
 mv='mv -i'

# 好看别名

alias
 ll='ls -alFh'
alias
 df='df -h'
alias
 free='free -h'
alias
 ports='ss -tlnp'
alias
 myip='curl -s ifconfig.me'

# Ctrl+R 升级 → fzf 模糊搜历史

# cd 升级 → zoxide 智能跳转

# cat 升级 → bat 语法高亮 + 行号

🆘 故障急救三板斧

CPU 飙高

top -bn1 -o %CPU | head -20          # 谁在吃 CPU
top -H -p <PID>                       # 看进程中哪个线程
strace -c -p <PID>                    # 统计进程在忙什么系统调用
perf top -g -p <PID>                  # 看到函数级热点

内存不够

free -h                               # 先看概览
ps aux --sort=-%mem | head -10        # 谁在吃内存
dmesg | grep -i "out of memory"       # 被 OOM 杀过吗
echo
 -1000 > /proc/<PID>/oom_score_adj  # 保护关键进程不被杀

磁盘满了

df -h                                 # 哪个分区满了
du
 -sh /* 2>/dev/null | sort -rh | head -10  # 根目录下谁最大
find / -type f -size +1G 2>/dev/null  # 找大文件
lsof | grep deleted | awk '{print $1,$2,$7}' | sort -u  # 关键!删了但没释放的文件
journalctl --vacuum-size=500M         # 急救:压缩日志
find /var/log -name "*.log" -mtime +30 -delete  # 删旧日志

服务起不来

journalctl -u <service> -n 100 --no-pager  # 看日志
ss -tlnp | grep <PORT>                     # 端口被占了?
ldd /path/to/binary                        # 缺库文件?
setenforce 0                               # SELinux 挡了?临时关掉试试

🚀 新机器初始化一条龙

# === 基础包 ===
sudo
 apt update && sudo apt install -y \
  curl wget git vim htop \
  net-tools dnsutils \
  build-essential

# === 常用别名 ===

cat
 >> ~/.bashrc << 'EOF'
export
 HISTSIZE=10000
export
 HISTTIMEFORMAT="%F %T "
alias
 ll='ls -alFh'
alias
 df='df -h'
alias
 free='free -h'
alias
 ports='ss -tlnp'
EOF
source
 ~/.bashrc

# === SSH 密钥 ===

ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)"

# === 防火墙最少规则 ===

sudo
 ufw allow 22/tcp
sudo
 ufw enable

🗺️ 按使用频率排序

  1. 1. ⭐ 每10分钟用一次:ls、cd、grep、ctrl+r、!!
  2. 2. 🔥 每天用:systemctl、journalctl、ss、df、ps、tail -f、curl
  3. 3. 💡 出问题时救命:lsof、strace、tcpdump、dmesg、journalctl -p err
  4. 4. 🧪 偶尔用但每次都很爽:awk、sed、find -exec、rsync、ssh -L

这个手册会持续更新。你有私藏的实用命令?评论区分享,实测好用就加进来。

🐧 回复「手册」获取本速查手册,回复「野生」获取《Linux效率工具清单》


最新文章

随机文章