who am i
who mom likes
root pts/0 2022-11-07 09:58 ()
输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami
即可),第二列的 pts/0
中 pts
表示伪终端,所谓伪是相对于 /dev/tty
设备而言的,还记得上一节讲终端时的那七个使用 [Ctrl]
+[Alt]
+[F1]~[F7]
进行切换的 /dev/tty
设备么,这是“真终端”,伪终端就是当你在图形用户界面使用 /dev/tty7
时每打开一个终端就会产生一个伪终端,pts/0
后面那个数字就表示打开的伪终端序号,你可以尝试再打开一个终端,然后在里面输入 who am i
,看第二列是不是就变成 pts/1
了,第三列则表示当前伪终端的启动时间
在某些环境中 who am i
和 who mom likes
命令不会输出任何内容,这是因为当前使用的 Shell 不是登录式 Shell(login shell),没有用户与 who
的 stdin 相关联,因此不会输出任何内容。登录 Shell 是指用户使用自己的 user ID 登录交互式 shell 的第一个进程,判断是不是登录 Shell 可以执行 echo $0
命令,如果返回 zsh、/bin/zsh、/bin/bash 这种格式,说明是非登录式 Shell(non-login shell);如果返回 -zsh、-bash 则说明是登录式 Shell,这时你执行 who am i
就会有输出。
who
命令其它常用参数
参数 | 说明 |
---|---|
-a | 打印能打印的全部 |
-d | 打印死掉的进程 |
-m | 同am i ,mom likes |
-q | 打印当前登录用户数及用户名 |
-u | 打印当前登录用户登录信息 |
-r | 打印运行等级 |