Shell习题03——所有进程占用内存大小的和

"本文介绍了如何使用bash脚本结合ps命令、grep和awk工具,统计Linux系统中所有进程占用内存的总和。通过for循环遍历ps aux命令输出的内存使用情况,并进行加法运算,最终得出总和。脚本中运用了grep -v排除指定文本行,awk '{print $6}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目要求

写一个脚本计算一下linux系统所有进程占用内存大小的和。

核心要点
  • ps命令用法
  • for循环
  • 加法运算
参考答案
#!/bin/bash
sum=0
for n in `ps aux |grep -v 'TIME COMMAND'|awk '{print $6}'`
do
    sum=$[$sum+$n]
done
echo $sum

ps aux 查看进程

grep -v 显示不包含匹配文本的所有行

awk ‘{print $6}’ 输出第六个参数

执行ps aux命令后的部分结果,grep -v 'TIME COMMAND’不匹配包含这个字符串的所有行

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  43572  3928 ?        Ss    2020   2:40 /usr/lib/systemd/systemd --switc
root         2  0.0  0.0      0     0 ?        S     2020   0:01 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<    2020   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S     2020   1:40 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S     2020   0:00 [migration/0]

awk’{print $6}'输出第六参数

3928
0
0
0
0

然后通过for循环计算这些值最后结果是245148

ps命令:查看进程
语法格式
ps [参数选项]

常用的参数选项

-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
for循环
语法格式
for var in item1 item2 ... itemN 
do 
    command1 
    command2 
    ... 
    commandN 
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值