logname / who -u / 현재 세션의 pid를 얻는 방법

logname / who -u / 현재 세션의 pid를 얻는 방법

"logname" 명령은 후속 "su" 호출에 관계없이 로그인한 사용자의 이름을 제공합니다. 예를 들어 현재 Mint에서는 "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(여기서는 셸의 pid가 아닌 2674)를 찾아야 합니다. 또는 컴퓨터 이름을 필터링하려면 ":0"으로 인코딩된 마지막 항목으로 찾아야 합니다. 어떻게 할 수 있니?

답변1

실행 중인 시스템 logind에서

loginctl user-status | head -n 1

현재 세션에 로그인한 사용자의 로그인 이름과 uid가 표시됩니다. sudo등에 대해서도 적용됩니다 .

관련 정보