Trying to understand the “w” command in macOS

Trying to understand the “w” command in macOS

현재 일부 UNIX 명령을 배우고 있는데 몇 가지 설명할 수 없는 질문에 직면했습니다. 답변해주셔서 감사합니다.

  1. w터미널에서 명령을 실행하면 아래 그림과 같은 메시지가 표시됩니다. I Know는 s000내가 명령을 입력한 터미널을 의미합니다 w. 하지만 이름이 console누구인지, 어떤 이름으로 시스템에 로그인했는지 는 혼란스럽습니다 . 그리고 그것은 console한동안 유휴 상태였다고 합니다. console이 tty를 활성화하여 더 이상 유휴 상태가 되지 않도록 전환할 수 있습니까 ?

  2. 또한 로그인 중인 게스트 사용자를 종료하기 위한 또 다른 실험도 수행했습니다. 게스트가 실행 중인 bash 프로세스를 종료할 수 있다는 것을 알았지만 어떻게든 실행 중인 게스트를 종료하는 데 문제가 있습니다 console. 컴퓨터를 재부팅하지 않고 게스트를 완전히 시작하려면 어떻게 해야 합니까? 나는 을 죽일 수 없습니다 console. 이 문제의 근본 원인은 첫 번째 문제와 거의 동일합니다. "콘솔"은 무엇을 의미합니까? 물론 이는 내가 명령을 입력한 터미널을 의미하지 않습니다 w.

  3. 이 문제는 Ubuntu 14.04와 같은 Linux 시스템에서도 발견될 수 있으며 후자의 console경우 0또는 1. tty 열의 0 또는 1이 무엇을 의미하는지 궁금합니다. 그러나 나는 그것들이 와 비슷한 의미를 가지고 있다고 확신할 수 있습니다 console.

여기 이미지가 있어요

답변1

저는 macOS에 익숙하지 않지만 개념은 Linux의 개념과 매우 유사할 것으로 예상합니다. 이는 다소 지나치게 단순화된 것이지만 기본적으로 이 맥락에서 "콘솔"은 전체 컴퓨터를 의미합니다. 또는 좀 더 구체적으로 말하면 디스플레이 및 인간 입력 장치(키보드, 포인팅 장치 등)(네트워크 로그인은 "콘솔"에서 제외됩니다.)

컴퓨터에 로그인하면(네트워크를 통하지 않고 로컬로) 콘솔에 로그인하게 됩니다.

ls이제 여러분은 터미널, 즉 및 같은 명령을 실행할 수 있는 창에 확실히 익숙해졌습니다 w. 콘솔에 로그인하면 익숙한 창 인터페이스를 제공하는 명령(또는 명령 그룹)이 자동으로 실행됩니다. 일부 운영 체제에서는 이러한 일이 발생하는 메커니즘을 표시하고 때로는 조정할 수도 있습니다. 다른 사람들은 완전히 "내부"에서 이를 수행합니다.

Since the console doesn’t run any commands, except for the window system itself, it appears to be idle.  On most operating systems (and I expect that macOS is one of them), the only was to switch to the console is to exit from the window system — but that returns you to the console, which then automagically logs you out.

There’s another wrinkle:

  • The w command reads a system file, formats the data nicely for a person to look at it, and writes it to the standard output.
  • An entry gets written to the file whenever anybody logs in at the console or over the network.  Some (most? all?) systems also write an entry when the user at the console starts a new terminal window.
  • Entries normally get erased when a user logs out or closes a terminal window.
  • The key word in the above bullet is “normally”.  In some cases, if you kill a process (especially if you do it as superuser), you may interfere with the mechanism that erases the old data.  Thus, w might report information that is no longer valid.

If you don’t know how to use ps, you should learn.  You can use it instead of w, but it’s probably better to use them together.  Use w to give you a road map of what to look for in the ps output.  Don’t blindly believe everything w tells you; believe only the information that you can verify with ps.  For example, if you have killed all the “guest” processes, and w still says that “guest” is logged in, it’s probably giving you stale, invalid information.


You might find What is the difference between shell, console, and terminal? and What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'? to be worthwhile reading.

관련 정보