如何在 Linux 中确定当前用户帐户


Linux 中确定当前用户帐户的多种方法

Linux 的核心理念之一就是选择的自由。 即使是像确定当前用户这样简单的任务,也可以通过多种不同的途径来实现。 本教程将介绍几种快速且直接的方法来完成此操作。

为什么要查找当前用户的身份? 在许多情况下,计算机的拥有者也是唯一的用户,他们自然知道自己的身份。 不过,创建额外的用户帐户以供家庭成员使用计算机的情况也很常见。 此外,当你连接到远程服务器的 shell 时,你可能需要快速回忆起登录时使用的用户名。 如果你看到一个看似无人值守的登录会话,如何通过命令行识别当前用户?

首先,让我们从最简单的方法入手。 我们只需要查看命令提示符。 默认情况下,Linux 发行版的提示符中会包含用户名。 这非常简单,甚至不需要输入任何内容。

如果用户更改了提示符的格式,我们需要尝试其他方法。“who”命令可以提供我们所需的信息。

who

“who”命令的输出会显示当前用户的名称、他们登录的终端、登录日期和时间。对于远程会话,还会显示他们从哪里登录。

相比之下,“whoami”命令则提供一个非常简洁的答案:

whoami

通过将 $USER 环境变量回显到屏幕上,可以获得同样的单字答案。

echo $USER

单字母命令 “w” 需要更少的输入,但可以提供更多信息。

w

“w” 命令可以提供我们想要的用户名,以及该用户的一系列额外数据。 请注意,如果多个用户登录到 Linux 系统,“w” 命令会列出所有用户。 你需要知道你感兴趣的用户登录了哪个终端。 如果他们直接登录到 Linux 计算机本身,那将是 pts/0,所以需要在 “w” 的输出中查找 :0。

“w” 命令提供过去 5 分钟、10 分钟和 15 分钟的启动时间、正常运行时间和平均负载,以及当前用户的以下信息:

用户: 用户名。
TTY: 他们登录的终端类型。 这通常是 pts(伪电传打字机)。 :0 表示连接到该计算机的物理键盘和屏幕。
FROM: 远程主机的名称(如果这是远程连接)。
[email protected]: 用户登录的时间。
IDLE: 空闲时间。 截图显示为 ?xdm?,因为我们在 X-windows 显示管理器下运行,它不提供该信息。
JCPU: 联合 CPU 时间,这是所有附加到此 tty 的进程使用的 CPU 时间。 换句话说,此用户在此登录会话中的总 CPU 时间。
PCPU: 进程 CPU 时间,这是当前进程使用的 CPU 时间。 当前进程在 WHAT 列中指定。
WHAT: 该用户当前进程的命令行。

现在我们知道了用户是谁,可以获取更多关于他们的信息。“id” 命令是一个很好的起点。 输入 “id”,加一个空格,再输入用户名,然后按回车键。

id dave

这将提供他们的用户 ID(uid)、组 ID(gid)以及他们所属的组。 使用 “groups” 命令可以获得更简洁的组信息显示。

groups dave

“finger” 命令可以提供很好的概括。 如果你使用的是 Ubuntu 或其他基于 Debian 的发行版,可以使用 apt-get 将此软件包安装到你的系统上。 在其他 Linux 发行版上,请使用你发行版的软件包管理工具。

sudo apt-get install finger

一旦安装了 “finger”,就可以用它显示关于用户的一些信息。

finger dave

在大多数 Linux 系统上,其中一些字段会为空白。 默认情况下不填充办公室、全名和电话号码。“无计划”字段是指一个旧的特性,你可以在其中为感兴趣的人提供一些注释,说明你正在做什么或计划做什么。 如果你编辑了主文件夹中的 .plan 文件,该文件的内容将附加到 “finger” 的输出中。

要在 Ubuntu 和许多其他 Linux 发行版上使用的 GNOME 桌面环境中快速显示登录用户的名称,请单击屏幕右上角的系统菜单。 下拉菜单中的底部条目就是用户名。 其他 Linux 桌面环境应该在类似的菜单中显示你的用户名。

这非常容易,只需点击一下。 但这样有什么乐趣呢?

你不会像使用 Bash shell 时那样感觉自己像一个数字侦探。