whoami显示当前会话用户,who和w查看所有在线用户及活动,users仅列出在线用户名;适用于身份确认、系统监控与脚本处理。

在Linux系统中,想要查看当前登录的用户,有几个非常直接且常用的命令可以帮助你。最常见且最能满足大部分需求的,无疑是
whoami
who
当我们谈论查看当前登录用户,其实背后有两种常见的场景需求:一是“我是谁?”,二是“谁在线?”。针对这两种情况,Linux提供了非常精炼的工具。
如果你只是想知道当前你这个终端会话是以哪个用户身份运行的,最直接的命令就是
whoami
user1
sudo
whoami
而如果你想了解当前系统上有哪些用户登录了,以及他们是从哪里登录的,
who
who
who
此外,
w
who
w
w
这是一个很常见的混淆点,尤其对于初学者来说。我的经验是,理解它们的核心差异在于“视角”。
whoami
su - otheruser
whoami
otheruser
而
who
w
who
w
所以,如果你只是想确认自己的身份,用
whoami
who
w
who
w
users
这几个命令虽然都与查看用户有关,但它们的输出细节和侧重点大相径庭,理解这些差异能帮助我们更高效地选择工具。
users
user1
users
user1
who
user1 pts/0 2023-10-27 10:00 (192.168.1.100) user2 tty1 2023-10-27 10:05
从这个输出,你可以清晰地看到
user1
192.168.1.100
pts/0
user2
tty1
who
w
who
10:30:00 up 1 day, 2:30, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT user1 pts/0 192.168.1.100 10:00 30s 0.05s 0.01s sshd: user1@pts/0 user2 tty1 10:05 1m 0.10s 0.02s bash
w
WHAT
PCPU
w
在Shell脚本中获取用户信息,往往涉及到自动化任务或权限控制,因此“安全”和“有效”是两个核心考量。我个人在编写脚本时,会根据需求选择不同的命令,并加入一些逻辑判断。
最直接获取当前脚本执行用户名的命令依然是
whoami
CURRENT_USER=$(whoami) echo "当前脚本执行用户是: $CURRENT_USER"
这种方式简单可靠,适用于只需要确认脚本运行身份的场景。
当需要处理“多用户登录”或更复杂的系统状态时,情况就有些不同了。如果你想在脚本中获取所有在线用户的列表,并对他们进行迭代处理,
who
users
awk
cut
例如,获取所有在线用户的唯一用户名列表:
ONLINE_USERS=$(users | tr ' ' '\n' | sort -u)
echo "当前在线用户列表:"
for user in $ONLINE_USERS; do
echo "- $user"
done这里
users
tr ' ' '\n'
sort -u
如果需要更详细的会话信息,比如每个用户的登录IP,
who
who
awk
grep
echo "当前所有登录会话详情:"
who | while read USER TTY LOGIN_DATE LOGIN_TIME FROM; do
# 这里的FROM可能包含括号,需要进一步处理
FROM=$(echo "$FROM" | tr -d '()') # 移除括号
if [[ -z "$FROM" ]]; then
FROM="本地"
fi
echo "用户: $USER, 终端: $TTY, 登录时间: $LOGIN_DATE $LOGIN_TIME, 来源: $FROM"
done这段脚本通过
while read
who
FROM
FROM
在处理多用户登录时,一个常见的安全考虑是避免泄露敏感信息,或者误操作其他用户的会话。我的建议是,在脚本中对获取到的用户信息进行操作时,始终加上严格的权限检查和用户身份验证。例如,在对某个用户的文件进行操作前,先确认操作用户是否是该文件的所有者或具有相应权限。
# 示例:检查某个用户是否在线,并执行特定操作
TARGET_USER="testuser"
if users | grep -qw "$TARGET_USER"; then
echo "$TARGET_USER 正在在线。"
# 这里可以添加对testuser相关资源的操作,但要确保权限
# 例如:sudo -u "$TARGET_USER" /path/to/script_for_testuser.sh
else
echo "$TARGET_USER 不在线。"
figrep -qw
以上就是Linux查看当前登录用户的命令的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号