关键词:Linux命令, 运维实战, Ubuntu, CentOS, Debian, CLI, Shell脚本, 服务器管理, Docker, 系统优化, 网络排查, DevOps
摘要
对于每一位踏入服务器运维、后端开发或架构领域的IT人来说,Linux终端那个闪烁的光标既是无限可能的入口,也是初学者的梦魇。本文旨在通过结构化的表格形式,将枯燥的命令清单转化为可快速检索的“实战字典”。文章首先剖析Linux使用的痛点与技术演进,随后基于Debian/Ubuntu和CentOS/RHEL两大主流派系,精选100+条生产环境最高频使用的命令,按功能分类列表。无论你是排查CPU飙高、磁盘爆满,还是进行网络抓包、服务部署,这份清单都将是你的“瑞士军刀”。
第一部分:痛点、演进与趋势
1. 使用 Linux 的痛点
2. 技术演进
包管理:apt (Ubuntu) 和 dnf (CentOS 8+) 更加人性化,解决了早期的依赖地狱。
服务管理:Systemd 统一了 init.d 的乱象,支持依赖启动与自动重启。
核心优势:管道 (|) 能将简单命令串联成强大的自动化工作流。
3. 未来趋势
不可变基础设施:Docker/K8s 兴起,服务器即使“挂了”也能通过代码快速重建。
排查为王:虽然环境配置自动化了,但 tcpdump 和 strace 等底层排查技能依然是资深工程师的护城河。
AI 辅助运维:虽然 AI 可以生成命令,但作为操作者,你必须具备“验证”和“理解”命令的能力,否则 AI 给出的一行破坏性代码可能导致灾难。
第二部分:Linux 常用命令速查(源码对齐版)
提示:为了在 Markdown 编辑器中保持整洁,表格采用了源码对齐格式。所有命令默认在 Root 或 Sudo 下执行。
一、系统信息与性能监控 (The Dashboard)
掌控服务器脉搏,新增 OS 版本查看命令。
命令 | 核心功能 | 实战场景与技巧 |
cat /etc/os-release
| 查看OS详细版本(通用) | 查看发行版名称、版本号 (如 Debian 12 / Ubuntu 22.04)。 |
top
| 实时显示进程动态 | 系统变慢首选,关注 load average 和 %CPU。 |
htop
| top 增强版(可视化)
| 支持鼠标操作,直观查看多核 CPU 负载均衡。 |
btop
| 新一代炫酷监控 | 界面极具科技感,包含网络/磁盘IO绘图,适合展示。 |
free -h
| 查看内存使用 (GB/MB) | 排查 OOM 风险,关注 available 而非 free。 |
df -h
| 查看磁盘空间 | 报错 "No space" 时必查,看 Use% 是否达 100%。 |
du -sh *
| 查看当前目录各文件大小 | 配合 df,揪出吃光磁盘的文件夹(通常是日志)。 |
uptime
| 查看运行时间及负载 | 确认服务器是否意外重启过;快速评估负载。 |
lscpu
| 显示 CPU 架构信息 | 验证云厂商是否超卖,确认核心数与虚拟化类型。 |
uname -a
| 打印内核信息 | 安装显卡驱动或 BBR 优化前,确认内核版本。 |
`dmesg | tail` | 查看内核缓冲区 |
vmstat 1
| 每秒刷新系统统计 | 深入分析 CPU 上下文切换 (cs),判断性能瓶颈。 |
iostat -xz 1
| 监控磁盘 I/O | 数据库慢?看 %util,接近 100% 说明磁盘是瓶颈。 |
二、文件与目录操作 (The Skeleton)
Linux 一切皆文件,基础肌肉记忆。
命令 | 核心功能 | 实战场景与技巧 |
ls -alh
| 列出所有文件详情 | 进入目录的标准动作,查看隐藏文件 (.env) 和权限。 |
cd -
| 回到上一次目录 | 在两个深层目录间频繁切换时,效率极高。 |
pwd
| 显示当前绝对路径 | 复制路径到配置文件中,防止手打出错。 |
mkdir -p /a/b
| 递归创建目录 | 部署项目时,一次性建立多级结构。 |
rm -rf [path]
| 强制递归删除(高危) | 清理旧代码。警告:请默念三遍路径再回车。 |
cp -r src dst
| 递归复制目录 | 修改配置前备份:cp nginx.conf nginx.conf.bak。 |
ln -s src link
| 创建软链接(快捷方式) | Nginx 启用站点:链接 sites-available 到 enabled。 |
find / -name "x"
| 全盘搜索文件 | 忘了配置文件放哪了?全盘搜(速度较慢)。 |
find . -mtime +7 -delete
| 删除7天前的文件 | 自动化脚本核心:定时清理旧日志。 |
locate file
| 索引快速查找 | 比 find 快(查数据库),需先运行 updatedb。 |
tar -zcvf x.tgz dir
| 打包并压缩 (gzip) | 备份网站源码,最通用的 Linux 压缩格式。 |
tar -zxvf x.tgz
| 解压 .tar.gz 包 | 安装源码包的标准动作。 |
zip -r x.zip dir
| 创建 zip 包 | 发文件给 Windows 用户时使用(兼容性好)。 |
三、文件内容查看与处理 (The Surgery)
文本处理是 Linux 的灵魂,学会 grep/sed 效率翻倍。
命令 | 核心功能 | 实战场景与技巧 |
tail -f file
| 实时追踪文件末尾 | 运维高频:开双终端,一边操作一边看日志报错。 |
tail -n 100
| 看最后 100 行 | 快速看最近报错,无需打开几 GB 的大文件。 |
head -n 20
| 看前 20 行 | 确认 CSV 表头结构,或脚本解释器声明。 |
less file
| 分页查看大文件 | 支持搜索 (/kw),内存占用低,不会卡死终端。 |
grep "err" file
| 搜索关键词行 | 日志分析神器,秒级筛选 "Error" 或 "Exception"。 |
grep -r "str" .
| 递归搜索目录 | 代码审计:查找哪里调用了某个废弃函数。 |
sed -i 's/a/b/g' f
| 流编辑替换(原地) | 批量修改配置文件中的 IP 或域名,无需人工编辑。 |
awk '{print $1}'
| 文本列提取 | 从 Nginx 日志提取第1列 IP,配合 uniq 统计访问量。 |
wc -l file
| 统计行数 | 统计日志有多少条,或代码总行数。 |
diff f1 f2
| 比较文件差异 | 对比修改前后的配置,确认改动点。 |
nano file
| 简易编辑器 | 新手首选,操作类似记事本,下方有快捷键提示。 |
vim file
| 编辑器之神 | 资深首选,支持正则、块操作,效率极高。 |
四、网络与连接 (The Nervous System)
网络不通,业务皆空。从 Ping 到 抓包。
命令 | 核心功能 | 实战场景与技巧 |
ping ip/dom
| 测试连通性 | 基础测试。注意:部分服务器防火墙会禁 Ping。 |
ip addr
| 显示网卡 IP | ifconfig 的现代替代品,查看本机内网 IP。
|
curl -I url
| 获取 HTTP 头 | 检查状态码 (200/301),确认 Gzip 是否开启。 |
curl -L url
| 跟随重定向 | 测试 301 跳转后的最终页面是否正常。 |
netstat -tulnp
| 显示端口及进程 | 查端口冲突:看 80 端口被谁占用,或是否仅监听内网。 |
ss -tulnp
| 高效查端口 | 高并发场景下 netstat 会卡,ss 速度飞快。 |
traceroute dom
| 追踪路由 | 排查网络延迟产生在哪一跳(本地 vs 骨干网)。 |
nslookup dom
| 查询 DNS 解析 | 验证域名是否解析正确,排除本地 DNS 污染。 |
nc -zv ip port
| 端口连通扫描 | 测试远程数据库端口 (如 3306) 是否开放,替代 Telnet。 |
tcpdump
| 网络抓包 | 终极排查:分析 TCP 握手失败、重传或丢包细节。 |
ufw status
| 查看防火墙(Ubuntu) | 确认是否因防火墙拦截导致服务不可达。 |
五、进程管理 (The Traffic Cop)
杀掉僵尸进程,管理后台任务。
命令 | 核心功能 | 实战场景与技巧 |
ps aux
| 进程全快照 | 查看 PID、用户、CPU 占用,定位异常进程。 |
ps -ef | grep x
| 查找指定进程 | 确认 Nginx 是否在运行,或脚本是否卡死。 |
kill [pid]
| 结束进程 (SIGTERM) | 通知程序正常退出(保存数据),优先使用。 |
kill -9 [pid]
| 强制杀死 (SIGKILL) | 程序死锁无响应时的“拔电源”手段。 |
killall [name]
| 按名批量杀 | 重启 PHP:killall php-fpm,比一个个杀快。 |
nohup cmd &
| 后台防挂断运行 | 跑长任务(如备份),确保 SSH 断开后不中断。 |
jobs
| 查看后台任务 | 查看当前终端挂起 (Stopped) 或后台运行的任务。 |
六、用户与权限 (The Gatekeeper)
安全第一道防线。
命令 | 核心功能 | 实战场景与技巧 |
chmod 755 file
| 设置权限 | 解决脚本无法执行或 Web 403 问题 (755是标准权限)。 |
chmod +x file
| 赋予执行权 | 新写 .sh 脚本后的必要操作。 |
chown u:g file
| 修改所有者 | 修复 Nginx 权限报错(通常需改为 www-data)。 |
useradd -m user
| 创建用户 | 给新人开账号,-m 自动创建家目录。 |
passwd user
| 修改密码 | 定期改密或重置遗忘密码。 |
sudo cmd
| 以管理员执行 | 安全规范:日常用普通号,仅关键操作用 sudo。 |
w
| 查看登录用户 | 检查负载高的同时,看是否有别人在进行高危操作。 |
last
| 查看登录历史 | 审计:查谁登录过,发现陌生 IP 立即排查。 |
七、软件安装与服务 (The Engine)
Systemd 时代的大管家。
命令 | 核心功能 | 实战场景与技巧 |
apt update
| 更新源 (Debian) | 装软件前必做,确保获取最新版本索引。 |
apt install pkg
| 装软件 (Debian) | 一键安装并自动处理依赖。 |
yum update
| 系统更新 (CentOS) | 保持内核和软件补丁最新(生产环境需谨慎)。 |
systemctl start
| 启动服务 | systemctl start docker。
|
systemctl status
| 查看状态 | 启动失败时,第一时间看这里的红色报错信息。 |
systemctl enable
| 设置开机自启 | 必做:防止服务器断电重启后业务停摆。 |
journalctl -u x
| 查看服务日志 | 当 status 信息被截断时,用这个看完整日志流。 |
crontab -e
| 编辑定时任务 | 设每日备份:0 2 * * * /path/backup.sh。 |
八、Docker 容器化特别篇 (The Modern Stack)
云原生必备技能。
命令 | 核心功能 | 实战场景与技巧 |
docker ps
| 查看运行容器 | 检查容器状态 (Up) 和端口映射 (0.0.0.0:80)。 |
docker ps -a
| 查看所有容器 | 找异常退出 (Exited) 的容器 ID 以排查死因。 |
docker logs [id]
| 查看容器日志 | 容器起不来?看标准输出日志,等同于传统 tail。 |
docker exec -it
| 进入容器 | docker exec -it [id] bash,进内部修配置。
|
docker restart
| 重启容器 | 内存泄露或改配置后重启。 |
docker-compose up -d
| 后台启动编排 | 一键拉起 Web+DB+Redis 复杂环境。 |
docker network ls
| 查看网络 | 排查容器间无法通过服务名互通的问题。 |
九、杂项与进阶 (The Magic)
提升效率的小工具。
命令 | 核心功能 | 实战场景与技巧 |
history
| 查看历史命令 | 找回刚才敲的长命令,配合 !序号 重复执行。 |
alias
| 别名 | alias c='clear',让长命令变短,提升手速。
|
watch -n 1 cmd
| 周期执行 | watch -n 1 nvidia-smi 实时监控显卡/文件变化。
|
scp local remote
| SSH 传文件 | 类似 CP,但在两台服务器间安全传输。 |
ssh-keygen
| 生成密钥 | 配置 GitHub 或服务器免密登录,告别输密码。 |
echo "t" > f
| 覆盖写入 | 快速清空大日志:echo "" > app.log (不删文件)。 |
man cmd
| 官方手册 | 查冷门参数的终极权威。 |
十、系统服务管理 (The Engine)
Systemd 是现代 Linux 的大管家。
命令 | 核心功能 | 实战场景 |
systemctl start
| 启动服务 | systemctl start docker。
|
systemctl stop
| 停止服务 | 维护前停止服务,或停止冲突的服务。 |
systemctl restart
| 重启服务 | 修改配置文件后,重启使配置生效。 |
systemctl status
| 查看状态及最近日志 | 服务启动失败(Active: failed),第一时间看这里的报错红字。 |
systemctl enable
| 设置开机自启 | 确保服务器断电重启后,Web 服务和数据库自动恢复。 |
journalctl -u x
| 查看服务详细日志 | status 信息不全时,用这个查看该服务完整的历史日志。
|
crontab -e
| 编辑定时任务 | 设置每天凌晨自动备份数据库:0 2 * * * /path/backup.sh。 |
结语
这 100 多条命令,构成了 Linux 运维的基石。建议将本文收藏或打印。当你遇到“磁盘满了”能条件反射想到 df,遇到“网站打不开”能按顺序执行 ping -> systemctl -> logs 时,你就已经从“脚本小子”进阶为了合格的工程师。
本文首发于E路领航 (blog.oool.cc),转载请注明出处