前戏
对于Java程序员来说,经常需要查看运行中的Java进程,命令ps -ef | grep java
提供了很详细的进程信息,相比之下jps
的输出要简洁一些。如果你只需要查看进程名字和进程号,jps
是个很不错的选择。
然而,这个输出实在是杂乱无章,对于我等重度强迫症患者,不优化它简直天理难容。
过程
- 过滤掉Jps进程
grep -v Jps
- 将进程名与进程号位置掉转
awk '{print $2 " " $1}'
按照进程名排序
sort
这样看起来已经好多了,不过强迫症可没那么容易满足,继续……
再把进程号和进程名掉换一下位置
awk '{printf "%s %s\n", $2, $1}'
怎么感觉又不顺眼了呢?Be patient,we almost there!
给进程号一个固定长度
awk '{printf "%8s %s\n", $2, $1}'
Very good!强迫症已经基本痊愈了!
再添加个行号不是更完美?
awk '{printf "%2d %8s %s\n", NR, $2, $1}'
好了,就这样!Perfect!不过,每次都要输入这么长一串?No way!
高潮
在
.bashrc
中为jps
添加alias
,注意要对特殊符号做转义。source .bashrc
使之生效。检验结果:
大功告成!
回味
- 学习
grep
以及zgrep
的用法 - 学习
awk
的print
和printf
的用法 awk
打印行号:print NR
awk
打印整行:print $0