who:确定有谁在系统中

命令who:列出当前已登录入系统的用户

第一列:用户名;第二列:终端设备的设备文件名

设备在文件系统中有一个文件名(同普通磁盘文件不同的是文件类型属于特殊文件),设备文件一般放于目录/dev

  • 命令tty可以打印出当前终端的设备文件名
  • 命令who am i可以列出当前终端上的登录用户
  • 命令whoami仅列出当前终端上的登录用户

例如 :以root用户登录系统,然后执行 su - holger 切换到 holger 用户下,此时 who am i 显示的是root用户,而 whoami 则显示 holger 用户。

uptime:已开机时间(年龄)

  • 系统自启动后到现在的运行时间
  • 当前登录入系统的用户数
  • 近期1分钟,5分钟,15分钟内系统CPU的负载
    • 平均调度队列长度
$ uptime
 22:23:49 up  6:58,  1 user,  load average: 0.70, 0.75, 0.77

top:列出资源占用排名靠前的进程

  • VIRT进程逻辑地址空间大小(virtual)
  • RES驻留内存数(Resident),也就是占用物理内存数
  • SHR与其他进程共享的内存数(share)
  • %CPU占用CPU百分比,%MEM占用内存百分比
  • TIME+占用的CPU时间

img

命令 ps

功能:查阅进程状态(process status)

实际上就是将内核中进程状态信息有选择地打印出来

选项:用于控制列表的行数(进程范围)和列数(每进程列出的属性内容)

  • 无选项:只列出在当前终端上启动的进程
    • 列出的项目有:PID,TTY,TIME,COMMAND
  • e选项:列出系统中所有的进程(进程范围)
  • f选项:以full格式列出每一个进程(控制列的数目)
  • l选项:以long格式列出每一个进程(控制列的数目)

属性:

  • UID:用户ID(注册名)
  • PID:进程ID
  • PPID:父进程的
  • PIDC:CPU占用指数,最近一段时间(秒级别)进程占用CPU情况
  • STIME:启动时间
  • SZ:进程逻辑内存大小(Size)
  • TTY:终端的名字
  • COMMAND:命令名
  • WCHAN:进程在内核的何处睡眠(Wait Channel)
  • TIME:累计执行时间(占用CPU的时间)
  • PRI:优先级
  • S:状态,S(Sleep),R(Run), Z(Zombie)
$ ps
  PID TTY          TIME CMD
 1314 pts/1    00:00:00 bash
14953 pts/1    00:00:00 ps
$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
holger    1314  1301  0 21:51 pts/1    00:00:00 /bin/bash
holger   14956  1314  0 22:30 pts/1    00:00:00 ps -f
$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  1314  1301  0  80   0 -  2789 do_wai pts/1    00:00:00 bash
4 R  1000 14965  1314  0  80   0 -  2897 -      pts/1    00:00:00 ps

free:了解内存使用情况

$ free
              total        used        free      shared  buff/cache   available
Mem:        7121220     4143332      474140      380300     2503748     2310272
Swap:       8080380      121436     7958944
  • 内存总量6.8GB,空闲463MB
    Linux为提高效率,利用程序暂时不用的内存,缓冲读写过的磁盘信息。
    当前有2.4GB的buffer/cache
  • 不计buffers/cache,系统有实际可利用资源2.2GB
  • 打印了磁盘Swap区的使用情况

vmstat:了解系统负载

  • Procs r等待运行的进程数;b处在非中断睡眠状态的进程数
  • Memory free空闲的内存,buff/cache用做缓存的内存数
  • Swap磁盘/内存的交换页数量,单位:KB/秒
  • IO块设备I/O块数,单位:块/秒
  • System
    • in 每秒的硬件中断数(interrupt),包括时钟中断
    • cs 每秒的环境切换次数(contextswitch)
  • CPU 的总使用率 us=user,sy=system,id=idle,wa=wait for disk I/O
$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 134748 518644  77972 2338216    0    2    70    86   43  208 10  4 86  0  0
 0  0 134748 526920  77972 2338216    0    0     0     0 3299 5931  1  1 98  0  0
 0  0 134748 520220  77988 2338136    0    0     0    72 3978 7908  3  1 96  0  0