who:确定有谁在系统中

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

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

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

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

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

uptime:已开机时间(年龄)

  • 系统自启动后到现在的运行时间
  • 当前登录入系统的用户数
  • 近期1分钟,5分钟,15分钟内系统CPU的负载
    • 平均调度队列长度
1
2
$ 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时间
top

命令 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)
1
2
3
4
5
6
7
8
9
10
11
12
$ 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:了解内存使用情况

1
2
3
4
$ 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
1
2
3
4
5
6
$ 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