【linux】资源管理命令
·
Linux命令高效记忆法:从“背命令”到“用工具”
记住Linux命令不是靠死记硬背,而是建立场景关联和肌肉记忆。我用一套“游戏化”的方法帮你掌握:
一、分层记忆法(由浅入深)
第一层:侦查兵(快速概览)
# 记住这3个就够了,像查户口一样简单
top # 实时看谁最忙(系统仪表盘)
ps aux # 拍张快照看所有进程(全员点名)
htop # top的豪华版(带颜色和鼠标)
记忆口诀:top看动态,ps拍快照,htop更花哨
第二层:狙击手(精准定位)
当发现异常进程后,用这些深入分析:
# 找到PID后,用这些深挖
top -H -p PID # 看这个进程的线程(H=Threads)
ps -T -p PID # 另一种看线程方式(T=Threads)
lsof -p PID # 看它打开了哪些文件
记忆技巧:-H像两条平行线(线程),-T也代表线程
第三层:特种部队(专业工具)
# 安装后才有的高级工具
pidstat # 进程统计报告(pid+stat)
perf top # 性能分析(performance)
vmstat 1 # 虚拟内存统计(virtual memory)
记忆方法:记住缩写来源(pid=进程ID,stat=统计)
二、场景关联法(按问题记忆)
场景1:系统突然变卡
思维路径:系统卡 → 谁在消耗CPU? → 用top 命令流程:
- top # 先看整体,按P按CPU排序
- 记下高CPU的PID
- top -H -p PID # 看这个进程的哪个线程在搞鬼
- printf “%x\n” PID # 转16进制(为堆栈分析准备) 故事记忆:像侦探破案,先锁定嫌疑人(进程),再查同伙(线程)
场景2:内存快满了
思维路径:内存不足 → 谁吃内存最多? → 按内存排序
命令流程:
1. top -o %MEM # 按内存排序(o=order by)
2. 或 ps aux --sort=-%mem | head -10
3. pmap -x PID # 看这个进程内存分布图
形象比喻:%MEM就是内存百分比,-号表示倒序(从大到小)
场景3:怀疑某个进程异常
text
思维路径:怀疑Java进程 → 专门看Java → 过滤+详细
命令流程:
1. ps aux | grep java # 找到Java进程
2. jstack PID > dump.txt # Java专用线程dump
3. cat /proc/PID/status | grep Vm # 看内存详情
记忆技巧:grep就是“筛选”,像漏斗一样过滤出你要的
三、参数联想记忆法
参数不是乱码,是英文缩写!
# ps命令的aux到底什么意思?
a = all users # 所有用户
u = user format # 用户格式显示
x = include no tty # 包括没有终端的进程
# 所以ps aux = "显示所有用户的所有进程详细信息"
# 常用参数速记:
-p = pid(进程ID)
-u = user(用户)
-f = full(完整格式)
-l = long(长格式)
-e = every(所有进程)
-H = threads(线程,H像两条线)
我的记忆图:
text
ps aux → "啊,u看详细信息"(a=all,u=user detail)
ps -ef → "看全部,完整格式"(e=every,f=full)
ps -eo → "看所有,自定义列"
四、日常练习法(形成肌肉记忆)
每天5分钟练习计划:
周一:进程查看日
alias myps='ps aux --sort=-%cpu | head -5'
# 周二:线程分析日
alias mythreads='top -H -b -n1 | head -20'
# 周三:内存检查日
alias mymem='ps aux --sort=-rss | head -10'
# 周四:综合监控日
htop # 玩10分钟,熟悉所有功能
# 周五:实战演练日
# 故意运行一个消耗CPU的程序,然后排查
创建自己的“命令锦囊”文件:
bash
# 创建个人备忘录
cat > ~/.my_commands << 'EOF'
# 常用进程命令速查
# 1. 找CPU凶手:top → P → 记PID → top -H -p PID
# 2. 找内存凶手:top → M → 记PID → pmap -x PID
# 3. 看Java线程:jstack PID | grep "线程16进制ID"
# 4. 看所有进程树:pstree -p
# 5. 实时监控:watch -n1 "ps aux --sort=-%cpu | head -5"
五、工作流记忆法(按流程记)
把命令串成工作流,像食谱一样记忆:
标准排查流程四部曲:
# 第一步:全局扫描(发现异常)
top 或 htop
↓
# 第二步:精确锁定(找到目标)
ps aux | grep 可疑关键词 或 ps aux --sort=-%cpu | head -10
↓
# 第三步:深入分析(查看详情)
top -H -p 目标PID # 看线程
cat /proc/目标PID/status | grep -E 'Vm|Threads' # 看资源
↓
# 第四步:收集证据(保留现场)
ps auxf > process_snapshot.txt
top -H -b -n1 > thread_snapshot.txt
画成流程图更易记:
系统报警 → top看全局 → ps找具体 → 分析线程 → 收集证据
六、工具选择记忆法(何时用什么)
一张图帮你选择:
系统突然卡顿:
├─ 想快速看 → htop(有颜色,直观)
├─ 要详细数据 → top(信息全)
└─ 要留存报告 → top -b -n1 > report.txt
内存泄漏排查:
├─ 看谁占用大 → ps aux --sort=-rss
├─ 看详细分布 → pmap -x PID
└─ 看内存类型 → cat /proc/PID/smaps
线程死锁分析:
├─ Java程序 → jstack
├─ C/C++程序 → gdb -p PID → thread apply all bt
└─ 快速查看 → top -H -p PID
长期监控:
├─ 简单监控 → watch -n1 "命令"
├─ 专业监控 → pidstat 1
└─ 全面监控 → atop
七、最简核心命令表(只记这些就够了)
90%场景用这10个命令:
进程查看(3个)
top # 实时监控
ps aux # 快照查看
htop # 增强监控(装一下)
# 线程查看(2个)
top -H -p PID # 看指定进程的线程
ps -T -p PID # 另一种方式
# 资源分析(3个)
pidstat -p PID 1 3 # 进程统计
pmap -x PID # 内存映射
lsof -p PID # 打开文件
# 信息转换(2个)
printf "%x\n" 线程ID # 十进制转十六进制(用于堆栈)
cat /proc/PID/status # 进程状态信息
八、实战记忆练习
练习1:给自己出题
# 题目:找出系统中最耗CPU的3个进程及其线程
# 你的答案:
1. top # 按P排序,记下前3个PID
2. for pid in 123 456 789; do
echo "=== PID $pid 的线程 ==="
ps -T -p $pid --sort=-%cpu | head -3
done
练习2:编写排查脚本
bash
# 创建一个傻瓜式排查脚本
cat > find_cpu_hog.sh << 'EOF'
#!/bin/bash
echo "=== CPU占用TOP 5进程 ==="
ps aux --sort=-%cpu | head -6
echo ""
echo "=== 内存占用TOP 5进程 ==="
ps aux --sort=-%mem | head -6
echo ""
echo "=== 系统负载 ==="
uptime
EOF
chmod +x find_cpu_hog.sh
九、高级技巧:用alias简化记忆
在~/.bashrc中添加:
# 进程相关alias
alias pcpu='ps aux --sort=-%cpu | head -10' # Process CPU
alias pmem='ps aux --sort=-%mem | head -10' # Process Memory
alias pfind='ps aux | grep' # Process Find
alias pst='ps -T -p' # Process Threads
alias ptop='top -H -p' # Process Top
# 监控alias
alias mytop='top -o %CPU' # 按CPU排序
alias mymem='top -o %MEM' # 按内存排序
alias watchcpu='watch -n1 "ps aux --sort=-%cpu | head -5"'
最后的建议:
不要死记所有参数:记住核心命令,其他用–help查
建立个人笔记库:遇到有用的命令马上记下来
动手实践最重要:在测试机上故意制造问题,然后排查
善用Tab补全:记住开头几个字母就行
理解原理比记命令更重要:知道为什么用这个命令
终极心法:Linux命令不是背出来的,是用出来的。就像学游泳,跳进水里扑腾几次,比在岸上背动作要领有效得多!
从今天开始,每天用5分钟敲一遍这些命令,一周后你就能条件反射般使用它们了。记住:每一个运维高手,都是从记不住命令的小白开始的。
更多推荐


所有评论(0)