面向开发、运维,按场景分类,多表格,可直接复制查阅,覆盖日常操作、排错、性能排查、避坑要点。
一、文件与目录操作
| 命令 | 常用参数 | 示例 | 说明 |
|---|---|---|---|
| pwd | 无 | pwd |
查看当前工作目录 |
| cd | - 返回上一次目录 |
cd /var/log、cd - |
切换目录,cd ~回到家目录 |
| ls | ‑l详情,‑a隐藏,‑h人性化大小 |
ls -lah |
列出目录内容 |
| mkdir | ‑p递归创建多级目录 |
mkdir -p app/logs/nginx |
创建目录 |
| cp | ‑r递归复制目录 |
cp -r dir1 dir2 |
复制文件/目录 |
| mv | 无 | mv old.txt new.txt |
移动、重命名 |
| rm | ‑r递归,‑f强制,‑i询问 |
rm -rf temp/ |
⚠高危删除,谨慎使用 |
| touch | 无 | touch test.txt |
新建空文件,更新时间戳 |
| ln | ‑s软链接 |
ln -s /opt/app /data/app |
创建符号链接/硬链接 |
| du | ‑sh统计目录总大小 |
du -sh /var/log/* |
目录磁盘占用统计 |
| find | ‑name按名字查找 |
find /data -name "*.log" |
遍历查找文件 |
二、文件查看与日志阅读(排查问题高频)
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| cat | ‑n显示行号 |
cat -n info.log |
输出全部内容,适合小文件 |
| less | +G跳到末尾 |
less +G app.log |
分页阅读,/关键词搜索,q退出 |
| head | ‑n 20前20行 |
head -n 20 app.log |
读取文件头部 |
| tail | ‑n 100末尾100行,‑f实时跟踪 |
tail -f app.log |
日志实时追踪,运维必备 |
| grep | ‑i忽略大小写,‑n行号,‑A/B上下文 |
grep -n -i "error" app.log |
文本过滤搜索 |
| wc | ‑l统计行数 |
wc -l app.log |
统计行、单词、字节数 |
三、权限与用户组管理
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| chmod | 数字/符号权限 | chmod 755 run.sh |
修改文件权限,目录推荐755,普通文件644,禁止滥用777 |
| chown | ‑R递归修改所有者 |
chown -R nginx:nginx /opt/nginx |
修改属主、属组 |
| useradd | ‑m自动创建家目录 |
useradd -m devuser |
新增用户 |
| passwd | 无 | passwd devuser |
设置用户密码 |
| su | 无 | su - root |
切换用户环境 |
| sudo | 无 | sudo systemctl restart nginx |
临时获取root权限执行命令 |
权限记忆:4读r,2写w,1执行x;7=rwx,6=rw‑,5=r‑x,4=r‑‑。
四、进程、服务管理 systemd
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| ps | aux全部进程,‑ef父子进程树 |
`ps aux | grep java` |
| top | ‑p PID监控指定进程 |
top,P按CPU排序,M按内存,q退出 |
实时进程监控 |
| kill | ‑15优雅终止,‑9强制杀死 |
kill 1234、kill -9 1234 |
发信号终止进程;优先15,少用‑9 |
| pkill | ‑f匹配完整命令行 |
pkill -f app.jar |
按进程名杀进程 |
| nohup | &后台运行 |
nohup java -jar app.jar > app.log 2>&1 & |
后台运行,关闭终端不退出 |
| jobs/fg/bg | 无 | jobs、fg 1 |
管理当前终端后台任务 |
| systemctl | start/stop/restart/status/enable/disable/daemon‑reload | systemctl status nginx |
管理系统服务,CentOS7+/Ubuntu16+主流工具 |
| journalctl | ‑u指定服务,‑f实时,‑xe排错,‑‑since时间过滤 |
journalctl -u nginx -f |
查看systemd服务日志,排查启动失败 |
五、磁盘与存储
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| df | ‑h人性化输出 |
df -h |
查看分区磁盘剩余空间 |
| lsblk | 无 | lsblk |
列出块设备磁盘分区 |
| blkid | 无 | blkid |
查看分区UUID,用于/etc/fstab挂载 |
| mount | 无 | mount /dev/sdb1 /data |
挂载磁盘 |
| umount | ‑l延迟卸载(忙时) |
umount -l /data |
卸载挂载点 |
六、网络命令
提示:
netstat逐步废弃,优先使用ss;ifconfig废弃,优先ip addr。
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| ip addr | 无 | ip addr |
查看网卡IP地址 |
| ss | ‑tulnp查看监听端口 |
`ss -tulnp | grep 8080` |
| ping | ‑c 4发送4次包 |
ping -c 4 baidu.com |
连通性测试 |
| curl | ‑I只看响应头,‑X POST请求方法 |
curl -I [https://www.baidu.com](https://www.baidu.com) |
http请求调试、接口测试 |
| wget | ‑c断点续传 |
wget -c https://xxx/file.tar.gz |
下载文件 |
| scp | ‑r目录拷贝 |
scp file.tar.gz root@192.168.1.10:/data |
跨服务器安全拷贝 |
| ssh | 无 | ssh root@192.168.1.10 |
远程登录服务器 |
| dig | 无 | dig baidu.com |
DNS解析查询 |
七、系统信息、巡检命令
| 命令 | 示例 | 作用 |
|---|---|---|
| uname -a | uname -a |
内核版本、系统架构(x86_64/aarch64) |
| uptime | uptime |
系统运行时间、系统负载 |
| free -h | free -h |
内存、swap使用情况,重点看available |
| lscpu | lscpu |
CPU核心数、架构信息 |
| w | w |
登录用户+系统负载 |
| dmesg -T | `dmesg -T | grep -i error` |
| hostname | hostname |
主机名查看修改 |
八、压缩解压
| 命令 | 示例 | 说明 |
|---|---|---|
| tar | tar -zcvf out.tar.gz dirname |
gzip压缩打包 |
| tar | tar -zxvf out.tar.gz -C /opt |
解压到指定目录‑C |
| zip/unzip | zip -r out.zip dir、unzip out.zip |
zip格式压缩解压 |
九、定时任务 crontab
| 命令 | 示例 | 说明 |
|---|---|---|
| crontab -e | crontab -e |
编辑当前用户定时任务 |
| crontab -l | crontab -l |
查看定时任务列表 |
| crontab -r | crontab -r |
⚠删除全部定时任务 |
crontab时间格式:分 时 日 月 周 命令
# 示例:每天凌晨2点执行脚本
0 2 * * * /bin/bash /opt/backup.sh >> /data/backup.log
十、软件包管理
CentOS/RHEL(yum/dnf)
| 命令 | 示例 | 说明 |
|---|---|---|
| yum install | yum install nginx |
安装软件包 |
| yum remove | yum remove nginx |
卸载 |
| yum list installed | yum list installed |
查看已安装包 |
Ubuntu/Debian(apt)
| 命令 | 示例 | 说明 |
|---|---|---|
| apt update | apt update |
更新软件源索引 |
| apt install | apt install nginx |
安装软件包 |
| apt remove | apt remove nginx |
卸载软件包 |
十一、故障排查SOP速查表(生产排错)
| 排查方向 | 命令组合 | 用途 |
|---|---|---|
| 系统整体状态 | uptime、free -h、df -h |
快速体检负载、内存、磁盘是否打满 |
| CPU高负载 | top,按P排序,定位高CPU PID |
找到耗CPU进程 |
| 磁盘IO异常 | vmstat 1,看wa指标,iotop |
定位IO瓶颈 |
| 服务启动失败 | journalctl -xe、journalctl -u xxx.service |
查看systemd报错日志 |
| 端口占用 | `ss -tulnp | grep 端口号` |
| 内核硬件报错 | `dmesg -T | grep -i err` |
| 日志关键字定位 | grep -C 10 "Exception" app.log |
查看错误前后10行上下文 |
十二、高频踩坑与避坑清单
- rm‑rf高危 :生产不要直接
rm -rf /xxx/*,操作前先用ls确认路径;可临时用rm -i开启删除确认。- kill‑9慎用 :数据库、MQ等业务进程优先
kill PID(‑15)优雅关闭,‑9强制杀会丢数据、损坏文件。- 权限不要777:遵循最小权限;目录755,普通文件644,可执行脚本755。
- mysql客户端
‑>多行模式 :遇到->提示符,输入\c回车退出未完成SQL,再\q退出客户端。- less交互 :搜索输入
/关键词后必须回车,n/N切换匹配,q退出。- Linux严格区分大小写,路径、文件名大小写不同代表不同文件,善用Tab补全。
- Linux无回收站,删除文件很难恢复,重要数据先备份。
十三、实用小技巧
Ctrl + R:终端历史命令反向搜索,输入关键词回溯旧命令。!数字:执行history中对应编号历史命令。!!:重复上一条命令,sudo !!用root权限重新执行上一条。- Tab补全命令、路径,减少手敲错误。
> file.log快速清空文件,不要用rm删除正在写入的日志文件。
附帮助:man 命令名查看完整手册,命令 -‑help查看简短参数说明。