导航菜单

w、who、whoami和id这4个命令有什么区别?

陆兴东 2026-04-07 23 浏览 Linux命令

前言

前几天整理了w、who、whoami和id这4个命令:查看当前登录用户的信息,介绍了它们的基本用法。不少网友提出疑问:它们都是查看当前登录用户的信息的命令,到底有什么区别?在什么场景下应该选用哪个命令更合适?

接下来,我将梳理一下这4个命令之间的主要区别。如有理解不到位之处,还望大家谅解。

一、w命令

查看“谁”在线上,以及他们在“干什么”。这是信息最丰富、功能最强大的命令。

输出信息:

第一行:当前时间、系统已运行时间、登录用户数、系统负载平均值。

列表行:用户名、终端、登录来源、登录时间、空闲时间、JCPU(该终端所有进程占用的CPU时间)、PCPU(当前进程占用的CPU时间)、以及当前正在运行的命令。

使用场景:作为管理员,你想了解系统负载情况,或者想找出某个用户是否在运行消耗资源的任务。

二、who命令

查看“谁”在线上。这个命令用来查看当前登录系统的用户列表。

核心功能:列出当前登录系统的所有用户会话。

输出信息:通常包括用户名、终端类型、登录时间以及登录来源IP地址。

使用场景:系统管理员想快速查看有哪些用户在线,以及他们是从哪里登录的。

三、whoami命令

只关心“我是谁”。是最简单、最直接的一个命令。

核心功能:只输出当前执行命令的用户。

工作原理:它本质上是“id -un ”命令的别名,直接读取当前进程的用户。

使用场景:当你登录了系统,或者在 su(切换用户)后不确定自己当前是哪个用户时,可以用它来确认身份。

四、id命令

主要关心“我的数字身份”。

核心功能:显示用户的身实身份标识。包括用户id(UID)、组id(GID),以及用户所属的所有组。

使用场景:

1、想知道某个用户的用户id(UDI)或是组id(GID)是多少。

2、想确认一下当前用户是否还有其它组的权限。

3、查看进程的实际用户身份。

五、命令对照表

命令

核心功能

输出内容

w

谁在系统上以及它们在做什么

系统负载、登录用户、空闲时间、当前执行的命令

who

谁登录了系统

用户、终端、登录时间、来源IP

whoami

当前用户是谁(或我是谁)

只有自己

id

用户身份id(UID/GID)

UID、GID和所属组列表