Linux 命令详解:whoami 打印当前有效用户 ID 对应的名称(linux-command 手册解析) 文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载whoami是 GNU coreutils 包中一个看似简单却极其常用的命令用于打印当前有效用户 ID 对应的用户名。本篇文章以 linux-command 仓库中 command/whoami.md 文档为骨架结合仓库内 command/id.md、command/logname.md、command/who.md 等相邻命令文档与 README.md 中的项目说明完整讲解whoami的用法、选项、返回值、与logname、id的差异以及如何在本仓库的 Web 版与 npm 包中检索、引用该命令手册读完即可在实战中准确判断当前我是谁。概要whoami [OPTION]...whoami不需要任何必选参数只接收可选的OPTION。其核心功能是打印当前有效的用户 IDeffective UID对应的名称。这里的有效用户 ID是理解本命令的关键它指的是进程当前真正生效的身份而不是登录时记录的原始身份。在通过su、sudo切换用户后有效用户 ID 会随之改变因此whoami的输出会反映切换后的身份。选项whoami只支持两个选项且都用于信息查询不影响命令的打印行为--help 显示帮助信息并退出。 --version 显示版本信息并退出。whoami --help输出命令的简短用法说明后正常退出返回 0。whoami --version输出命令所属版本信息后正常退出便于在脚本中确认 coreutils 版本。除此之外whoami不接受其他参数或选项传入了多余参数会报错并返回非 0 值。返回值返回0表示成功。返回非0值表示失败例如环境异常、无法确定有效用户 ID 等情况。这一约定与 GNU coreutils 中绝大多数命令一致可在脚本中直接通过$?检查执行结果。例子[rootlocalhost ~]# whoami root在 root 用户的终端中执行whoami直接输出root。由于whoami是基于有效用户 ID 查询即便当前是通过su临时切换过来的非登录用户它输出的也是切换后的用户而非登录用户。关键辨析whoami 与 id -unwhoami命令等价于id -un即id命令的-u只打印有效的用户 ID与-n以名称而不是数字打印两个选项的组合。仓库中的 command/id.md 文档详细列出了这两个选项的含义-u, --user 只打印有效的用户ID。 -n, --name 打印名称而不是数字。因此二者输出完全一致[rootlocalhost ~]# id -un root不过id命令远比whoami强大它还能打印真实与有效的 UID/GID、全部组信息、SELinux 安全上下文-Z等例如[rootlocalhost ~]# id uid0(root) gid0(root) groups0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)所以当你只需要当前有效用户名时用whoami即可当需要完整身份信息UID 号、GID 号、所属组、特定用户的身份时应改用 command/id.md 中介绍的id命令。关键辨析whoami 与 logname这是文档中特意强调、也是最容易混淆的一对命令。以用户root打开终端后切换到用户user2此时whoami返回的是当前用户user2基于有效用户 IDlogname返回的是登录用户root基于登录会话中记录的原始身份。仓库中的 command/logname.md 文档给出了logname的定义打印当前终端登录用户的名称并重复强调了这一差异。你可以自行实践验证[rootlocalhost ~]# whoami root [rootlocalhost ~]# su - user2 [user2localhost ~]$ whoami user2 [user2localhost ~]$ logname root实践建议判断当前进程以哪个身份生效、会以谁的身份创建文件 → 使用whoami判断这个终端最初是谁登录的、审计/记账场景下归因到谁 → 使用logname若要查看当前所有已登录用户及其终端、登录时间可进一步参考仓库中的 command/who.md执行who即可列出每个当前登录用户的名称、终端信息、登录时间与来源主机。在 linux-command 仓库中检索与引用 whoamiwhoami是 linux-command 仓库搜集整理的 600 多个 Linux 命令之一在项目中有三种典型的使用方式直接阅读 Markdown 手册本命令的完整原始文档位于 command/whoami.md仓库中每个命令都对应command/目录下的一个 Markdown 文件可通过 Web 版搜索或直接翻阅源码目录获取。Web 版检索README 中说明项目通过 GitHub Actions 将 command 目录中的命令文档生成为静态 HTML 并提供索引搜索对应模板实现可见 template/details.ejs 与 scripts/dash.mjs预览地址为https://git.io/linux也可以在浏览器中直接搜索whoami定位到该命令详情页。npm 包程序化引用通过npm install linux-command安装后见 package.json可以用代码直接加载命令文档// 加载命令索引 JSONpackage.json 中 main: dist/data.json var comm require(linux-command); // 索引中包含 whoami 的条目信息 console.log(----, comm.whoami); // 或直接加载命令的 Markdown 原文 var whoamiDoc require(linux-command/command/whoami.md); console.log(----, whoamiDoc); // markdown string命令索引数据dist/data.json中同样登记了whoami条目whoami: { n: whoami, p: /whoami, ... }供搜索引擎、Agent 与各类前端应用做命令名到详情页的映射。底层实现与帮助信息whoami属于 GNU coreutils 工具集其底层通过系统调用读取进程的有效用户 IDgeteuid()再在用户数据库中查表映射为用户名本质上与id -un走的是同一套身份查询机制。正因为依赖进程的 effective UID所以它天然能感知su/sudo带来的身份切换这也是它与logname行为差异的根本原因。更多权威帮助信息可通过以下方式获取man -s 1 whoami info coreutils whoami invocation若需横向对比仓库中apropos命令的文档command/apropos.md在手册检索结果中也收录了whoami (1) - print effective userid即打印有效用户 ID与本文开头对命令功能的定义完全一致。小结对比项whoamilognameid -un输出内容当前有效用户名称终端登录用户名称当前有效用户名称受 su/sudo 影响受影响不受影响受影响等价关系等价于id -un独立命令与 whoami 等价典型场景确认当前生效身份确认原始登录身份脚本中按需取 UID 数字或名称一句话记住用法想知道我现在以谁的身份在跑命令用whoami想知道这个终端当初是谁登录的用logname。完整的命令手册可在 command/whoami.md 中随时查阅也可通过本项目 Web 版https://git.io/linux或 npm 包离线使用。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐React 状态管理进阶从快照更新到受控组件——深入解析 more_on_state 课程React 状态管理进阶从快照更新到受控组件——深入解析 more_on_state 课程 状态state是 React 组件的记忆而如何高效、正确地管文档教程Linux id 命令详解打印用户与组的真实/有效身份信息Linux id 命令详解打印用户与组的真实/有效身份信息 导读 id 是 Linux 系统中查询用户身份信息最直接的工具它能一次性打印当前或指定用户的 U文档教程npm whoami 命令详解在 npm CLI 中显示当前登录用户名npm whoami 命令详解在 npm CLI 中显示当前登录用户名 npm whoami 是 npm 官方 CLI即本仓库 cli4/cli提供的一个开发工具包管理器CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考