命令“logname”为我提供了登录用户的名称,无论后续的“su”调用如何。例如,在当前的薄荷中,命令“logname”已损坏并且没有给出日志名。我想通过其他命令来获取它的功能。命令“who -u”的输出在其结果行之一中包含所需的信息,例如:
schade tty7 2019-04-13 10:01 02:41 2674 (:0)
user1 tty8 2019-04-13 10:05 02:41 3518 (:1)
schade pts/3 2019-04-13 10:33 . 6274 (fd00::eb5d:1659:bda5:8b95)
user2 tty9 2019-04-13 10:34 02:41 6475 (:2)
schade pts/7 2019-04-13 12:16 . 10727 (fd00::eb5d:1659:bda5:8b95)
但在哪一个呢?我应该找出我当前登录的 pid(这里是 2674,不是 shell 的 pid)作为每行中的倒数第二个条目,或者计算机名称作为以“:0”编码的最后一个条目来过滤掉它。我怎么能够?
答案1
在运行的系统上logind
,
loginctl user-status | head -n 1
将显示登录当前会话的用户的登录名和 uid。这甚至适用于sudo
等。