리눅스 - [lsof] 열린 파일 목록 및 네트워크 사용 파일 확인
lsof(List Open File)의 약자로써 Linux, AIX, Solaris, FreeBSD, Mac OS X 시스템에서 열린 파일 목록을 알려주고 해당 파일의 사용하는 프로세스, 포트, 디바이스 정보, 파일의 종류 등를 확인할 수 있는 아주 유용한 명령이다.
아무런 내용 없이 입력할 경우 기본적으로 현재 열려있는 파일 정보를 출력한다.
File
기본적인 기능으로 현재 시스템에 열려있는 파일 정보를 표시해 준다.
파일의 정보중에 필드는 다음을 의미한다.
COMMAND : 실행만 명령어
PID: 열린 파일이 동작하는 프로세스의 ID
USER: 실행한 유저
FD(File Descriptor)
cwd: current working directory
rtd: root directory
mem : memory-mapped file
txt: program text (code and data);
TYPE
DIR: Diretory
CHR: Character special file
REG: Regular file
Unix: Unix Domain Socket으로 TCP/IP보다 빠른 방식을 제공
DEVICE: 장치
SIZE/OFF: 파일의 크기, 혹은 상대 오프셋 크기
NODE: 노드 번호(파일시스템의 관리 번호)
NAME: 파일이름(경로 포함)
Port
가장 많이 사용하는 명령으로 -i 명령을 통해 이용이 가능하다.
이를 현재 아래와 같이 서비스 중인 포트를 구분해서 볼 수 있다.
lsof -i | grep LISTEN
여기에 가시성을 위해 -P 옵션을 사용하게 되면 아래와 같이 포트정보를 그대로 확인 할 수 있습니다.
lsof -i -P | grep LISTEN
이 명령을 이용해 TCP를 사용하는 프로세스를 확인하는 작업등을 쉽게 진행할 수 있다.