在 Raspberry Pi 2 上工作,运行 Raspbian GNU/Linux 9 (stretch)。
我只是想理解为什么当我运行命令时top
我可以看到一些在命令中看不到的用户who
。以下是在 RPi 上运行的命令的输出:
$ top
top - 12:36:42 up 2 days, 15:19, 2 users, load average: 0.29, 0.34, 0.27
Tasks: 138 total, 1 running, 73 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 0.9 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 949460 total, 354296 free, 62916 used, 532248 buff/cache
KiB Swap: 102396 total, 30972 free, 71424 used. 811488 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10907 iceman 20 0 6144 3400 1924 S 2.3 0.4 4:05.37 rsync
10876 maverick 20 0 8128 3300 2740 R 1.6 0.3 0:36.49 top
376 root 20 0 911240 9648 3164 S 0.7 1.0 31:58.38 dockerd
663 root 20 0 149932 1728 1020 S 0.7 0.2 28:25.48 Xorg
674 root 20 0 884620 3848 1764 S 0.7 0.4 22:06.18 docker-co
$ who
maverick pts/0 2018-11-28 11:23 (73.69.181.86)
maverick pts/1 2018-11-28 11:58 (73.69.181.86)
为了澄清一下,我尝试过:who
, who -u
, who -l
, who -p
, who -a
。
答案1
您可以通过查看系统的命令行工具及其参数的“手册页”(man who
例如,运行)来找到有关系统命令行工具及其参数的其他信息。
从各自的手册页:
top
- 显示Linux进程
who
- 显示谁已登录
当我们这样做时,还有:
w
- 显示谁已登录以及他们正在做什么。
当用户执行“登录”时,即用户已“登录”,即他们提供了密码或密钥来向系统进行身份验证,并且系统已为他们启动了“会话”。
如您所见,who
仅列出这些登录会话 - 通常与会话所附加的内容一起列出,例如
- Xserver 会话(例如
:0
第一个图形会话), - 终端(
tty
,例如Ctrl++ Alt)F2, - 或伪终端(
pts
例如,用于 SSH 会话、终端仿真器或终端多路复用器程序)
还有其他方法可以启动不涉及登录会话的进程,例如
- 系统服务(由
init
、systemd
或系统用于服务启动的任何内容启动) - 未请求 tty 设备的 SSH 会话 — 当您在 SSH 调用 (
ssh example.com rsync …
) 之后直接发出命令而不是请求交互式 shell (ssh example.com
)时,通常会发生这种情况 - 从登录会话启动进程,然后将其与当前 shell 分离,从而与会话分离(例如使用
disown
)
顺便说一句,如果您想知道系统上存在哪些用户(本地配置的用户/etc/passwd
以及来自外部数据库(如 LDAP)的任何用户):
getent passwd
如果您还想知道他们上次登录的时间:
lastlog