La suivante peut être utile pour modifier la sortie :
ss -ltunp | column -t
Quant à savoir pourquoi etc.
ss
, partie de iproute2 collection d'utilitaires dans le noyau Linux, utilise un ioctl() demande d'obtenir la largeur actuelle du terminal.
Cependant; toute la largeur est utilisée pour « autre » champs et le champ de processus sont pressés sur la ligne suivante.
Vous pouvez afficher cela par exemple (lorsque vous avez un accès limité au terminal) :
script ss.txt
ss -nlup4
exit
Puis élargissez votre fenêtre de terminal et cat ss.txt
.
La raison pourquoi
ss -nulp4 | cat -A
"fonctionne" est parce que l'utilitaire reconnaît s'il écrit ou non sur un tty :
if (isatty(STDOUT_FILENO)) {
}
Comme vous pouvez le voir sur la ligne précédente du code source, la largeur par défaut est définie sur 80. Ainsi, si votre terminal est à 130 colonnes et que vous le faites :
ss -nulp4 | cat
il reconnaît que la sortie n'est pas vers un tty (mais vers un tube) et l'autre les champs sont entassés dans 80 colonnes, tandis que le champ de processus est écrit après ces 80 colonnes. Mais comme votre terminal est plus large puis 80 colonnes et a de la place pour l'entrée de processus, il est affiché sur une ligne.
Il en va de même par exemple :
ss -nulp4 > ss.txt
Quant à savoir comment "réaliser mon formatage préféré" une manière probablement inappropriée est de faire quelque chose dans la direction de (selon le terminal) :
stty cols 100
ss -nlup4