上一篇
linux如何查看用户数
- Linux
- 2025-07-24
- 6
在Linux中,可通过
grep -c "." /etc/passwd
或
cut -d: -f1 /etc/passwd | wc -l
直接统计系统总用户数,若需查看当前登录
用户数量,则使用
who | wc -l
在Linux系统中,查看用户数量的方法需根据实际需求分为系统用户总数和当前登录用户数两类,以下是详细说明及操作命令:
查看系统用户总数
系统用户总数存储于/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 统计总数 |
注意事项:
/etc/passwd
可能包含虚拟用户(如nobody
、apache
等服务账户),若需排除可结合grep
过滤。- 直接使用
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
包)。
其他相关命令
-
查看当前用户身份:
whoami
:输出当前操作用户的用户名。id
:显示当前用户的UID/GID及所属组。
-
历史登录记录:
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