본문 바로가기

지식생활/명령어

Linux - lsof 명령어 옵션 정리

lsof : list of files의 약자로 시스템의 열린 파일 목록을 확인하기 위해서 사용하는 명령어.

디바이스 정보, 파일 종류 등의 정보를 출력해 준다.


-a : 여러 옵션을 사용시 AND 연산으로 정보를 출력한다. 

$ lsof +D /dev -a -u test

## /dev 폴더에서 사용되고 유저가 test인 정보를 출력한다.


-c : 특정 명령어를 사용하고 있는 정보를 출력한다.

$ lsof -c ssh

## ssh 명령어를 사용하는 정보를 출력


-d : 현재 사용중인 File Descriptor 기준으로 정보를 출력한다.

$ lsof -d 0

## FD값이 0이면 출력한다.


+D : 특정 디렉토리의 열린 파일 정보를 출력한다.

$ lsof +D /tmp

## /tmp 폴더에서 열린 파일의 정보를 출력한다.


-F : 출력될 정보에서 원하는 필ㄷ의 정보만 출력한다. (lsof -F? : 도움말 참조)

$ lsof -F L

## 필드값 L(Login naem)만 출력한다.


-g : 특정 그룹ID로 정보를 출력한다.

$ lsof -g 0

## 그룹ID가 0인 정보만 출력한다.


-i : 특정 프로토콜과 포트 정보를 출력한다.

$ lsof -i TCP:3350

## TCP프로토콜에서 3350포트 사용하는 정보를 출력한다.


-N : NFS에 연결되어 있는 파일 정보를 출력한다.

$ lsof -N


-l : 계정이름이 아닌 UID(숫자)로 변경되어 출력한다.

$ lsof -l


-n : 호스트 이름되신 IP로 정보를 출력한다.

$ lsof -i TCP:3350 -n

## TCP프로토콜에서 3350포트를 사용하는 정보에서 localhost를 IP로 출력한다.


-p : 특정 PID가 참조하고 있는 프로그램 파일, 라이브러리를 출력한다.

$ lsof -p 30459


-r : 주기적으로 정보를 출력한다. (기본 15초)

$ lsof +D /dev -a -c ssh -a -u test -a -d 0 -r

## /dev폴더, ssh명령 사용, 유저 test, FD가 0 정보를 주기적으로 출력한다.


-t : 동작하고 있는 프로세서들의 PID만 출력한다.

$ lsof -t


-T : TCP 프로토콜로 통신하는 소켓만 출력한다.

$ lsof -T


-u: 특정 계정으로 열린 파일을 출력한다.

$ lsof -u test


-U : UDP 프로토콜로 통신하는 소켓만 출력한다.

$ lsof -U


-v : lsof 정보를 출력한다.

--help : 도움말을 출력한다.