我在谷歌上搜索过几次,但没有一个能回答我的问题。
我们有没有通用的方法来显示 Ubuntu 中所有命令的标题,而无需安装额外的软件包?像ps -ef
&这样的命令ls
。du
例子
ps -ef | egrep "PID"
UID PID PPID C STIME TTY TIME CMD
root 18208 21629 0 02:49 pts/0 00:00:00 egrep --color=auto PID
在上面的例子中,我使用了获取标题,当使用egrep
其他单词时,上述命令不会打印标题grep
下面的例子
ps -ef | egrep "nrpe"
nobody 8262 1 0 01:49 ? 00:00:00 /usr/bin/nrpe -c /etc/nrpe.cfg -d
root 18225 21629 0 02:49 pts/0 00:00:00 egrep --color=auto nrpe
PS:我知道的功能,egrep
但它并不适用于所有地方获取标题。
短暂性脑缺血发作
答案1
使用双管道命令,head
ps -el | head -1 && ps -el | grep bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1001 2680 2671 0 80 0 - 7532 wait pts/0 00:00:00 bash
0 S 1001 3673 2671 0 80 0 - 7499 wait pts/1 00:00:00 bash
4 S 1000 3694 3681 0 80 0 - 7469 - pts/1 00:00:00 bash
0 S 1001 6825 2671 0 80 0 - 7499 wait pts/2 00:00:00 bash
解释 :
ps -el
是你将得到结果的命令head -1
将打印命令显示的第一行(此处为ps -el
),因此它将是标题行;选项的数字-1
只是说明必须显示多少行,因此,如果您的标题是 2 行,请-2
使用- 这是
grep
你的命令 &&
帮助您在一行中执行两个命令:- 它显示标题行得益于
head -1
- 它显示命令
ps
过滤的结果grep
- 它显示标题行得益于
此外,还有一种缩写形式(等效):
ps -el | ( head -1 && grep bash )
注意:如果您还想在末尾添加标题行(由于某些结果),只需添加另一个&&
语句,在 1 行中执行 3 个命令,如下所示:
ps -el | head -1 && ps -el | grep bash && ps -el | head -1
结果 :
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1001 2680 2671 0 80 0 - 7532 wait pts/0 00:00:00 bash
0 S 1001 3673 2671 0 80 0 - 7499 wait pts/1 00:00:00 bash
4 S 1000 3694 3681 0 80 0 - 7469 - pts/1 00:00:00 bash
0 S 1001 6825 2671 0 80 0 - 7499 wait pts/2 00:00:00 bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD