Infrastructure at your Service

Oracle Team

List usernames instead of uids with the ps command for long usernames

By William Sescu

Have your ever faced such a situation. You have usernames in your /etc/passwd file with more than 8 characters. This is no problem for Linux at all, usernames may be up to 32 characters long, only your ps output might look a little scrambled.

It shows you the uid instead of the username like in the following example:

$ id

uid=20001(longuser01) gid=10002(oinstall) groups=10002(oinstall)

$ sleep 1000000 &

$ ps -ef | grep sleep | grep -v grep

20001    14069 11739  0 14:11 pts/0    00:00:00 sleep 1000000

 

But you want to see the username instead of the uid. The workaround is

  • Don’t use more than eight characters for your usernames  🙂
  • Or …. format your ps output the right way

You could use the following alias to get the job done.

$ alias psx='export PS_FORMAT="user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command"; ps ax'

$ psx | grep sleep | grep -v grep

longuser01 14069  0.0  58940 520 pts/0 S 14:11:50 sleep 1000000

 

Now it looks better.

Cheers, William

One Comment

  • The Veritable Bugeater says:

    This is very helpful! But this solution has a side effect. The “export” causes “PS_FORMAT” to affect all subsequent “ps” commands. A simplification that doesn’t have this side effect and is shell agnostic would be:

    % env PS_FORMAT=’user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command’ ps ax

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Oracle Team
Oracle Team