如何grep所有登录的用户?

Myt*_*hul 1 linux grep

如何从 Linux (Ubuntu) 的用户列表中 grep 所有登录用户?

到目前为止,我必须:

cat /etc/passwd | grep "/home" | cut -d: -f1
Run Code Online (Sandbox Code Playgroud)

小智 5

如上所述 w 或 who 向您显示谁已登录..

您还可以查看历史/当前数据查看 lastlog

和 lastb 用于最后一次错误登录。

w|grep pts|awk '{print $1}'



for ids in $(w|grep pts|awk '{print $1"_"$2}'); do id=${ids%%_*}; pts=${ids##*_}; actualperson=$(getent passwd $id|awk '{print $5}'); echo "Username: $id  is $actualperson and is logged into $pts";  done;
Run Code Online (Sandbox Code Playgroud)

用户名:xxx 正在登录 pts/0

用户名:xxx 正在登录 pts/5

 for ids in $(w|grep pts|awk '{print $1"_"$2}'); do 
   id=${ids%%_*};
   pts=${ids##*_}; 
   actualperson=$(getent passwd $id|awk '{print $5}'); 
   # echo to your console the persons details
   echo "Username: $id  is $actualperson and is logged into $pts"; 
   # Send a message to person logged in telling them you know their logged in
   echo "I know your logged in $actualperson"|tee /dev/$pts 2>&1>/dev/null;  
 done;
Run Code Online (Sandbox Code Playgroud)