Nar*_*asK 27 linux command-line command ss
使用sswith-p选项时,user/pid/fd列会跳到特定行下方。例如,这就是我实际看到的:
# ss -nulp4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:20000 *:*
users:(("perl",pid=9316,fd=6))
UNCONN 0 0 *:10000 *:*
users:(("perl",pid=9277,fd=6))
UNCONN 0 0 192.168.100.10:53 *:*
users:(("named",pid=95,fd=517),("named",pid=95,fd=516))
UNCONN 0 0 127.0.0.1:53 *:*
users:(("named",pid=95,fd=515),("named",pid=95,fd=514))
Run Code Online (Sandbox Code Playgroud)
首选输出格式:
# ss -nulp4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:20000 *:* users:(("perl",pid=9316,fd=6))
UNCONN 0 0 *:10000 *:* users:(("perl",pid=9277,fd=6))
UNCONN 0 0 192.168.100.10:53 *:* users:(("named",pid=95,fd=517),("named",pid=95,fd=516))
UNCONN 0 0 127.0.0.1:53 *:* users:(("named",pid=95,fd=515),("named",pid=95,fd=514))
Run Code Online (Sandbox Code Playgroud)
为了确认没有换行符,我试过这个:
# ss -nulp4 | cat -A
State Recv-Q Send-Q Local Address:Port Peer Address:Port $
UNCONN 0 0 *:20000 *:* users:(("perl",pid=9316,fd=6))$
UNCONN 0 0 *:10000 *:* users:(("perl",pid=9277,fd=6))$
UNCONN 0 0 192.168.100.10:53 *:* users:(("named",pid=95,fd=517),("named",pid=95,fd=516))$
UNCONN 0 0 127.0.0.1:53 *:* users:(("named",pid=95,fd=515),("named",pid=95,fd=514))$
Run Code Online (Sandbox Code Playgroud)
事实上你可以看到没有,但现在,奇怪的是,输出格式是我想要的方式。有人可以解释这里发生了什么吗?如何实现我喜欢的格式?
这是阻止我从 迁移netstat到的唯一原因ss。
Run*_*ium 16
至于为什么等等。
ss是 Linux 内核中iproute2实用程序集合的一部分,它使用ioctl()请求来获取终端的当前宽度。
然而; 整个宽度用于“其他”字段,过程字段被挤压到下一行。
例如,您可以通过以下方式查看(当在终端上有限制时):
script ss.txt
ss -nlup4
exit
Run Code Online (Sandbox Code Playgroud)
然后扩大您的终端窗口和cat ss.txt.
原因为何
ss -nulp4 | cat -A
Run Code Online (Sandbox Code Playgroud)
«works»是因为该实用程序识别它是否写入 tty:
if (isatty(STDOUT_FILENO)) {
}
Run Code Online (Sandbox Code Playgroud)
正如您从源代码中的前一行中看到的,默认宽度设置为 80。因此,如果您的终端位于 130 列并且您执行以下操作:
ss -nulp4 | cat
Run Code Online (Sandbox Code Playgroud)
它识别输出不是到 tty(而是到管道)并且其他字段被塞进 80 列,而过程字段被写入这 80 列之后。但是由于您的终端比80 列更宽,并且有空间用于流程条目,因此它显示在一行中。
例如:
ss -nulp4 > ss.txt
Run Code Online (Sandbox Code Playgroud)
至于如何“实现我的首选格式”,一种可能不合适的方法是在(取决于终端)的方向上做一些事情:
stty cols 100
ss -nlup4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9364 次 |
| 最近记录: |