尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

《Bash Shell 系统管理命令全面总结 —— 基于“更多的 bash shell 命令”课程实践》

《Bash Shell 系统管理命令全面总结 —— 基于“更多的 bash shell 命令”课程实践》 一、进程管理 —— 系统的生命状态监控1.1 什么是进程在 Linux 系统中进程Process是运行在系统上的程序实例。Shell 本身也是一个进程我们执行的每条命令都会启动一个或多个进程。理解进程的状态和行为是系统管理的第一步。1.2 ps 命令 —— 静态快照ps 命令用于捕获某一时刻系统进程的快照信息。【基本用法】ps输出仅显示当前终端下的进程包含 PID进程ID、TTY终端、TIMECPU时间和CMD命令名。【常用参数组合】ps -ef 显示系统上所有进程的完整格式信息ps aux 以 BSD 风格显示所有进程的详细状态常用【ps -ef 输出的关键列】UID 启动进程的用户PID 进程IDPPID 父进程ID谁启动了该进程C CPU 利用率STIME 进程启动时间TTY 关联终端TIME 累计占用 CPU 时间CMD 启动命令【实操建议】在 Xshell 中执行 ps -ef | grep bash可以看到当前所有 bash 进程及其父进程关系。1.3 top 命令 —— 实时仪表盘如果说 ps 是拍照那么 top 就是直播。它实时刷新系统状态是排查性能问题的首选工具。【top 输出解读】第1行 当前时间、系统运行时长、登录用户数、1/5/15分钟平均负载第2行 进程总数、运行中/休眠/停止/僵化状态数量第3行 CPU 使用率用户态、系统态、空闲、等待等Mem行 物理内存总量、已用、空闲、缓存Swap行 交换分区总量、已用、空闲、缓存【常用交互操作在 top 界面中按键】u 查看指定用户的进程E 切换内存显示单位KB - MB - GBP 按 CPU 使用率排序M 按内存使用率排序q 退出【注意】若最近15分钟平均负载持续偏高说明系统可能存在资源瓶颈如 CPU 过载、内存不足或 I/O 等待。1.4 终止进程 —— kill 命令当进程无响应或资源耗尽时需要手动终止。【基本语法】kill [信号] PID【常用信号】TERM 15 默认信号请求进程正常终止KILL 9 强制终止慎用可能导致数据丢失HUP 1 重新加载配置【示例】kill -9 4469 强制结束 PID 为 4469 的进程【核心原则】优先使用 kill无参数实在无效才用 -9。强制结束可能损坏正在写入的文件。二、磁盘与存储管理 —— 让存储设备为我所用2.1 挂载mount与卸载umountLinux 将所有存储设备纳入统一的虚拟目录树。使用新设备U盘、外接硬盘前必须将其挂载到目录树上的某个节点。【查看已挂载设备】mount输出示例/dev/sdb1 on /mnt/usb type vfat (rw)【手动挂载设备】mount -t vfat /dev/sdb1 /mnt/usb-t 指定文件系统类型如 vfat、ext4、ntfs设备文件如 /dev/sdb1- 挂载点如 /mnt/usb【卸载设备】umount /mnt/usb或umount /dev/sdb1【注意】卸载前必须确保没有进程在使用该设备上的文件。若提示设备繁忙用 lsof 命令查看占用进程再停止相应服务。【lsof 典型用法】lsof /mnt/usb 查看哪些进程在访问该挂载点lsof -i :80 查看占用 80 端口的进程2.2 查看磁盘空间 —— dfdf 命令查看整个文件系统的磁盘使用情况。【常用参数】df -h 以人类易读格式GB/MB显示【输出列】文件系统、总容量、已用、可用、使用%、挂载点。2.3 查看目录大小 —— dudu 查看特定目录及其子目录的磁盘占用。【常用参数】-h 易读格式显示-s 只显示每个目录的总计不列出子文件-c 最后显示总计行【示例】du -sh /home 查看 /home 目录总大小du -h --max-depth1 查看当前目录下各子目录大小深度1三、数据处理 —— 排序与检索的艺术3.1 sort —— 数据排序sort 用于对文本内容进行排序显示不修改原文件。【基本用法】sort data.txt【关键参数】-n 按数值排序而非字符 示例sort -n score.txt-r 降序排列 示例sort -nr score.txt-t 指定字段分隔符 示例sort -t: -k3 /etc/passwd-k 按指定字段排序 示例sort -k2 data.csv-u 去重唯一输出 示例sort -u names.txt【重要区别】不加 -n 时sort 将数字视为字符串如 10 会排在 2 前面因为 1 2。处理数值时必须加 -n。【练习题实践】# 创建数字文件for i in 5 2 5 1 3; do echo $i nums.txt; done# 各类排序sort nums.txt 字符排序10在2前sort -n nums.txt 数值排序1,2,3...sort -nr nums.txt 降序sort -nu nums.txt 去重后升序3.2 grep —— 强大的文本搜索grep 在文件或输入中按模式匹配查找行是日志分析、数据过滤的利器。【基本语法】grep pattern filename【常用参数】-v 反向匹配输出不包含该模式的行 示例grep -v error log.txt-n 显示匹配行的行号 示例grep -n fail log.txt-c 只统计匹配行数 示例grep -c success log.txt-e 指定多个模式OR逻辑 示例grep -e error -e fail log.txt-i 忽略大小写 示例grep -i warning log.txt-r 递归搜索目录 示例grep -r TODO ./src/【正则表达式示例】grep ^[0-9] data.txt 以数字开头的行grep error$ log.txt 以 error 结尾的行grep ...[0-9] data.txt 使用正则匹配复杂模式【练习题实践】# 创建测试文件echo -e apple\nApple\nbanana\nAPPLE\norange fruits.txt# 各种grep实践grep apple fruits.txt 匹配 applegrep -i apple fruits.txt 不区分大小写匹配全部grep -v banana fruits.txt 排除 bananagrep -n apple fruits.txt 带行号grep -c apple fruits.txt 统计匹配行数grep -e apple -e orange fruits.txt 多模式匹配四、压缩与归档 —— 让数据瘦身与打包4.1 gzip —— 单文件压缩gzip 用于压缩单个文件生成 .gz 后缀的压缩包原文件被替换。【常用操作】gzip largefile.txt 压缩生成 largefile.txt.gzgzip -d largefile.txt.gz 解压等价于 gunzip4.2 tar —— 归档打包必掌握tarTape Archive是 Linux 最核心的归档工具常与压缩结合使用。【参数速查表】-c 创建归档文件-x 解归档提取-v 显示详细过程verbose-f 指定归档文件名必须紧跟文件名-z 通过 gzip 压缩/解压-j 通过 bzip2 压缩/解压-t 查看归档内容列表【典型应用场景】打包但不压缩 tar -cvf archive.tar /home/user/docs打包并压缩最常用 tar -czvf archive.tar.gz /home/user/docs解压 tar.gz 文件 tar -xzvf archive.tar.gz查看归档内容 tar -tvf archive.tar | more解压到指定目录 tar -xzvf archive.tar.gz -C /target/path【文件后缀规范】.tar 纯归档.tar.gz 归档gzip压缩也写作 .tgz.tar.bz2 归档bzip2压缩五、知识框架总览图思维导图结构Bash Shell 系统管理命令│├── ① 进程管理│ ├── ps静态快照│ │ ├── -ef全系统完整格式│ │ └── auxBSD风格│ ├── top实时监控│ │ ├── 负载均值1/5/15分钟│ │ ├── CPU/内存状态│ │ └── 交互操作u, E, P, M│ └── kill终止进程│ ├── TERM(15) —— 优雅终止│ └── KILL(9) —— 强制终止慎用│├── ② 磁盘与存储│ ├── mount / umount挂载/卸载│ ├── df -h全局磁盘空间│ ├── du -sh目录大小│ └── lsof查看文件占用进程│├── ③ 数据处理│ ├── sort排序│ │ ├── -n数值排序│ │ ├── -r降序│ │ ├── -t / -k按字段排序│ │ └── -u去重│ └── grep搜索│ ├── -v反向│ ├── -n行号│ ├── -c计数│ ├── -e多模式│ ├── -i忽略大小写│ └── 正则表达式支持│└── ④ 压缩与归档├── gzip / gunzip单文件压缩└── tar打包归档├── -cvf创建├── -xzvf解压 .tar.gz├── -czvf创建 .tar.gz└── -tvf查看内容六、实践心得与常见坑点总结6.1 需要特别注意的问题1. ps 与 top 的区别ps 是静态瞬间top 是动态实时。排查瞬时问题用 ps持续监控用 top。2. kill -9 的滥用风险强制结束可能导致文件损坏或数据丢失。先尝试 killTERM无效再用 -9。3. sort 的数字坑默认按字符排序10 排在 2 前面。处理数值时必须加 -n。4. grep 正则中的特殊字符如 . * [] 等需要转义或使用 -F固定字符串模式。5. 挂载设备前必须存在挂载点目录若目录不存在需先用 mkdir 创建。6. 卸载设备前务必检查占用用 lsof 或 fuser 确认无进程使用。6.2 日常实用组合技# 查找占用CPU最高的5个进程ps aux --sort-%cpu | head -6# 在日志中查找错误并统计行数grep -c ERROR /var/log/syslog# 查找大文件100M并排序find / -type f -size 100M -exec ls -lh {} \; | sort -k5 -hr# 打包并排除指定目录tar -czvf backup.tar.gz --excludelogs /home/project
返回列表