Folgendes könnte hilfreich sein, um die Ausgabe zu ändern:
ss -ltunp | column -t
Warum usw.
ss
, Teil von iproute2 Utility-Sammlung im Linux-Kernel, verwendet ein ioctl() Anfrage, um die aktuelle Breite des Terminals zu erhalten.
Jedoch; die gesamte Breite wird für «other» verwendet Felder und das Prozessfeld werden in die nächste Zeile gequetscht.
Sie können dies zum Beispiel anzeigen (wenn Sie ein begrenztes mit auf dem Terminal haben):
script ss.txt
ss -nlup4
exit
Dann erweitern Ihr Terminalfenster und cat ss.txt
.
Der Grund warum
ss -nulp4 | cat -A
«funktioniert» liegt daran, dass das Dienstprogramm erkennt, ob es in ein tty schreibt oder nicht:
if (isatty(STDOUT_FILENO)) {
}
Wie Sie aus der vorherigen Zeile im Quellcode sehen können, ist die Standardbreite auf 80 eingestellt. Wenn Ihr Terminal also beispielsweise 130 Spalten hat und Sie Folgendes tun:
ss -nulp4 | cat
es erkennt, dass die Ausgabe nicht an ein tty (sondern an eine Pipe) und das andere geht Felder sind in 80 Spalten vollgestopft, während das Prozessfeld wird nach diesen 80 Spalten geschrieben. Aber da Ihr Terminal breiter ist dann 80 Spalten und hat Platz für den Vorgangseintrag wird er in einer Zeile angezeigt.
Dasselbe gilt zum Beispiel für:
ss -nulp4 > ss.txt
Wie kann ich «meine bevorzugte Formatierung erreichen» Ein wahrscheinlich ungeeigneter Weg ist, etwas in die Richtung zu tun (je nach Terminal):
stty cols 100
ss -nlup4