Linux Shell 编程基础 —— 更多 bash shell 命令 课堂笔记

Linux  Shell 编程基础 —— 更多 bash shell 命令 课堂笔记

Linux & Shell 编程基础 —— 更多 bash shell 命令 课堂笔记

一、进程管理

进程:系统中正在运行的程序。

1. ps 静态查看进程(快照)

基础用法

输出字段:PID (进程 ID)、TTY (终端)、TIME (占用 CPU 时长)、CMD (程序名)

完整查看所有进程 ps -ef

参数说明:

-e:显示系统全部进程

-f:扩展完整信息

输出字段含义: UID:进程所属用户 PID:进程 ID PPID:父进程 ID C:CPU 占用 STIME:进程启动时间 TTY:终端设备 TIME:累计 CPU 时间 CMD:启动命令

2. top 实时动态监控进程

输出分区解读

  1. 第一行:系统整体状态top - 16:00:57 up 63 days, 52 min, 6 users,load average: 8.28, 8.23, 8.28当前时间、开机时长、登录用户、1/5/15 分钟平均负载

  2. 第二行 Tasks:进程总览 总进程数、运行、休眠、停止、僵尸进程 (Z)

  3. 第三行 Cpu (s):CPU 占用拆分 用户态、系统态、空闲、等待 IO 等占比

  4. 四五行 Mem / Swap:内存、交换分区总使用

  5. 进程列表字段 PID:进程 ID USER:运行用户 PR/NI:优先级、nice 值 VIRT:虚拟内存 RES:物理内存 SHR:共享内存 S:进程状态 (R 运行 / S 休眠 / Z 僵尸 / T 停止) % CPU / % MEM:CPU、内存占用百分比 TIME+:总 CPU 运行时长 COMMAND:执行程序

3. 进程信号、终止进程

常用进程信号表

1 HUP 挂起 2 INT 中断(Ctrl+C) 3 QUIT 退出 9 KILL 强制无条件终止(暴力杀进程) 15 TERM 正常终止(默认 kill 信号) 17 STOP 暂停进程 18 TSTP 后台暂停 19 CONT 恢复暂停进程

kill 按 PID 杀进程

kill 1234 # 默认发送15 TERM kill -9 1234 # 强制杀死,发送9 KILL信号 kill -s KILL 1234

killall 按程序名批量杀进程

killall python killall python3

二、磁盘空间管理

1. mount 挂载存储设备

直接查看当前所有挂载

含义:/dev/sda3 挂载到根目录 /,文件系统 xfs,可读可写

手动挂载设备(需要 root/sudo)

语法:mount -t 文件系统类型 设备路径 挂载点

常用参数:

-r只读挂载

-w读写挂载(默认)

-o ro/rw/user额外挂载选项

-loop挂载镜像文件

2. umount 卸载设备

不能直接拔 U 盘,必须先卸载;设备被占用会卸载失败

lsof 查看占用设备的进程

卸载提示设备繁忙时使用:

3. df 查看磁盘分区整体使用

4. du 查看目录 / 文件占用空间

默认按磁盘块输出,常用参数:

-h易读单位

-s只显示总大小(汇总)

-c输出所有文件 + 总计

5. U 盘完整挂载实操全套命令

三、数据处理工具 sort & grep

1. sort 文件排序

测试文件 test_sort.txt

输出:11 12 3

常用参数

-n按数字数值排序

-r倒序(降序)

-M识别英文月份排序

2. grep 文本匹配检索

作用:匹配包含指定字符串的行 测试文件 test_sortn.txt 内容:1 2 10 21

四、压缩与归档

1. gzip 单文件压缩解压

2. tar 归档打包(可配合 gzip 压缩)

核心参数

-c创建归档包

-x解压提取文件

-f指定归档文件名(必须放最后)

-v打印过程详情

-z使用 gzip 压缩(打包后.tgz)

五、本章小结

  1. 进程监控:ps 静态快照、top 实时监控;kill/killall 管理进程,9 号信号强制杀进程
  2. 磁盘管理:mount 挂载、umount 卸载;df 查看分区总占用,du 查看目录占用;U 盘挂载完整流程 lsblk+mount+umount
  3. 文本处理:sort 实现数据排序,grep 检索匹配文本
  4. 文件归档压缩:gzip 单文件压缩;tar 打包目录,搭配 - z 生成 tgz 压缩包

练习1:

1. 创建一个文本文件内容为小组成员的生日(数字表示或英语月份+日期均可) 使用sort命令对生日进行排序
2. 使用grep命令输出七月的 生日(如果没有选择其他 月份)

练习2:

1. 将练习2的文件进行压缩,再解压。
2. 将练习2所在的文件夹进行压缩并解压,试试解压后的文件夹下的文件能否访问。