zoukankan      html  css  js  c++  java
  • ps命令查看进程指定项目信息、用户名过长显示UID

    有次一个在使用ps命令时,发现部分用户显示的是用户名,有些用户显示的是UID,那是因为用户名长度超过8位的;也就是说ps命令用户名列默认只能显示8位(含8位)的用户名,超过8位就显示UID,如何让长度变大呢?
     
    创建了两个账户,分别是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列显示宽度,列名是9位,那么用户名就可以是9位,以此类推……
     
    1. [root@server2 ~]# ps -o ruser=user9wei9 -e -o pid,ppid,c,stime,tty,time,cmd
    2. user9wei9 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=user9wei9 -e -o pid,ppid,c,stime,tty,time,cmd

    UID列名被改为user9wei9,长度是9位,这样就能显示9位的用户名了。

    如果你需要查看用户uid,-o uid即可。

    ps [选项]
    下面对命令选项进行说明:
    -e   显示所有进程。
    -f    全格式。
    -h   不显示标题。
    -l    长格式。
    -w  宽输出。
    a    显示终端上的所有进程,包括其他用户的进程。
    r    只显示正在运行的进程。

    u  以用户为主的格式来显示程序状况。

    x     显示所有程序,不以终端机来区分。

    更多命令:

    ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm
    $ ps -e -o pid,uname,pcpu,pmem,comm
    $ ps --ppid 28208
    $ ps aux --sort=-pcpu,+pmem
    $ ps aux --sort=-pcpu,+pmem | head 5
    $ ps -f -u nova,neutron
  • 相关阅读:
    C# 获取Enum 描述
    VC++ Vector取数据,慎用memcpy
    VC++ Char * 保存成bmp和JPEG
    VC++ 应用程序调用MFC DLL里的窗体
    yolov3.cfg参数说明及调参经验
    WIN10+YOLOv4,windows上完美执行YOLOv4目标检测
    Nvdia GPU
    C++ 编程习惯(提高速度)
    VC++发布Dll如何区分Debug和Release
    _CRT_SECURE_NO_WARNINGS错误提示,解决办法
  • 原文地址:https://www.cnblogs.com/crxis/p/9192277.html
Copyright © 2011-2022 走看看