1 回答
TA贡献1712条经验 获得超3个赞
第一行 #!/bin/bash 指定用bash来执行该shell脚本
第二行 echo...简单打印出This is a private server,please leave,thanke you!这句话
第三行 echo...简单打印出Welcome $USER To Login To This Server! 其中$USER会被替换为执行该脚本的用户名
第四行 who命令打印出当前登陆该服务器的所有用户 每个用户一行 “|” 是管道操作 把who操作的结果传给wc -l。而wc -l 统计出一共多少行 也就是有多少用户 最后赋值给LoginUserNum,所以LoginUserNum表示当前登陆的用户数。
第五行 ps aux列出当前所有的进程信息 每个进程占一行 管道给wc -l统计得到总的进程数,由于 ps aux也会生成一个进程 所以要减到自身 expr做算术的减法 得到实际的总进程数 最后赋值给OpenProcesNum
第六行 free -m命令得到下面类似的输出,管道给grep Mem:,grep是逐行查找命令,在这里找到“Mem:”所在的行 在经管道传给awk,awk默认按空格将每行切分成多个记录 每个记录用$i表示,例如$1=Mem:$2=3947 $3=3886....所以print $4也就是打印61 也就是mem对应的free部分 赋值给FreeMem
第七行grep -找到 -所在的行 也即-/+ buffers/cache:那行 打印$3也就是图中的2158 对应free部分 赋值给FreeBuffers
第八行类似 grep -找到 -所在的行 也即-/+ buffers/cache:那行 复制给FreeCache(不懂为啥是$4)
第九行类似 grep Swap:找到Swap:所在行 打印$4也即图中9629 对应free部分 赋值给FreeSwap
第十到十五行echo... 将前面赋值的结果分别打印出来
###########我是分割线####################
其中的命令 who、who|wc -l、ps aux、free -m、 free -m | grep Mem: 都可以在shell里自己试试 看看输出是什么 会直观一点
添加回答
举报