Linux 与 Bash编程作业

作业要求

  1. 登录 Linux 系统:
  • 学员练习系统:账号密码参考入学须知贴。
  1. 完成以下操作
  2. 创建新目录。
  3. 切换到新目录下。
  4. 创建新文件,在新文件中添加内容。
  5. 查看新文件中的内容。
  6. 修改新文件权限为可读、可写、可执行。
  7. 查看当前目录。
  8. 查询 Linux 系统负载与进程。
  9. 查询 Linux 系统内存使用数据并保存到文件中。
  10. 统计内存数据文件的字节数。
  11. 对内存数据文件的每一行按 ASCII 码值降序排列并去重。
  12. 查询 Linux 系统进程列表快照。
  13. 统计 /home 目录下不同用户的普通文件的总数是多少。
  14. 统计 netstat -anp 状态为 LISTEN 和 CONNECT 的连接数量分别是多少。

2. 完成以下操作

  1. 创建新目录。
  2. 切换到新目录下。
  3. 创建新文件,在新文件中添加内容。
  4. 查看新文件中的内容。
  5. 修改新文件权限为可读、可写、可执行。
  6. 查看当前目录。

3. 查询 Linux 系统负载与进程。

top命令:显示系统的实时进程和负载信息。

-d 间隔时间,top -4 每隔4秒更新一次
-n 获取多次cpu的执行情况 ,top –n 4 只更新4次
-p 获取指定端口的进程的数据
-b 批处理模式
Tasks:进程总数
running:正在运行的进程数
sleeping:睡眠的进程数
stopped:停止的进程数
zombie:僵尸进程数

Cpu:

us(user time):用户空间占用 CPU 百分比
sy(system time):内核空间占用 CPU 百分比
ni(nice):改变过优先级的进程占用CPU的百分比
id(idle):空闲CPU百分比
wa:IO等待占用CPU的百分比
hi:硬中断(Hardware IRQ)占用CPU的百分比
si:软中断(Software Interrupts)占用CPU的百分比

进程

PR:进程优先级
NI:nice值。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:进程使用的、未被换出的物理内存大小,单位kb
SHR:共享内存大小,单位kb
S:进程状态:D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:命令名/命令行



4. 查询 Linux 系统内存使用数据并保存到文件中。

free 命令:显示系统的内存使用情况。
-m 选项表示以 MB(兆字节)为单位显示内存。

5. 统计内存数据文件的字节数。

6. 对内存数据文件的每一行按 ASCII 码值降序排列并去重。

sort命令:排序
-r :降序排序
-u: 去重


awk:

  • 把每一行拆成字符数组 a
  • 使用 asort(a) 排序(默认升序),然后从尾到头打印,实现降序
    sort | uniq:
  • 对所有行排序
  • 然后去除重复行

7. 查询 Linux 系统进程列表快照。

  • ps 命令:显示当前运行的进程。
  • aux 选项:显示所有用户的所有进程,包括详细信息。

8. 统计 /home 目录下不同用户的普通文件的总数是多少。

find /home -type f | wc -l
find :在指定目录下查找文件。
-type f: 仅查找普通文件。
wc -l:统计文件总数(即行数)


9. 统计 netstat -anp 状态为 LISTEN 和 CONNECT 的连接数量分别是多少。

netstat -anp | grep LISTEN | wc -l
netstat -anp | grep CONNECT | wc -l