El siguiente podría ser útil para cambiar la salida:
ss -ltunp | column -t
En cuanto a por qué, etc.
ss
, parte de iproute2 colección de utilidades en el kernel de Linux, utiliza un ioctl() solicitud para obtener el ancho actual de la terminal.
Sin embargo; todo el ancho se usa para el «otro» los campos y el campo de proceso se comprimen en la siguiente línea.
Puede ver esto, por ejemplo (cuando tiene un terminal limitado):
script ss.txt
ss -nlup4
exit
Luego ampliar su ventana de terminal y cat ss.txt
.
La razón por qué
ss -nulp4 | cat -A
«obras» es porque la utilidad reconoce si escribe en un tty o no:
if (isatty(STDOUT_FILENO)) {
}
Como puede ver en la línea anterior en el código fuente, el ancho predeterminado está establecido en 80. Por lo tanto, si su terminal tiene, digamos, 130 columnas y lo hace:
ss -nulp4 | cat
reconoce que la salida no es a un tty (sino a una tubería) y el otro los campos están agrupados en 80 columnas, mientras que el campo de proceso se escribe después de estas 80 columnas. Pero como tu terminal es más ancha luego 80 columnas y tiene espacio para la entrada del proceso, se muestra en una línea.
Lo mismo ocurre por ejemplo:
ss -nulp4 > ss.txt
En cuanto a cómo «lograr mi formato preferido» una forma probablemente inadecuada es hacer algo en la dirección de (dependiendo de la terminal):
stty cols 100
ss -nlup4