> 环境与工具 > logname

logname: 输出实际登录用户名

logname 命令输出用户首次登录系统时使用的用户名(登录名)。与 whoami 不同,即使在使用 su 或 sudo 更改权限后,它仍会显示原始登录用户名。

概述

logname 命令将用户启动登录会话时使用的名称输出到标准输出。这与 whoami 有着微妙但重要的区别。whoami 输出当前执行命令的“有效用户”的名称,而 logname 输出会话的“实际登录用户”的名称。因此,即使在使用 sudo 或 su 命令获取其他用户权限后,logname 仍会显示原始登录用户的名称。

主要特点

logname 命令的主要特点如下:

  • 输出启动登录会话的用户名。
  • 基于 $LOGNAME 环境变量的值运行。
  • 用于确认实际登录用户。
  • 一个几乎没有选项的简单命令。

logname 与 whoami 的区别

这两个命令都输出用户名,但在权限更改的情况下会显示不同的结果。

  • logname: 输出实际登录用户名(real user)。在使用 su 或 sudo 后不会改变。
  • whoami: 输出当前执行命令的有效用户名(effective user)。在使用 su 或 sudo 后,会输出更改后的用户名,例如 root。

主要选项

logname 命令非常简单,主要只使用 --help 或 --version 等基本帮助选项。

1) 帮助

生成的命令:

请尝试组合命令。

描述:

`logname` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 logname 命令的各种使用示例来熟悉其功能。

确认当前用户名

logname

输出当前登录的用户名。

su 命令后比较用户名

logname
su
whoami
logname

在使用 su 命令切换到 root 用户后,比较 whoami 和 logname 的输出结果。whoami 会输出 root,但 logname 会输出原始登录用户名。

安装

logname 是 coreutils 软件包的一部分,默认包含在大多数 Linux 发行版中。无需单独安装。

提示与注意事项

整理了使用 logname 命令时需要注意的事项。

提示

  • 在脚本中,建议使用 whoami 来检查当前执行命令的用户的权限,而使用 logname 来记录连接到系统的实际用户。
  • logname 可以用于跟踪实际登录用户,类似于 w 命令的输出结果。

相关命令

功能上相似或经常一起使用的命令。


相同类别命令