抱歉,我对 Linux bash 命令的了解非常基础,我已经搜索了一段时间,但我不能 100% 确定我需要搜索什么。
我想知道是否有办法在 Linux bash 脚本中获取当前登录用户的远程主机名?我有一个脚本,每次用户运行它时都需要登录。我这样获取日期:
cdat=`/bin/date +%a' '%d' '%h' '%Y', '%H':'%M`;
Run Code Online (Sandbox Code Playgroud)
我现在需要添加用户远程主机(而不是他们登录时使用的用户名)。我也不是 100% 确定我在这里使用了正确的术语,只是为了澄清一下;我所说的“远程主机名”是指在我通过 ssh 登录的大多数服务器上打印在屏幕上的相同输出,例如:
Last login: Mon Jul 22 16:35:09 2013 from win7-i7-stuart.my.domain.com
Run Code Online (Sandbox Code Playgroud)
我正在寻找那win7-i7-stuart.my.domain.com
一点。
最好使用该命令who am i
,这样您就不会获得重复的信息,并且在仅使用普通的who
.
$ who am i
sam pts/6 2013-07-22 13:21 (192.168.1.110)
Run Code Online (Sandbox Code Playgroud)
幽默地说,你也可以使用这个:
$ who mom likes
sam pts/6 2013-07-22 13:21 (192.168.1.110)
Run Code Online (Sandbox Code Playgroud)
您可以使用解析它,sed
以便它只是他们连接的主机:
$ who am i | sed 's/.*(\(.*\))/\1/'
192.168.1.110
Run Code Online (Sandbox Code Playgroud)
您还可以使用以下命令查看用户登录的完整历史记录last
:
$ last <username>
Run Code Online (Sandbox Code Playgroud)
例如:
$ last sam | less
sam pts/6 192.168.1.110 Mon Jul 22 13:21 still logged in
sam pts/6 192.168.1.110 Mon Jul 22 11:02 - 11:02 (00:00)
sam pts/5 192.168.1.110 Thu Jul 18 14:41 - 16:41 (01:59)
sam pts/5 192.168.1.110 Wed Jul 17 15:56 - 16:28 (00:31)
sam pts/5 192.168.1.110 Wed Jul 17 15:56 - 15:56 (00:00)
sam pts/4 192.168.1.110 Wed Jul 17 14:28 - 14:29 (00:00)
sam pts/7 192.168.1.110 Tue Jul 16 16:27 - 16:50 (00:23)
Run Code Online (Sandbox Code Playgroud)