ioerror

who 사용법 및 옵션 - 현재 시스템에 로그인한 사용자 정보 확인 명령어 본문

OS

who 사용법 및 옵션 - 현재 시스템에 로그인한 사용자 정보 확인 명령어

반응형

who 사용법 및 옵션 - 현재 시스템에 로그인한 사용자 정보 확인 명령어

who - Who

현재 시스템에 로그인한 사용자 정보 확인 명령어

who 명령어는 현재 시스템에 로그인되어 있는 모든 사용자의 계정명, 터미널 라인, 접속 시각, 원격 접속 호스트 주소 등의 정보를 확인하는 유닉스/리눅스 기본 시스템 관리 명령어이다. 시스템 관리자가 현재 접속 중인 사용자를 모니터링하거나, 터미널 환경에서 자신이 접속한 세션의 정보를 빠르게 조회할 때 유용하게 활용된다.

1. 명령어 용도

  • 다양한 유닉스 계열 OS 및 모든 POSIX 호환 셸에서 기본적으로 사용 가능함
  • 다중 사용자 서버 환경에서 현재 접속해 있는 계정들의 활동 상태 및 원격 IP 확인시 사용함
  • 시스템이 언제 마지막으로 부팅되었는지 부팅 시각을 간편하게 조회할 때 활용함
  • 스크립트 작성 시 현재 로그인된 전체 사용자 수를 카운트하거나 세션 유효성을 판별할 때 활용함

2. 명령어 서식

Bash
 
who [옵션] [파일] [am i]

3. 명령어 옵션

  • 주요 옵션 소개 테이블
옵션 설명 사용가능 OS 및 쉘
-a, --all -b -d --login -p -r -t -T -u 옵션을 모두 적용한 상세 정보 출력 [GNU/Linux] [macOS] [FreeBSD]
-b, --boot 마지막 시스템 부팅 시각 출력 [GNU/Linux] [macOS] [FreeBSD]
-d, --dead 종료된(dead) 프로세스 목록 출력 [GNU/Linux]
-H, --heading 각 열의 제목(헤더)을 포함하여 출력 [GNU/Linux] [macOS] [FreeBSD]
-l, --login 로그인 대기 상태인 프로세스 목록 출력 [GNU/Linux]
--lookup DNS 조회를 통해 원격 호스트 이름을 정방향/역방향으로 출력 [GNU/Linux]
-m 현재 표준 입력에 연결된 세션의 사용자 정보만 출력 (who am i와 동일) [GNU/Linux] [macOS] [FreeBSD]
-p, --process init에 의해 생성되어 현재 실행 중인 프로세스 출력 [GNU/Linux]
-q, --count 로그인된 모든 사용자의 계정명과 사용자 수만 요약 출력 [GNU/Linux] [macOS] [FreeBSD]
-r, --runlevel 현재 시스템의 런레벨(runlevel) 정보 출력 [GNU/Linux]
-s, --short 기본 형식으로 사용자의 짧은 정보만 출력 [GNU/Linux]
-t, --time 마지막으로 시스템 시계가 수정된 시각 출력 [GNU/Linux]
-T, -w, --mesg 사용자의 메시지 수신 가능 상태(+/-/?) 표시 [GNU/Linux] [macOS] [FreeBSD]
-u, --users 로그인 정보와 함께 유휴 시간(idle time) 및 프로세스 ID(PID) 출력 [GNU/Linux] [macOS] [FreeBSD]
--help 명령어 사용법 출력 [GNU/Linux]
--version 버전 정보 출력 [GNU/Linux]
am i 표준 입력 세션의 현재 접속자 정보만 출력 [GNU/Linux] [macOS] [FreeBSD]
  • 명령어 옵션 사용시 결과 예시
Bash
 
# 기본 사용 (현재 로그인한 사용자 목록 출력)
who
# user1    pts/0        2026-08-09 10:15 (192.168.1.100)
# user2    pts/1        2026-08-09 11:30 (192.168.1.105)

# 헤더 정보와 함께 사용자 세션 및 유휴 시간 확인
who -Hu
# NAME     LINE         TIME           IDLE          PID COMMENT
# user1    pts/0        2026-08-09 10:15 .            1234 (192.168.1.100)
# user2    pts/1        2026-08-09 11:30 01:12        5678 (192.168.1.105)

# 시스템 부팅 시각 확인
who -b
#          system boot  2026-08-01 09:00

# 로그인한 총 사용자 수 요약 출력
who -q
# user1 user2
# # users=2

# 현재 내 터미널 정보만 출력
who am i
# user1    pts/0        2026-08-09 10:15 (192.168.1.100)
  • NAME: 로그인한 사용자의 계정명이다.
  • LINE: 사용자가 연결된 터미널 라인(tty 또는 pts)을 의미한다.
  • TIME: 로그인한 날짜와 시각을 나타낸다.
  • IDLE: 해당 세션이 입력 없이 비활성(유휴) 상태로 유지된 시간이다. (. 표시는 1분 이내 활동을 의미한다.)
  • PID: 로그인 세션과 관련된 프로세스 식별 번호이다.
  • COMMENT: 접속한 원격 호스트 IP 주소 또는 호스트명이 표시된다.

4. 명령어 특이사항(유의사항)

  • who 명령어는 기본적으로 /var/run/utmp (또는 /var/log/wtmp) 파일에 기록된 현재 로그인 세션 정보를 읽어와 출력한다. 따라서 해당 로그 파일의 권한이 잘못되어 있거나 손상된 경우 출력이 누락될 수 있다.
  • who am i와 whoami는 유사해 보이지만 작동 방식이 다르다. whoami는 현재 유효 사용자 ID(effective user ID)의 이름만을 반환하는 셸 내장 또는 독립 명령어인 반면, who am i (또는 who -m)는 /dev/tty에 할당된 가상 터미널 세션의 로그인 정보 전체를 출력한다.
  • sudo su 또는 su -로 다른 계정으로 전환하더라도 who am i는 최초로 로그인했던 원본 터미널 접속 세션을 기준으로 정보를 조회하여 표시한다.

관련 명령어들

  • w : 현재 로그인한 사용자 정보와 함께 각 사용자가 실행 중인 현재 프로세스와 CPU 사용량을 함께 출력한다.
  • whoami : 현재 셸 세션을 실행 중인 유효 사용자(effective user)의 이름을 출력한다.
  • id : 현재 로그인한 사용자의 UID, GID 및 소속 그룹 정보를 자세히 출력한다.
  • last : 과거에 로그인했던 사용자들의 접속 기록 및 시스템 재부팅 이력을 출력한다.
  • users : 현재 시스템에 로그인되어 있는 모든 사용자 이름을 간략히 출력한다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

반응형
Comments