1、查看在线用户
w
w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:
- 用户的机器名称或tty号
- 远程主机地址
- 用户登录系统的时间
- 空闲时间(作用不大)
- 附加到tty(终端)的进程所用的时间(JCPU时间)
- 当前进程所用时间(PCPU时间)
- 用户当前正在使用的命令
w命令还可以使用以下选项
- -h忽略头文件信息
- -u显示结果的加载时间
- -s不显示JCPU, PCPU, 登录时间
2.查看用户登录历史
last
last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:
- 用户名称
- tty设备号
- 历史登录时间日期
- 登出时间日期
- 总工作时间
oracle pts/0 192.168.1.116 Mon Jul 1 15:18 still logged in oracle
pts/0 192.168.1.116 Tue Jun 25 17:39 - 18:04 (00:25) oracle pts/0
192.168.1.116 Tue Jun 25 17:13 - 17:14 (00:00) oracle pts/1 192.168.1.116 Tue Jun 25 15:05 - 15:07 (00:01) oracle pts/0 192.168.1.116 Tue Jun 25 11:20 - 15:12 (03:51)
3. 使用who命令查看(登录)用户名称及所启动的进程
who命令用于列举出当前已登录系统的用户名称。其输出为:用户名、tty号、时间日期、主机地址。
$ who
ramesh pts/0 2009-03-28 22:57 (dev-db-server)
jason pts/1 2009-03-28 23:01 (dev-db-server)
john pts/2 2009-03-28 23:04 (dev-db-server)
如果只希望列出用户,可以使用如下语句:
$ who | cut -d' ' -f1 | sort | uniq
john
jason
ramesh
补充:users命令,可用于打印输出登录服务器的用户名称。该命令除了有help和version选项外,再没有其他选项。如果某用户使用了多个终端,则相应的会显示多个重复的用户名。
$ users
john jason ramesh
4.踢出用户
pkill -KILL -t pts/0 #pts/0为w指令看到的用户终端号