zoukankan      html  css  js  c++  java
  • who am i

    《who am i》-linux命令五分钟系列之十六

    本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn。文章作者为rocrocket。
    为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅。

    ===

    [正文开始]

    今天要说的不是成龙的电影“我是谁”,而是Linux里的who系列命令,包括who、whoami和who am i。

    先看看这三个命令的输出信息:

    [rocrocket@rocrocket ~]$ whoami
    rocrocket
    [rocrocket@rocrocket ~]$ who am i
    rocrocket pts/3        2008-12-30 13:17 (:0.0)
    [rocrocket@rocrocket ~]$ who
    rocrocket :0           2008-12-30 09:54
    rocrocket pts/0        2008-12-30 09:55 (:0.0)
    rocrocket pts/1        2008-12-30 09:57 (:0.0)
    rocrocket pts/3        2008-12-30 13:17 (:0.0)
    当我用sudo su(或者sudo su -)更换到root用户之后,你再看看:

    [rocrocket@rocrocket ~]$ sudo su
    [root@rocrocket rocrocket]# whoami
    root
    [root@rocrocket rocrocket]# who am i
    rocrocket pts/3        2008-12-30 13:17 (:0.0)
    [root@rocrocket rocrocket]# who
    rocrocket :0           2008-12-30 09:54
    rocrocket pts/0        2008-12-30 09:55 (:0.0)
    rocrocket pts/1        2008-12-30 09:57 (:0.0)
    rocrocket pts/3        2008-12-30 13:17 (:0.0)

    看出区别来了吧,whoami显示的是当前“操作用户”的用户名,而who am i显示的是“登录用户”的用户名。

    用Linux的术语来解释就是:(实际用户=uid,即user id。有效用户=euid,即effective user id)

    who am i 显示的是实际用户的用户名,即用户登陆的时候的用户ID。此命令相当于who -m。
    whoami   显示的是有效用户ID.

    好了,明白了两者区别之后,我们来说说who这个命令。

    有人会问,为什么我sudo su到root之后,who里面却没有显示呢?

    这是因为su过去的用户进程空间是作为一个子空间存在,他并没有得到一个登录的tty。

    who这个命令重点是用来查看当前有哪些用户登录到了本台机器上。

    who -m的作用和who am i的作用是一样的。

    who -q用来显示当前登录用户的个数。

    当你觉得who的输出信息晦涩难懂时,可以使用who -H来输出,这样可以在每列加上列名称,有助于阅读。

  • 相关阅读:
    Away3d学习笔记2三维世界的四个基本构件
    实验报告2
    实验报告
    WPF基础——Application
    COM技术内幕(笔记)
    关于一个GetLevelDesc函数 的认知问题
    UI库阶段性进展(完成文字列表,样式列表(样式列表可继承))
    UI库阶段性进展
    UI库阶段性进展(按钮初具雏形)
    UI库阶段性进展(button在文本对齐的基础上增加文本偏移让文本位置更精准)
  • 原文地址:https://www.cnblogs.com/qionghua520/p/4382927.html
Copyright © 2011-2022 走看看