把日常运维最常用的 Linux 命令按场景整理成一张速查表,忘了参数的时候直接查,不用再翻 man。每条都附了最常用的写法,最后一节列了已经被淘汰、但很多老教程还在用的命令及其替代方案。
阅读约定:示例 列里出现的路径、用户名、进程号都是占位,实际使用时换成自己的。
一、文件与目录
| 命令 | 作用 | 常用写法 |
|---|
ls | 列出目录内容 | ls -lh 人类可读大小;ls -a 含隐藏文件 |
cd | 切换目录 | cd .. 上级;cd ~ 家目录;cd - 回上一个目录 |
pwd | 显示当前路径 | pwd -P 显示真实路径(解开软链) |
mkdir | 建目录 | mkdir -p a/b/c 父目录不存在时一起建 |
rmdir | 删空目录 | 非空目录用 rm -r |
rm | 删除 | rm -rf dir 递归强制(高危,见文末提醒) |
cp | 复制 | cp -r src dst 复制目录;cp -a 保留属性 |
mv | 移动 / 重命名 | mv old.txt new.txt |
touch | 建空文件 / 更新时间戳 | touch file.txt |
ln | 创建链接 | ln -s /real/path /link 软链接 |
find | 查找文件 | find /var -name "*.log" -mtime +7 七天前的日志 |
tree | 树形展示目录 | tree -L 2 只展开两层(需安装) |
二、查看与处理文件内容
| 命令 | 作用 | 常用写法 |
|---|
cat | 一次输出全部内容 | cat -n file 带行号 |
less | 分页浏览(推荐) | less +F app.log 类似 tail -f |
head / tail | 看头 / 看尾 | tail -n 100 app.log;tail -f 实时跟踪 |
wc | 统计行数、字数 | wc -l file |
grep | 按内容搜索 | grep -rn "error" /var/log 递归带行号;-i 忽略大小写 |
sed | 流式替换 | sed -i 's/old/new/g' file 直接改文件 |
awk | 按列处理文本 | awk '{print $1, $3}' file |
diff | 比较两个文件 | diff -u a.conf b.conf |
三、权限与属主
| 命令 | 作用 | 常用写法 |
|---|
chmod | 改权限 | chmod 644 file;chmod u+x run.sh 只给属主执行权 |
chown | 改属主与属组 | chown -R www:www /var/www |
umask | 设置新建文件默认权限 | umask 022 |
sudo | 以 root 执行单条命令 | sudo -i 切到 root shell |
数字权限记法:4 读、2 写、1 执行,三组分别对应属主、属组、其他人。755 = rwxr-xr-x,644 = rw-r--r--。
四、系统状态
| 命令 | 作用 | 常用写法 |
|---|
top / htop | 实时资源占用 | top 按 q 退出;htop 需安装 |
free | 内存使用 | free -h |
df | 磁盘空间 | df -h;df -i 看 inode |
du | 目录占用 | du -sh * 当前目录下各项大小 |
uptime | 运行时长与负载 | uptime |
uname | 内核信息 | uname -a;uname -r 只看内核版本 |
dmesg | 内核日志 | `dmesg -T \ | tail -50` |
journalctl | systemd 日志 | journalctl -u nginx -n 100 |
五、进程管理
| 命令 | 作用 | 常用写法 |
|---|
ps | 查看进程 | ps aux;`ps -ef \ | grep nginx` |
kill | 结束进程 | 先 kill PID(SIGTERM),无效再 kill -9 PID |
pkill | 按名字结束 | pkill -f "python app.py" |
killall | 结束同名进程 | killall nginx |
jobs / bg / fg | 作业控制 | Ctrl+Z 挂起后 bg 转后台 |
nohup | 退出终端不中断 | nohup ./run.sh > out.log 2>&1 & |
nice / renice | 调整优先级 | nice -n 10 cmd;renice 5 -p PID |
strace | 跟踪系统调用 | strace -p PID |
六、网络
| 命令 | 作用 | 常用写法 |
|---|
ping | 连通性 | ping -c 4 1.1.1.1 |
curl | 发 HTTP 请求 | curl -I https://example.com 只看响应头 |
wget | 下载文件 | wget -c URL 断点续传 |
ssh | 远程登录 | ssh -p 2222 user@host(小写 p 指定端口) |
scp | 远程复制 | scp -P 2222 -r dir user@host:/path(大写 P) |
rsync | 增量同步(推荐) | rsync -avz src/ user@host:/dst/ 末尾斜杠别漏 |
ss | 查看连接与端口 | ss -tulnp 列出监听端口及进程 |
ip | 网卡与地址 | ip addr;ip route |
mtr | 路由 + 丢包 | mtr -rw host 出报告 |
dig | DNS 查询 | dig +short example.com |
七、软件包与服务
| 系统 | 更新索引 | 安装 / 卸载 | 搜索 |
|---|
| Debian / Ubuntu | apt update | apt install 包名、apt remove 包名 | apt search 包名 |
| RHEL / CentOS 7 | yum makecache | yum install 包名、yum remove 包名 | yum search 包名 |
| Fedora / 新版 RHEL | dnf makecache | dnf install 包名、dnf remove 包名 | dnf search 包名 |
| Arch Linux | pacman -Sy | pacman -S 包名、pacman -R 包名 | pacman -Ss 包名 |
整机升级:Debian 系用 apt upgrade,RHEL 系用 dnf upgrade,Arch 用 pacman -Syu。服务管理交给 systemd:
systemctl start nginx # 启动
systemctl enable nginx # 开机自启
systemctl status nginx # 查看状态
systemctl restart nginx # 重启
八、压缩与解压
| 操作 | 命令 |
|---|
| 打包并 gzip 压缩 | tar -czvf archive.tar.gz dir/ |
| 解压 tar.gz | tar -xzvf archive.tar.gz |
| 只看包内文件不解压 | tar -tzvf archive.tar.gz |
| zip 压缩 / 解压 | zip -r a.zip dir/、unzip a.zip |
| 单文件压缩 / 解压 | gzip file、gunzip file.gz |
九、Vim 速查
| 操作 | 按键 |
|---|
| 进入插入模式 | i 光标前、a 光标后、o 下一行、O 上一行 |
| 回到普通模式 | Esc(或 Ctrl+[) |
| 保存 / 退出 | :w、:q、:wq、:q! 不保存强退 |
| 删除 | x 删字符、dd 删行、3dd 删三行 |
| 复制粘贴 | yy 复制行、p 粘贴到下方、P 粘贴到上方 |
| 搜索 | /关键字 向下、?关键字 向上、n 下一个 |
| 替换 | :%s/old/new/g 全文替换 |
| 跳转 | gg 首行、G 末行、:100 第 100 行 |
| 显示行号 | :set nu、:set nonu 关闭 |
| 撤销 | u |
十、已经被替代的老命令
很多教程还在用下面的命令,功能没问题,但新系统上可能默认没装,建议换成右侧的写法。
| 老命令 | 替代 | 说明 |
|---|
ifconfig | ip addr | net-tools 已停止维护,多数发行版默认不装 |
netstat | ss -tulnp | ss 更快,输出更清晰 |
service x start | systemctl start x | systemd 已成主流 |
apt-get | apt | 交互提示更友好 |
iptables | nft / firewalld / ufw | 新内核走 nftables 后端 |
vi | vim / nvim | 语法高亮、撤销树、插件生态 |
几个容易出事的地方
rm -rf 执行前先 ls 一遍。变量拼路径时尤其危险,rm -rf $DIR/ 里 $DIR 为空就变成删根。- 别用
chmod 777 图省事。权限开太大等于把门敞开,Web 目录一般 755 / 644 就够。 kill -9 是最后手段。它不给进程清理现场的机会,数据库类服务可能损坏数据,先试 kill -15。- 生产机上少用
-y。批量升级前先看一眼会动哪些包。 - 改配置前先备份。
cp nginx.conf nginx.conf.bak,出问题能立刻回滚。
命令本身不难,难的是记住在什么场景用哪一条。这份表建议收藏,配合 man 命令 和 命令 --help 一起用效果更好。
Linux 命令行 速查表 运维 Shell Vim