如何从终端找到我的用户ID(UID)?

标题已经说得很清楚了。我需要在终端中运行什么命令来查找我的用户ID(UID)?

19使用 echo $UID - Louis Matthijssen
5个回答

有几种方法:
  1. 使用id命令可以获取真实和有效的用户和组ID。
  2.  id -u <username>
    

    如果未向id提供用户名,则默认为当前用户。

  3. 使用shell变量。(它不是环境变量,因此在env中不可用)。
  4.  echo $UID
    

9GID怎么样? - kangear
26@kangear id -g <username> - itsazzad
值得注意的是,由于变量在传递给命令之前被解析,因此我们有sudo echo ${UID}会打印出1000(或者您的sudo用户的UID),而sudo id -u会打印出0 - adentinger
username是可选的,默认为您自己。也许使用方括号来表示这一点会更好,而不是尖括号。 - mwfearnley
2这个回答的第二部分是错误的。所讨论的变量明确地不是环境变量,而是一个shell变量。这有很大的区别。例如在Bash中,你可以通过echo $UIDenv|grep ^UID来看到这一点。这意味着特别是第一种方法更健壮,而第二种方法只能在shell脚本中工作,而不能在像Python这样的环境中(使用python -c 'import os; print(os.environ)'查看环境变量)。 - 0xC0000022L

只需尝试一下
id

这将返回您的用户ID、组ID和所有您所在的群组。

15或者使用id -u命令只查看UID。 - steeldriver
是的。如果你需要避免解析输出,我更倾向于选择Jobin的答案。 - TAq
6使用id -uid -g会简单得多。谢谢。 :) - thoroc

试试这个:
getent passwd username

这将显示用户ID、组ID和主目录。
或者:
grep username /etc/passwd

为什么在问题中明确提到echo $UIDid -u这两个简单而准确的命令,还要尝试长或替代命令呢? - Pandya
7没错,但了解所有选择是很好的。 - nux

你可以使用id命令。 Manpage

获取正在运行的用户的用户ID(UID)和组ID(GID)
id -u  # user ID (UID)
id -g  # group ID (GID)

示例运行和输出:

$ id -u
1000
$ id -g
1000

并且:

$ sudo id -u
[sudo] password for gabriel: 
0
$ sudo id -g
0

请注意,第一个用户的UID和GID通常都是1000,而root用户的UID和GID通常都是0