在bash中获取进程的用户名和进程ID

时间:2014-02-12 12:42:06

标签: bash ps

我正在编写一个bash脚本,我需要找出进程的userID。举个例子,让这个过程成为bash本身。

我尝试ps aux | grep ba[s]h,但返回了以下内容:

1000      2745  0.0  0.1  28360  5440 pts/1    Ss   10:11   0:01 bash

我看到显示了用户ID 1000,但我想要用户名。

3 个答案:

答案 0 :(得分:15)

如果用户名超过8个字符,则会发生这种情况(或) ID没有名称。但是,如果您想要ps输出中的用户名,请尝试使用

ps -eo uname:20,pid,pcpu,pmem,sz,tty,stat,time,cmd | grep '[b]ash'

答案 1 :(得分:0)

这是gedit过程的一个例子

grep -w Pid /proc/$(pidof gedit)/status | cut -f 2

答案 2 :(得分:0)

到目前为止,我发现的最短方法($ PID-检查的进程的ID):

ps -p $PID -o euid=