Linux 常用命令速查
这页更适合当成“服务器与 WSL 日常排障速查表”来用。真正高频的不是把命令都背下来,而是知道遇到文件、端口、权限、日志、磁盘问题时该先看哪里。
推荐学习顺序
如果你刚开始接触 Linux,建议按下面顺序掌握:
- 文件与目录操作
- 文本查看与搜索
- 进程与端口排查
- 权限与服务管理
- 磁盘、网络与系统信息
先把“看文件、看日志、看端口”学会,排障效率会直接上一个台阶。
文件操作
ls -la # 列出所有文件(含隐藏)
ls -lh # 人类可读大小
tree -L 2 # 目录树(2 层)
cp -r src/ dst/ # 递归复制
mv old new # 移动/重命名
rm -rf dir/ # 强制递归删除
mkdir -p a/b/c # 递归创建目录
ln -s /path/to/target link # 创建软链接
find . -name "*.log" # 按名称查找
find . -size +100M # 查找大文件
find . -mtime -7 # 最近 7 天修改的文件
find . -name "*.tmp" -delete # 查找并删除
文本处理
cat file.txt # 查看文件
head -20 file.txt # 前 20 行
tail -f file.log # 实时查看日志
grep -rn "pattern" . # 递归搜索
grep -i "error" file.log # 忽略大小写
grep -v "debug" file.log # 排除匹配行
sed -i 's/old/new/g' file # 替换文本
awk '{print $1, $3}' file # 打印第 1、3 列
sort file | uniq -c | sort -rn # 统计去重排序
wc -l file.txt # 行数
wc -w file.txt # 词数
diff file1 file2 # 比较文件
高频排障组合
下面几组组合命令非常适合日常查问题:
# 看端口是谁占用
ss -tlnp | grep 3000
# 看服务最近日志
journalctl -u nginx --since "30 min ago"
# 看目录谁最占空间
du -sh * | sort -h
# 边看日志边筛关键字
tail -f app.log | grep --line-buffered "error"
如果你平时在 WSL 里工作,这一组基本已经能覆盖多数本地开发排障场景。
权限管理
chmod 755 script.sh # rwxr-xr-x
chmod +x script.sh # 添加执行权限
chmod -R 644 dir/ # 递归设置
chown user:group file # 修改所有者
chown -R user:group dir/ # 递归修改
| 数字 | 权限 |
|---|---|
| 7 | rwx(读写执行) |
| 6 | rw-(读写) |
| 5 | r-x(读执行) |
| 4 | r--(只读) |
进程管理
ps aux # 查看所有进程
ps aux | grep nginx # 搜索进程
top # 实时监控
htop # 增强版监控
kill PID # 终止进程
kill -9 PID # 强制终止
killall nginx # 按名称终止
nohup command & # 后台运行(不随终端关闭)
screen -S name # 创建会话
tmux new -s name # tmux 会话
磁盘管理
df -h # 磁盘使用情况
du -sh * # 当前目录各项大小
du -sh /var/log # 指定目录大小
ncdu / # 交互式磁盘分析
lsblk # 列出块设备
mount /dev/sdb1 /mnt # 挂载
umount /mnt # 卸载
网络
ip addr # 查看 IP
ss -tlnp # 查看监听端口
curl -I https://example.com # 查看响应头
wget https://example.com/file # 下载文件
ping example.com # 连通性测试
traceroute example.com # 路由追踪
dig example.com # DNS 查询
nslookup example.com # DNS 查询
# 端口转发
ssh -L 8080:localhost:80 user@server
# 传输文件
scp file user@server:/path/
rsync -avz src/ user@server:/dst/
压缩解压
# tar.gz
tar -czf archive.tar.gz dir/
tar -xzf archive.tar.gz
# tar.bz2
tar -cjf archive.tar.bz2 dir/
tar -xjf archive.tar.bz2
# zip
zip -r archive.zip dir/
unzip archive.zip
系统信息
uname -a # 系统信息
cat /etc/os-release # 发行版信息
uptime # 运行时间
free -h # 内存使用
lscpu # CPU 信息
hostname # 主机名
whoami # 当前用户
Systemd 服务管理
systemctl status nginx # 查看状态
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl restart nginx # 重启
systemctl enable nginx # 开机自启
systemctl disable nginx # 取消自启
systemctl list-units --type=service # 列出所有服务
journalctl -u nginx -f # 查看服务日志
journalctl --since "1 hour ago" # 最近 1 小时日志
WSL 与原生 Linux 的差异
很多命令在 WSL 里同样可用,但有几个体验差异值得提前知道:
- 文件放在 WSL 的 Linux 文件系统里,通常比放在
C:\\再跨系统访问更快 - 某些 systemd 能力要确认 WSL 版本与配置是否已启用
- 图形、硬件、USB、内核相关命令在 WSL 中可能与原生 Linux 不完全一致
如果你是把 WSL 当开发环境而不是服务器环境,优先把重点放在文件、网络、包管理、进程和日志这几类命令上就够用了。
常见风险提醒
rm -rf执行前先pwdsudo不要和重定向误用,必要时使用sudo tee- 修改权限前先确认目标是文件还是目录,避免整棵目录被错误降权
- 生产机上优先先看日志和状态,再决定是否
restart
延伸阅读
参考链接
- TLDR Pages — 简化版 man 手册
- ExplainShell — 命令解释工具
- Linux Command — 学习资源