1.查看当前在线用户:w
/who
[root@VM-0-7-centos home]# w
第一行信息:
- 00:26:57:系统当前时间
- up 18 days,8:36:系统已运行时间
- 4 users:当前在线用户个数
- load average:系统负载,三个值为过去1、5、15分钟的平均负载
第二行信息:
- USER:登录的用户名
- TTY:用户登录的终端名
- FROM:用户的ip
- LOGIN@:用户登录时的时间
- IDLE:用户空闲时长,从上一次该用户任务结束后开始计时,格式为
时:分
- JCPU:某段时间内,当前用户所有的进程任务所消耗的CPU时间(cuttently running background jobs)
- PCPU:某段时间内,当前用户正在执行的进程任务(即WHAT列的任务)所消耗的CPU时间(current process)
- WHAT:用户正在执行的任务
[root@VM-0-7-centos home]# who
2.查看当前自己占用的终端:who am i
3.剔除在线用户:pkill
pkill -kill -t pts/2
将pts/2终端的用户给踢下线(如果不奏效的话,可以使用pkill -9 -t pts/s
强制踢下线)
4.查看当前用户命令历史:history
每个用户都有一份命令历史记录,可以通过终端输入history
查看命令历史记录,最新的历史记录在最下面,也可以通过查看~/.bash_history
文件来查看对应用户的命令历史记录。
可以通过echo $HISTFILE
来查看当前用户下的历史命令文件。
5.查看所有命令历史:lastcomm
最新的结果显示在最上面,
各列含义:
- 第一列:命令名,过长的命令截断为16个字符
- 第二列:标志集合
- S command executed by super-user
- F command executed after a fork but without a following exec (many daemons do this)
- C command run in PDP-11 compatibility mode (VAX only)
- D command terminated with the generation of a core file
- X command was terminated with the signal SIGTERM
- 第三列:运行该命令的用户
- 第四列:该命令的控制终端(如果有的话)
- 第五列:该命令使用的cpu时间
- 第六列:该命令的开始时间
6.查看用户登录历史:last
此命令会读取/var/log/wtmp
文件,默认会打印所有用户的登录信息,可以通过last username
来打印某个用户的登录信息
last -f /var/run/utmp
查看当前的用户登录历史
lasf -f /var/log/wtmp
查看所有的登录登出的记录(utmp文件的历史备份)
last -f /var/log/btmp
查看错误的登录尝试记录(bad login attempts)
7.查看所有用户最近一次登录历史:lastlog
此命令将读取/var/log/lastlog
文件,用户排列顺序按照/etc/passwd
中的顺序
选项:
-u
:查看某个用户的最近一次登录历史,如lastlog -u root
-t
:查看指定天数之内的用户登录历史,如lastlog -t 3
-b
:查看指定天数之前的用户登录历史,如lastlog -b 60
8.查看用户连接时间:ac
此命令根据/var/log/wtmp
文件中登录和登出的时间统计用户连接的时间(小时),默认输出报告总时间
选项:
-p
:显示每个用户的连接时间-d
:显示每天的连接时间-y
:显示年份,和-d
配合使用
备注:如果没有ac命令的话,需要先安装psacct或acct。
centos中安装psacct,开启并启动psacct服务统计进程时间,即可使用ac命令
yum instal psacct
systemctl enable psacct
systemctl start psacct
参考
[2] linux用户管理