如何显示所有命令的标题?

如何显示所有命令的标题?

我在谷歌上搜索过几次,但没有一个能回答我的问题。

我们有没有通用的方法来显示 Ubuntu 中所有命令的标题,而无需安装额外的软件包?像ps -ef&这样的命令lsdu

例子

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你的命令
  • &&帮助您在一行中执行两个命令:
    1. 它显示标题行得益于head -1
    2. 它显示命令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

相关内容