基于tcp端口的列表处理



帮助我设置一个表示此命令的别名:

ps -u -p $(fuser 5432/tcp 2>/dev/null)
#output:
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres  423310  0.0  0.1 506528 14544 ?        S    Jun25   1:48 /usr/pgsql-11/bin/postgres

我尝试过:alias p2p='ps -u -p $(fuser $1 2>/dev/null)',但不起作用

试着用这样的bash脚本编写命令:

#!/bin/bash
pid=$1
ps -u -p $(fuser $pid 2>/dev/null)

然后创建您的别名,如:

alias pr='yourscript.sh'

A最后只需调用您的别名,如:

pr 5432/tcp

这不是一个很好的做法,但对你来说应该有效。

希望得到帮助
问候

看起来我找到了一些有效的方法。

就像@Barmar评论的那样,一个函数是有效的,但fuser坚持以书面形式错误输出。

所以我做了一个function和一个使fuser输出的stderr静音的alias

function p2pfunc() { PID=$(fuser $@); echo "PID =$PID"; ps -u -p $PID; }
alias p2p='p2pfunc $@ 2>/dev/null'
p2p 5432/tcp 5433/tcp
PID =  3055 423310
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres    3055  0.0  0.1 506664 12120 ?        S    May16   4:03 /usr/pgsql-11/bin/postgres
postgres  423310  0.0  0.1 506528 14544 ?        S    Jun25   1:48 /usr/pgsql-11/bin/postgres

最新更新