Не похоже, чтобы Tcl давал вам какой-либо контроль над cd и pwd.
Альтернативный вариант :разрешает символические ссылки в WORK env var и сравнивает это с pwd:
format {cd "%s"} [expr {[pwd] eq [file normalize $::env(WORK)] ? {$WORK} : [pwd]}]
На моем компьютере с Red Hat 7 я запускаю who am i
или who am I
или who -m
.
В последнем столбце будет указано имя машины, на которой я вошел в систему из (в скобках ). Если я нахожусь на своем локальном компьютере, в последнем столбце будет показан идентификатор моей консоли/дисплея. На моей машине это (:0 ).
Внимание Это работает только в интерактивной оболочке. ssh ScottieH@RemoteServer who -m
даст неожиданные результаты.
На моей машине с Red Hat 7 выдает ошибку.
YMMV
Вы можете использовать w
, who
или даже last
.
Также вы можете просмотреть sshd
журналы,journalctl -u sshd -n 100
ssh всегда устанавливает для переменной среды SSH_CONNECTION
в удаленной оболочке значение, содержащее хост и порт клиента и сервера.
Это также работает из не -интерактивных оболочек и на машинах, на которых нет utmp/systemd/что бы то ни было (, например. на роутере или камере ).
ssh root@unq 'echo $SSH_CONNECTION'
192.168.38.152 35466 192.168.38.1 22
Затем вы можете выполнить обратный поиск хоста по этому адресу:
ssh root@unq.und 'nslookup "${SSH_CONNECTION%% *}"'
...
Name: 192.168.38.152
Address 1: 192.168.38.152 bursku.und