如何在 Linux 上使用手指命令

掌握谁在使用你的 Linux 或类 Unix 系统是系统管理的基础。虽然用手指指着别人可能显得不太礼貌,但“finger”命令却能提供有用的信息。

默认情况下,你的 Linux 发行版很可能没有安装 “finger” 命令。我们在 Ubuntu、Fedora 和 Manjaro 发行版中都发现它需要手动安装。我们之前介绍过 “pinky” 命令,它是 “finger” 的轻量级版本。“pinky” 通常是默认提供的,但如果你想使用 “finger”,则需要自行安装。

“finger” 和 “pinky” 命令的功能类似,它们都可以显示当前登录到你的 Linux 或类 Unix 操作系统上的用户信息。不过,它们提供的信息略有不同,“pinky” 提供了更多的选项,可以让你逐步移除不需要显示的信息。

如果你希望你的 Linux 系统更像传统的 “类 Unix” 系统,而不是现代的 “类 Linux” 系统,你可能会想要使用 “finger” 命令。也许你继承了一些脚本,这些脚本需要 “finger” 可用。无论出于何种原因,如果你需要(或只是更喜欢)使用 “finger”,以下是如何安装和使用它的方法。

安装 “finger”

在 Ubuntu 上,你可以使用以下命令安装 “finger”:

sudo apt-get install finger

要在 Fedora 上安装 “finger”,请使用以下命令:

sudo dnf install finger

在 Manjaro 上,你需要从 Arch 用户仓库 (AUR) 获取 “finger”,因为它需要从 源代码 编译安装。虽然有工具可以自动化这个过程,但这表示你需要在 Manjaro 系统上安装这些工具,以及从 AUR 获取和安装 “finger” 的工具。所以,我们需要先安装这些工具。

如果你的系统还没有合适的 AUR 安装程序, “trizen” 是一个不错的选择。以下命令将安装它:

sudo pacman -Syu trizen

在我们可以使用 “trizen” 为我们安装 “finger” 之前,我们需要安装一些开发工具。这些工具会被安装和构建脚本自动调用,“trizen” 会调用这些脚本在你的系统上安装 “finger”。当然,如果你之前从 AUR 安装过项目,或者你进行任何软件开发,你很可能已经安装了这些工具。

我们需要安装 GNU C 库。我们使用以下命令来安装它:

sudo pacman -Syu glibc

我们还需要 GNU Binutils。这些工具会被 gcc 编译器使用:

sudo pacman -Syu binutils

安装过程还会利用 patch 实用程序。此命令将安装它:

sudo pacman -Syu patch

“make” 实用程序用于控制实际的 编译和构建过程,从其源代码安装 “finger”。 使用以下命令安装它:

sudo pacman -Syu make

当然,如果没有编译器,我们将无法成功地从源代码构建任何东西。我们肯定需要 gcc,GNU 编译器集合。此命令将为你安装它:

sudo pacman -Syu gcc

最后,在满足了构建依赖项并安装了 “trizen” 之后,我们可以发出命令来实际安装 “finger”。

trizen -S netkit-bsd-finger

安装过程中,你可能会遇到各种提示。只需按“Enter”即可接受默认值。

使用 “finger”

键入 “finger” 并按 “Enter” 会导致 “finger” 生成其默认输出。

finger

这将显示每个已登录用户的一行信息。这些列的含义如下:

登录:登录者的用户帐户名。
姓名:用户的全名(如果系统知道)。
Tty:他们登录的终端类型。这通常是 pts(一个伪电传打字机)。“:0”表示连接到计算机的物理键盘和屏幕。
空闲:用户的空闲时间。如果是个位数,则表示分钟。如果存在冒号,则表示小时和分钟;如果存在 “d”,则表示天和小时。
登录时间:用户登录的时间。
办公室:这是一个历史遗留问题,用于显示此人工作的房间的名称或编号。现在,这很少由 root 设置。相反,“finger” 会显示用户登录的机器的 IP 地址。“:0”表示连接到计算机的物理键盘和屏幕。
办公电话:这是另一个旧项目。如果 root 没有记录用户的办公室电话号码,它将显示为空白。

使用 “finger” 查看特定用户的信息

要查看单个用户的详细信息,请在命令行中传递他们的帐户名。

finger alec

当 “finger” 处理单个用户时,它会显示更多信息。我们会获得一些额外的信息。

目录:用户的主目录。
Shell:用户正在使用的 shell。
On 自:用户登录的时间和日期,以及所使用的 tty 和 IP 地址。
邮件:如果用户有邮件,则会显示。如果他们最近检查过邮件,则会显示他们检查邮件的时间。示例用户 alec 没有等待查收的邮件。
计划:如果用户在其主目录中创建了一个“.plan” 和 “.project” 文件,并在其中放入描述他们正在做的事情的文本,这些文件的内容将显示在此处。这是一个现在很少使用的系统。我们得知示例用户 alec 没有计划,但这并非指责他的职业规划,而是意味着他没有费心去更新他的“.plan”文件。

如果我们重复此命令,看看用户 Mary,我们会发现她很勤奋,在她的 “.plan” 和 “.project” 文件中放入了一些描述性文本。

finger mary

使用 “finger” 查询真实姓名

你可以使用用户的真实姓名来查询 “finger”。如果你不记得他们的帐户名称,请使用他们的真实姓名。

finger alec tumovit

作为奖励,你可以找到他们的帐户名称。

省略 .plan 和 .project 文件

如果你不想看到 “.plan” 和 “.project” 文件的摘要,请使用 “-p” (无计划) 选项。

finger -p mary

即使 Mary 有活跃的 “.plan” 和 “.project” 文件,“finger” 也会忽略它们,不报告它们的内容。

使用长列表选项

要以长格式显示所有用户的列表,请使用 “-l”(长格式)选项。

finger -l

这使得 “finger” 以长显示格式列出所有登录用户。

使用 “pinky” 还是 “finger”

通常,Linux 为你提供选择。你可以使用 “pinky”,也可以使用 “finger”。

它们之间的真正区别在于,“pinky” 具有额外的技巧,可以让你非常精细地删除你不感兴趣的数据。当然,它还是预先安装好的。