我注意到"grep"命令删除了列名。我需要根据以下命令自定义进程的输出:
ps -ef | egrep "java|mysql" | awk {'print $1, $2, $8'}
常规的"ps"(甚至带有"awk"(具有列名:UID,PID等...但是,当我添加"grep"时,列名消失了。理想情况下,我必须具有显示 4 列的"ps"输出 - PID、用户名、CMD 和内存使用情况。如何让它保留列名。
grep
命令将去除标头,因为它们不匹配。只需使用awk
并在第一行条件上匹配搜索模式。
ps -ef | awk 'NR==1{print $1,$2,$8} /java|mysql/{print $1, $2, $8}'
使用bash
的力量。
$ cat pid_top.sh
#!/bin/bash
echo "Enter String:"
read p
top -n 1 -b -p $(ps -e | grep $p | awk '{print $1}') | tail -n 2
不要忘记chmod +x pid_top.sh
制作别名或按名称运行脚本,输入一个字符串,例如,对于 Firefox 只需触发一个您将拥有并输出如下:
$ ./p*
Enter String:
fire
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
2983 bang 20 0 1605624 600168 108940 S 0,0 15,1 40:28.10 firefox