帮助我设置一个表示此命令的别名:
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