Debian系统下如何让ss命令输出格式更易读?
优化ss命令输出可读性的实用技巧
我之前也被ss的默认输出格式坑过!尤其是进程名较长时自动换行成两行,或者直接执行列不对齐的问题,确实头疼。这里分享几个亲测有效的方法,帮你把输出变得清爽易读:
强制单行输出+自动列对齐
直接给ss加--nowrap参数就能解决换行问题,它会禁止输出内容自动换行,同时让列尽可能对齐。不管是直接执行还是管道到less/more,每条结果都保持单行,列也规整:ss -anptu --nowrap用column命令自动对齐所有列
如果还是觉得列不够整齐,可以把ss的输出管道给column -t,它会自动识别列分隔符(空格)并重新对齐所有列,效果立竿见影:ss -anptu --nowrap | column -t要是不想加
--nowrap,也可以直接用ss -anptu | column -t,不过遇到长进程名可能还是会有小瑕疵,结合--nowrap更稳妥。自定义输出字段,精简信息
如果你不需要ss默认的所有字段,可以用-o参数指定要显示的内容,比如只保留协议、端口、进程ID和进程名:ss -tulpn -o state,sport,dport,pid,process这样输出会更简洁,列也更容易对齐。另外
ss -tulpn其实是ss -anptu的常用简化写法(t=TCP、u=UDP、l=监听状态、p=进程信息、n=数字格式),输出本身就相对紧凑。用awk定制格式化输出
要是需要更个性化的格式,比如固定列宽、合并字段,可以用awk来处理。比如把原来两行的结果合并成一行并对齐:ss -anptu | awk 'NR%2==1 {prev=$0} NR%2==0 {printf "%-70s %s\n", prev, $0}'或者针对
--nowrap的输出,手动指定每列的宽度:ss -anptu --nowrap | awk '{printf "%-12s %-35s %-25s %-18s\n", $1, $5, $6, $7}'你可以根据自己的需求调整字段位置和宽度数值。
内容的提问来源于stack exchange,提问作者Gregory MOUSSAT
相关产品推荐
相关产品推荐

