w 命令查看某一时刻用户的行为

[lvjinliang@dev_server ~]$ w
09:34:40 up 127 days, 13:49,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
lvjinlia pts/0    203.156.223.130  09:33    0.00s  0.00s  0.00s w
lvjinlia pts/2    203.156.223.130  09:34   25.00s  0.01s  0.00s sshd: lvjinliang [priv]

说明:

解释一下这个命令的输出。

  • 第一行其实和 top 命令的第一行非常类似,主要显示了系统当前时间、开机多久(up)、有多少用户登录(users),以及 1 分钟、5 分钟、15 分钟前的平均负载(load average)。

  • 第二行是项目的说明,从第三行开始每行代表一个用户。这些项目具体如下:

  1. USER:登录的用户名。
  2. TTY:登录终端。
  3. FROM:从哪个 IP 地址登录。
  4. LOGIN@:登录时间。
  5. IDLE:用户闲置时间。
  6. JCPU:和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间。
  7. PCPU:当前进程所占用的 CPU 运算时间。
  8. WHAT:当前正在运行的命令。


从 w 命令的输出中已知,Linux 服务器上已经登录了两个 root 用户,都是从远程终端 登录的,登录的来源 IP 是 203.156.223.130。

pts/0:执行 w命令

pts/2:执行 sshd 其实就是执行一个su 命令

who 用来查看系统中已经登录的用户

[lvjinliang@dev_server ~]$ who
lvjinliang pts/0        2019-05-22 09:33 (203.156.223.130)
lvjinliang pts/2        2019-05-22 09:34 (203.156.223.130)
lvjinliang pts/3        2019-05-22 09:46 (203.156.223.130)
#用户名    登录终端       登录时间        (登录来源IP)

last 查询当前已经登录和过去登录的用户信息

[root@dev_server ~]# last
lvjinlia pts/3        203.156.223.130  Wed May 22 09:46   still logged in   
lvjinlia pts/2        203.156.223.130  Wed May 22 09:34   still logged in   
lvjinlia pts/0        203.156.223.130  Wed May 22 09:33   still logged in   
lvjinlia pts/0        203.156.223.130  Tue May 21 11:14 - 11:34  (00:20)    
lvjinlia pts/2        203.156.223.130  Mon May 20 11:33 - 11:59  (00:25)    
lvjinlia pts/0        203.156.223.130  Mon May 20 11:23 - 11:47  (00:23)    
lvjinlia pts/2        203.156.223.130  Mon May 20 10:54 - 11:23  (00:29)    
lvjinlia pts/0        203.156.223.130  Mon May 20 10:35 - 11:07  (00:32) 
#用户名  登录终端      登录来源IP        登录时间段 (still logged in表示当前依然在登录) 

lastlog 查看系统中所有用户的最后一次登录时间、登录端口和来源IP

[root@dev_server ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/2    101.95.191.26    四 11月 23 13:01:09 +0800 2017
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
uucp                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
gopher                                     **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
vcsa                                       **从未登录过**
saslauth                                   **从未登录过**
postfix                                    **从未登录过**
sshd                                       **从未登录过**
ntp                                        **从未登录过**
tcpdump                                    **从未登录过**
nscd                                       **从未登录过**
mysql                                      **从未登录过**
www                                        **从未登录过**
apache                                     **从未登录过**
lvjinliang       pts/1    203.156.223.130  三 5月 22 10:03:52 +0800 2019

lastlog 命令默认是去读取 /var/log/lastlog 日志文件的,这个文件同样是二进制文件,不能直接用 vi 编辑,需要使用 lastlog 命令调用

 

观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

 

 

Logo

更多推荐