Chinaunix首页 | 论坛 | 博客
  • 博客访问: 391624
  • 博文数量: 25
  • 博客积分: 496
  • 博客等级: 下士
  • 技术积分: 815
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-01 11:18
文章分类
文章存档

2014年(2)

2013年(6)

2012年(17)

分类: LINUX

2012-07-09 08:57:36

有次一个客户在使用ps命令时,发现部分用户显示的是用户名,有些用户显示的是UID,跟我说一定要让UID列全部显示完整的用户名,没办法,客户就是上帝啊。
经过测试,发现所有只显示UID的用户名都是名字长度超过8位的账户,也就是说ps命令UID列默认只能显示8位(含8位)的用户名,超过8位就显示UID,但是ps可以自定义显示列的宽度。
再测试下结果吧:
创建了两个账户,分别是12345678(UID:505)、123456789(UID:506),用ps命令查看进程

点击(此处)折叠或打开

  1. [root@server2 ~]# ps -ef
  2. UID PID PPID C STIME TTY TIME CMD
  3. root 1 0 0 02:34 ? 00:00:00 init [3]
  4. root 2 1 0 02:34 ? 00:00:03 [migration/0]
  5. root 3 1 0 02:34 ? 00:00:00 [ksoftirqd/0]
  6. root 4 1 0 02:34 ? 00:00:03 [migration/1]
  7. root 5 1 0 02:34 ? 00:00:00 [ksoftirqd/1]
  8. root 6 1 0 02:34 ? 00:00:09 [events/0]
  9. root 2380 17 0 02:35 ? 00:00:00 [kmpath_handlerd]
  10. root 2402 17 0 02:35 ? 00:00:00 [kjournald]
  11. root 2425 4238 0 08:54 ? 00:00:00 sshd: root@pts/2
  12. root 2429 2425 0 08:54 pts/2 00:00:00 -bash
  13. oracle 2505 1 0 08:55 ? 00:00:00 ora_cjq0_lanv
  14. root 2580 4238 0 08:56 ? 00:00:00 sshd: 123456789 [priv]
  15. 506 2585 2580 0 08:56 ? 00:00:00 sshd: 123456789@pts/3
  16. 506 2590 2585 0 08:56 pts/3 00:00:00 -bash
  17. root 2716 4238 0 09:09 ? 00:00:00 sshd: 12345678 [priv]
  18. 12345678 2723 2716 0 09:09 ? 00:00:00 sshd: 12345678@pts/4
  19. 12345678 2730 2723 0 09:09 pts/4 00:00:00 -bash
8位用户名的账户能够显示完整的用户名,9位用户名的账户就显示了UID
 
通过修改UID列名来调整UID列显示宽度:

点击(此处)折叠或打开

  1. [root@server2 ~]# ps -o ruser=useruser9 -e -o pid,ppid,c,stime,tty,time,cmd
  2. useruser9 PID PPID C STIME TT TIME CMD
  3. root 1 0 0 02:34 ? 00:00:00 init [3]
  4. root 2 1 0 02:34 ? 00:00:03 [migration/0]
  5. oracle 588 1 0 05:25 ? 00:00:00 ora_q001_lanv
  6. root 596 17 0 02:35 ? 00:00:00 [kauditd]
  7. root 2363 4238 0 08:53 ? 00:00:00 sshd: root@pts/1
  8. root 2425 4238 0 08:54 ? 00:00:00 sshd: root@pts/2
  9. root 2429 2425 0 08:54 pts/2 00:00:00 -bash
  10. root 2580 4238 0 08:56 ? 00:00:00 sshd: 123456789 [priv]
  11. 123456789 2585 2580 0 08:56 ? 00:00:00 sshd: 123456789@pts/3
  12. 123456789 2590 2585 0 08:56 pts/3 00:00:00 -bash
  13. root 2716 4238 0 09:09 ? 00:00:00 sshd: 12345678 [priv]
  14. 12345678 2723 2716 0 09:09 ? 00:00:00 sshd: 12345678@pts/4
  15. 12345678 2730 2723 0 09:09 pts/4 00:00:00 -bash
  16. root 2807 2429 0 09:15 pts/2 00:00:00 ps -o ruser=useruser9 -e -o pid,ppid,c,stime,tty,time,cmd
UID列名被改为useruser9,这样就能显示9位的用户名了。

 
阅读(8349) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

GangLin_Lan2012-08-09 10:06:38

云杉上的蝴蝶: 哈哈,这都让你知道了,要做好系统管理员,对基本命令的各项参数选项得闲多了解下,在实际工作中往往能事半功倍!.....
是的,我在遇到这个问题的时候网上没查到相应的问题,所以写出来分享下

云杉上的蝴蝶2012-08-09 04:45:09

哈哈,这都让你知道了,要做好系统管理员,对基本命令的各项参数选项得闲多了解下,在实际工作中往往能事半功倍!