id -u 显示当前用户UID,如1000;2. whoami 显示当前有效用户名,如alice;3. su切换后whoami变root,who am i仍显示原登录用户alice,体现权限身份与登录来源的区别。

在Linux系统中,用户身份的识别和管理是日常操作的重要部分。了解当前登录用户的ID信息以及使用whoami命令查看身份,对权限控制和脚本编写非常有帮助。
用户ID(UID)的基本概念
每个Linux用户都有一个唯一的数字标识,称为用户ID(UID)。系统通过UID来判断用户的权限,而不是用户名。可以通过以下方式查看当前用户的UID:
- 使用 id 命令:执行 id -u 可显示当前用户的UID。
- 查看所有用户信息:运行 id 会输出UID、GID(主组ID)以及所属的附加组。
- 查看用户名对应的UID:使用 id username 可查询指定用户的UID。
例如:
id -u输出可能是:1000,表示当前用户的UID为1000。
whoami 命令的作用与用法
whoami 命令用于显示当前实际登录用户的用户名。它读取的是进程的有效用户身份,常用于确认你以哪个用户身份在操作。
- 基本用法:直接输入 whoami 并回车。
- 与 su 和 sudo 的区别:当你使用 su 切换用户后,whoami 会显示切换后的用户名。
- 脚本中的用途:在自动化脚本中,可用 whoami 判断当前执行者是否为预期用户。
示例:
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统
输出可能是:alice
whoami 与 who am i 的区别
虽然名字相似,但两者行为不同:
- whoami:显示当前用户的有效用户名,不受登录终端影响。
- who am i:显示通过终端登录的用户信息,只显示最初登录的用户和终端名,依赖于 /var/run/utmp 记录。
比如你用 alice 登录,然后执行 su root,结果如下:
- whoami 输出:root
- who am i 输出:alice
这说明 whoami 更关注“你现在是谁”,而 who am i 关注“你是怎么进来的”。
基本上就这些。掌握 id -u 和 whoami 能帮你快速确认身份和权限上下文,避免因用户错位导致操作失败。









