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

linux如何查看用户数

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

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

查看系统用户总数

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

linux如何查看用户数  第1张

命令 作用 示例与输出
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可能包含虚拟用户(如nobodyapache等服务账户),若需排除可结合grep过滤。
  2. 直接使用wc -l /etc/passwd会将注释行(以开头)也计入总数,需通过grep排除。

查看当前登录用户数

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

命令 作用 示例与输出
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为真实用户)。

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

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