리눅스

리눅스 lsof : list open files 명령어 사용법

coinAA 2022. 10. 10. 00:52

 

목차

     

    lsof란? / lsof 개념

    lsof 는 list open files 의 약자로 시스템에서 열린 파일 목록을 알려주고 사용하는 프로세스, 디바이스 정보, 파일의 종류등 상세한 정보를 출력해 준다.
    리눅스와 유닉스는 추상화된 파일 시스템(VFS - Virtual File System)을 사용하므로 일반 파일, 디렉터리, 네트워크 소켓, 라이브러리, 심볼릭 링크 등도 모두 파일로 처리되며 lsof 에서 상세한 정보를 확인할 수 있다.

    다만 유닉스마다 고유의 lsof 와 비슷한 용도의 명령어가 있지만 명령어와 옵션이 제각각이고 출력 정보가 상이하여 OS 가 바뀌면 사용하기가 힘들다는 단점이 있다.

     

    lsof 는 리눅스, AIX, Solaris, FreeBSD, Mac OS X 등 종류에 상관없이 일관된 옵션과 출력 형식을 갖는 장점이 있다.

     

     

    lsof 실행

    #아무 옵션 없이 입력
    lsof

    lsof 명령어 결과값

     

    lsof 컬럼별 의미

    컬럼 의미
    COMMAND 실행한 명령어
    PID process id
    USER 실행한 사용자
    FD File Descriptor, 파일의 종류. 
    TYPE 파일 종류
    DEVICE 장치 번호
    SIZE/OFF 파일의 크기나 오프셋
    NODE 노드 번호
    NAME 파일명

     

    lsof 사용자 지정

    아래 예시를 들기 위해 testuser1 계정을 생성한 후 서버에 ssh 접속만 해준 뒤 lsof -u 명령어를 입력해주었다.

    #lsof -u [유저명]
    lsof -u testuser1

    lsof -u testuser1 명령어 결과값

     

    lsof -i 포트 지정

    #lsof -i [프로토콜:포트번호]
    lsof -i TCP:22