Linux 如何查找当前登录的终端的IP?

Linux 如何查找当前登录的终端的IP?,linux,bash,ssh,awk,Linux,Bash,Ssh,Awk,我能够编写一个脚本,返回登录的远程用户的IP地址。事情是这样的: nslookup `pinky | sed -n '2,2p' | awk '{ print $5}'` | tail -n2 | grep Address | awk '{ print $2}' 然而,由于涉及到大量的解析,我不能确定它在所有条件下都能完美地工作 有更好的方法吗?试试看 ip="${SSH_CLIENT/ */}" 它比较短 另一方面,我不知道你所说的2,2p到底是什么意思。您想要哪个远程用户?列表中的第一

我能够编写一个脚本,返回登录的远程用户的IP地址。事情是这样的:

nslookup `pinky | sed -n '2,2p' | awk '{ print $5}'` | tail -n2 | grep Address |  awk '{ print $2}'
然而,由于涉及到大量的解析,我不能确定它在所有条件下都能完美地工作

有更好的方法吗?

试试看

ip="${SSH_CLIENT/ */}"
它比较短


另一方面,我不知道你所说的
2,2p
到底是什么意思。您想要哪个远程用户?列表中的第一个?

为了帮助那些对在根目录下工作的类似解决方案感兴趣的人,下面是脚本:

#!/bin/bash
TERM_CLI_NAME=`who am i | awk '{print $5}'|sed 's/.\(.*\)./\1/'`
nslookup $TERM_CLI_NAME | tail -n2 | grep Address |  awk '{ print $2}'

不幸的是,当以root用户身份运行时(返回空字符串),这不起作用。2,2p只是一个sed操作员,用于隔离第二条线路。是的,脚本需要修改以识别相应的终端。是的,这就是我的问题——为什么是第二行?你在找什么用户?我给您的命令应该将ip设置为当前通过ssh连接的用户的远程ip,但我现在不确定这是否是您要查找的。我将su设置为root,并希望当前用户(我的最终目标是显示日志,不包括我执行的操作)在您
su-
之后,要找到这一点有些棘手,但我担心你的目标无论如何都无法达到理想的完美水平。放弃grep,写
awk'/Address/{print$2}'