面向开发、运维,按场景分类,多表格,可直接复制查阅,覆盖日常操作、排错、性能排查、避坑要点。
一、文件与目录操作
| 命令 |
常用参数 |
示例 |
说明 |
| 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查看简短参数说明。