Linux下用于查看系统当前登录用户信息的4种方法

Stella981
• 阅读 534

1. 使用w命令查看登录用户正在使用的进程信息

w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:

  • 用户名称

  • 用户的机器名称或tty号

  • 远程主机地址

  • 用户登录系统的时间

  • 空闲时间(作用不大)

  • 附加到tty(终端)的进程所用的时间(JCPU时间)

  • 当前进程所用时间(PCPU时间)

  • 用户当前正在使用的命令

w命令还可以使用以下选项

  • -h忽略头文件信息

  • -u显示结果的加载时间

  • -s不显示JCPU, PCPU, 登录时间

    $ w  23:04:27 up 29 days,  7:51,  3 users,  load average: 0.04, 0.06, 0.02 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT ramesh   pts/0    dev-db-server        22:57    8.00s  0.05s  0.01s sshd: ramesh [priv] jason    pts/1    dev-db-server        23:01    2:53   0.01s  0.01s -bash john     pts/2    dev-db-server        23:04    0.00s  0.00s  0.00s w

    $ w -hramesh   pts/0    dev-db-server        22:57   17:43   2.52s  0.01s sshd: ramesh [priv] jason    pts/1    dev-db-server        23:01   20:28   0.01s  0.01s -bash john     pts/2    dev-db-server        23:04    0.00s  0.03s  0.00s w -h

    $ w -u 23:22:06 up 29 days,  8:08,  3 users,  load average: 0.00, 0.00, 0.00 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT ramesh   pts/0    dev-db-server        22:57   17:47   2.52s  2.49s top jason    pts/1    dev-db-server        23:01   20:32   0.01s  0.01s -bash john     pts/2    dev-db-server        23:04    0.00s  0.03s  0.00s w -u

    $ w -s  23:22:10 up 29 days,  8:08,  3 users,  load average: 0.00, 0.00, 0.00 USER     TTY      FROM               IDLE WHAT ramesh   pts/0    dev-db-server        17:51  sshd: ramesh [priv] jason    pts/1    dev-db-server        20:36  -bash john     pts/2    dev-db-server         1.00s w -s

2.使用who命令查看(登录)用户名称及所启动的进程

who命令用于列举出当前已登录系统的用户名称。其输出为:用户名、tty号、时间日期、主机地址。

$ whoramesh 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 | uniqjohn
jason
ramesh

_补充_:users命令,可用于打印输出登录服务器的用户名称。该命令除了有help和version选项外,再没有其他选项。如果某用户使用了多个终端,则相应的会显示多个重复的用户名。

$ usersjohn jason ramesh

3. 使用whoami命令查看你所使用的登录名称

whoami命令用于显示登入的用户名。

$ whoamijohn

whoami命令的执行效果和id -un的效果完全一样,例如:

$ id -unjohn

whoami命令能显示当前登入的用户名称,以及当前所使用的tty信息。该命令的输出结果包括如下内容:用户名、tty名、当前时间日期,同时还包括用户登录系统所使用的链接地址。

$ who am ijohn     pts/2        2009-03-28 23:04 (dev-db-server)

$ who mom likesjohn     pts/2        2009-03-28 23:04 (dev-db-server)Warning: Don't try "who mom hates" command.

当然,如果你使用su命令改变用户,则该命令(whoami)所显示的结果将随之改变。

4. 随时查看系统的历史信息(曾经使用过系统的用户信息)

last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:

  • 用户名称

  • tty设备号

  • 历史登录时间日期

  • 登出时间日期

  • 总工作时间

    $ last jasonjason   pts/0        dev-db-server   Fri Mar 27 22:57   still logged in jason   pts/0        dev-db-server   Fri Mar 27 22:09 - 22:54  (00:45) jason   pts/0        dev-db-server   Wed Mar 25 19:58 - 22:26  (02:28) jason   pts/1        dev-db-server   Mon Mar 16 20:10 - 21:44  (01:33) jason   pts/0        192.168.201.11  Fri Mar 13 08:35 - 16:46  (08:11) jason   pts/1        192.168.201.12  Thu Mar 12 09:03 - 09:19  (00:15) jason   pts/0        dev-db-server   Wed Mar 11 20:11 - 20:50  (00:39

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Linux日志系统
一、Linux系统日志与分类内核及系统日志:这种日志数据由系统服务syslog统一管理,根据其主配置文件"/etc/syslog.conf"中的设置决定将内核消息及各种系统程序消息记录到什么位置。用户日志:这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录
Stella981 Stella981
3年前
CAS 实现站内单点登录及实现第三方 OAuth、OpenId 登录(三)
一、概括    在大多数情况下,随着用户登录系统后,用户ID、用户名、Email、用户头像等等基本信息,需要被使用直到用户退出系统。    CASServer默认情况下,成功登录后,只会返回用户标示(通常是用户名)给CASClient。这时,各个Client还需要根据用户标示,去查询用户其它信息,这时如果如果CASSer
Stella981 Stella981
3年前
Linux单向免密登录最简配置
前置:两台linux,A和B需求:A免密登录B步骤:root用户登录A输入命令:sshkeygen之后一路按回车完成后进行公钥分发命令:sshcopyidi/root/.ssh/id\_rsa.pubB的IP示例:sshcopyidi/root/.ssh/id\_rsa.pub192.168.1
可莉 可莉
3年前
10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令
第十章Linux日常运维管理10.1查看系统负载w命令w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
Stella981 Stella981
3年前
Linux用户登录记录日志和相关查看命令汇总(转)
\1utmp、wtmp、btmp文件Linux用户登录信息放在三个文件中:1  /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;2  /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由las
Stella981 Stella981
3年前
Linux查看用户信息
查看用户信息ww显示信息的含义  JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里  PCPU:CPU执行程序耗费的时间  WHAT:用户正在执行的操作  loadaverage:分别显示系统在过去1、5、15分钟内的平均负载程度  FROM:显示用户从何处登陆系统,
胖大海 胖大海
2年前
top分析工具详细用法
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,下面详细介绍它的使用方法。1.命令格式:top \第一行基本信息10:01:08—当前系统时间up8days,19:24—系统已经运行了8天19小时24分钟(在这期间系统没有重启过的吆!)1users—当前有1个用户登录系统loadaverage:
融云IM即时通讯 融云IM即时通讯
11个月前
如何在发送的消息中携带用户信息?
1、设置当前userId对应的用户信息。RCIM.h类中/!当前登录的用户的用户信息@discussion与融云服务器建立连接之后,应该设置当前用户的用户信息,用于SDK显示和发送。/@property(nonatomic,strong)RCUserInf