如何使用命令显示所有用户和组?

我想要显示:
1. 所有用户和 2. 所有组
在我的系统中使用命令行。
`users` 和 `groups` 命令分别显示当前登录的用户和用户所属的组。
如何通过命令行显示所有用户和所有组的列表?
2个回答

你可以通过内置命令compgen来显示,具体操作如下:
  1. 显示所有用户,请运行以下命令:

    compgen -u
    
  2. 显示所有组,请运行以下命令:

    compgen -g
    
然而,您也可以通过cut -d ":" -f 1 /etc/passwd命令显示所有用户。

17不错!最好使用getent passwd / getent group而不是查看本地文件(getent也适用于非本地帐户) - steeldriver
@steeldriver compgen 看起来对非本地账户(至少对于LDAP)是有效的。 - muru
1@muru 我特别指的是第二种方法 (cat /etc/passwd | cut -d ...)。 - steeldriver
@steeldriver 啊,抱歉。我以为那是一个更普遍的观察。 - muru
嗯,在我的Ubuntu上,我有一些由Docker挂载创建的文件,其user:group999:999,但不幸的是,以上命令都没有打印出它们。 - Marinos An

这里我们将使用getent来获取详细信息

我们可以使用以下命令列出用户:

getent passwd

我们可以将该组列为以下内容:
getent group

获取特定用户的详细信息
getent passwd lalit

将“lalit”替换为您的用户名。并非每个系统都有“lalit”这个名字 :)
您可以在这里阅读更多关于“getent”的信息。