logname / who -u / 如何获取当前会话的pid

logname / who -u / 如何获取当前会话的pid

命令“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等。

相关内容