ss 命令每个结果占用 2 行

ss 命令每个结果占用 2 行

我曾经netstat -anlptu检查开放端口。
这个命令现在有点不推荐使用,所以我开始使用,ss -anptu但每个条目需要 2 行。结果并不实用。
我用的是Debian。

 

netstat -anlptu:

tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -               
tcp        0      0 192.168.0.106:xxxxx     192.0.x.y:443          ESTABLISHED 5081/firefox    

易于阅读且清晰。

 

ss -anptu:

tcp    LISTEN     0      20                                                       127.0.0.1:25                                                                           *:*
 users:(("exim4",pid=823,fd=3))
tcp    LISTEN     0      128                                                              *:22                                                                        *:*                  
 users:(("sshd",pid=807,fd=3))
tcp    ESTAB      0      272                                                  192.168.1.200:22                                                            78.224.x.y:36028              
 users:(("sshd",pid=849,fd=3),("sshd",pid=840,fd=3))
tcp    LISTEN     0      20                                                             ::1:25                                                                          :::*                  
 users:(("exim4",pid=823,fd=4))
tcp    LISTEN     0      128                                                             :::22                                                                       :::*                  
 users:(("sshd",pid=807,fd=4))

这显然不容易读懂。
有些列未对齐。

 

如果我重定向到lessmore

tcp    LISTEN     0      20     127.0.0.1:25                    *:*                   users:(("exim4",pid=823,fd=3))
tcp    LISTEN     0      128       *:22                 *:*                   users:(("sshd",pid=807,fd=3))
tcp    ESTAB      0      40     192.168.1.200:22              78.224.x.y:36028               users:(("sshd",pid=849,fd=3),("sshd",pid=840,fd=3))
tcp    LISTEN     0      20      ::1:25                   :::*                   users:(("exim4",pid=823,fd=4))
tcp    LISTEN     0      128      :::22                :::*                   users:(("sshd",pid=807,fd=4))

每个条目占一行,但列不对齐。再次阅读并不容易

 

--> 如何获得可读的输出ss

答案1

使用column。例如:

ss -anpt | column -t -x | less

我得到的输出如下:

State       Recv-Q  Send-Q  Local                       Address:Port                  Peer                                         Address:Port
LISTEN      0       100     127.0.0.1:143               0.0.0.0:*
LISTEN      0       100     0.0.0.0:465                 0.0.0.0:*
LISTEN      0       128     0.0.0.0:42449               0.0.0.0:*
LISTEN      0       10      0.0.0.0:5298                0.0.0.0:*                     users:(("pidgin",pid=30003,fd=19))

注意:我运行的终端宽度为 282 列(使用 Liberation Mono Regular 11 的 1440p 屏幕上的最大宽度终端)。 YMMV 在较窄的终端上。

column执行columnsautogen.它可以很好地将文本自动格式化为表格列。

我不确定 的原始来源column来自哪里,但在 debian 系统上,它位于bsdmainutil包中。它可能位于其他 Linux 发行版上类似名称的包中。

Package: bsdmainutils
Version: 11.1.2
Description-en: collection of more utilities from FreeBSD
 This package contains lots of small programs many people expect to find when
 they use a BSD-style Unix system.
 .
 It provides banner (as printerbanner), calendar, col, colcrt, colrm, column,
 from (as bsd-from), hexdump (or hd), look, lorder, ncal (or cal), ul, and
 write (as bsd-write).
 .
 This package used to contain whois and vacation, which are now distributed in
 their own packages. Also here was tsort, which is now in the "coreutils"
 package.

/usr/share/doc/bsdmainutils/copyright包中的文件说:

这是 4.4BSD-Lite 中的程序集合,尚未被 FSF 重写为 GNU。它是为包含在 Debian Linux 中而构建的。当此处找到的程序可从 GNU 源代码中获取时,它们将被替换。

该软件包可以根据 UCB BSD 许可证的条款重新分发:

版权所有 (C) 1980 -1998 加州大学董事会。版权所有。

相关内容