当前位置:首页 > Linux > 正文

linux如何查看用户数

在 Linux中,可通过 grep -c "." /etc/passwd或 cut -d: -f1 /etc/passwd | wc -l直接统计系统总 用户数,若需查看当前登录 用户数量,则使用 who | wc -l

Linux系统中,查看用户数量的方法需根据实际需求分为系统用户总数当前登录用户数两类,以下是详细说明及操作命令:

linux如何查看用户数 第1张

查看系统用户总数

系统用户总数存储于/etc/passwd文件中,该文件记录了所有用户账号信息(包括系统账户和虚拟用户),以下是常用统计方法:

命令 作用 示例与输出
grep -c "." /etc/passwd 统计非注释行总数 grep -c "." /etc/passwd

输出:150(示例数值,实际依系统而定)

cut -d: -f1 /etc/passwd | sort | uniq | wc -l 提取用户名去重后计数 cut -d: -f1 /etc/passwd

输出:username1<br>username2...

结合wc -l统计总数

注意事项:

  1. /etc/passwd可能包含虚拟用户(如nobody、apache等服务账户),若需排除可结合grep过滤。
  2. 直接使用wc -l /etc/passwd会将注释行(以开头)也计入总数,需通过grep排除。

查看当前登录用户数

当前登录用户需通过进程或会话信息统计,常用命令如下:

linux如何查看用户数 第2张

linux如何查看用户数 第3张

命令 作用 示例与输出
who | wc -l 统计登录会话数量 who

输出:user1 tty7 2024-03-19 10:00 (:0)

wc -l统计行数

w | grep "what" | awk '{print $1}' | sort | uniq 提取登录用户名去重计数 w

输出:USER TTY LOGIN@ IDLE JCPU PCPU WHAT

结合awk提取用户名

命令对比:

  • who:仅显示当前登录用户的基本信息(用户名、终端、登录时间等)。
  • w:提供更详细的用户活动信息(如运行进程、负载等)。
  • users:直接列出所有登录用户(需安装psmisc包)。

其他相关命令

  1. 查看当前用户身份

    • whoami:输出当前操作用户的用户名。
    • id:显示当前用户的UID/GID及所属组。
  2. 历史登录记录

    • last:查看最近登录过系统的用户及时间。
    • FAQs

      如何排除系统虚拟用户,仅统计真实用户?

      • 结合grep过滤服务账户, grep -v "^nobody" /etc/passwd | grep -v "^apache" | grep -c "."
      • 或使用awk筛选有效用户: awk -F: '$3 >= 1000 {count++} END {print count}' /etc/passwd ```(假设UID≥1000为真实用户)。

      如何查看特定用户的登录会话?

      • 使用who或w命令结合grep: who | grep "username"
      • 或通过pgrep查找进程归属: pgrep -u $(id -u

0