![如何只打印当前登录的“root”用户IP地址?](https://linux22.com/image/54309/%E5%A6%82%E4%BD%95%E5%8F%AA%E6%89%93%E5%8D%B0%E5%BD%93%E5%89%8D%E7%99%BB%E5%BD%95%E7%9A%84%E2%80%9Croot%E2%80%9D%E7%94%A8%E6%88%B7IP%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
目前,我可以在该命令的输出顶部看到我的(根)IP 地址:
last
但我想要的只是将 IP 地址以干净的方式打印给我。
root pts/1 1.1.1.1 Tue Aug 19 03:33 still logged in
我们的愿望只是简单地得到:
1.1.1.1
答案1
因此,您需要用户当前远程登录的列表root
。该命令w
列出系统上的所有登录。所以你可以使用grep
或其他东西来操纵输出。
这将为您提供当前的 IP 地址远程登录信息root
以及本地登录信息。
w -s root
与该输出一起使用grep
,以获得您需要的输出:-
w -s root | grep -v ":0"
答案2
如上所述,有几种方法可以实现这一目标。我会使用awk
如下
last | awk '$1 ~ /root/ && /logged/{print $3 | "uniq" ;}'
或者
last | awk '$1 ~ /root/ && /logged/{a[$3]++}END{ for (i in a) print i}'
答案3
我同意@jasonwryan:
last | awk ' $1=/root/ {print $3}'|uniq
或者
last | awk ' $1=/root/ {print $3}'|sort -u
答案4
last=`last|tail -n <line number desired here>`;last=($last);echo ${last[2]}