题目要求
写一个脚本计算一下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