lsof: List Open Files and Ports
How to use lsof to check open files, listening ports, and process file handles on Linux.
June 12, 2026
lsof: List Open Files and Ports
lsof는 현재 시스템에서
열려 있는 모든 파일을 나열하는 명령어입니다.리눅스에서는 네트워크 소켓, 파이프, 디바이스 등 모든 것이 파일로 취급되기 때문에, lsof는 단순히 일반 파일뿐 아니라 열린 포트, 프로세스가 사용 중인 리소스 등을 폭넓게 확인할 수 있습니다.
1. Check All Open Files
아무 옵션 없이 실행하면 시스템 전체에서 열려 있는 모든 파일 목록을 출력합니다.
List all open filessh
2. Check Listening Ports
-i 옵션으로 네트워크 소켓을 필터링합니다.
-P(포트 번호 그대로 표시)와 -n(호스트명 역조회 생략)을 함께 사용하면 더 빠르게 결과를 확인할 수 있습니다.
-P(포트 번호 그대로 표시)와 -n(호스트명 역조회 생략)을 함께 사용하면 더 빠르게 결과를 확인할 수 있습니다.
Check all listening portssh
특정 포트를 점유하고 있는 프로세스를 확인할 때는
:port를 지정합니다.Check which process is using port 8080sh
3. Check Open Files by Process
-p 옵션으로 특정 PID가 열고 있는 파일 목록을 확인합니다.
Check open files by PIDsh
프로세스 이름으로 검색할 때는 -c 옵션을 사용합니다.
Check open files by process namesh
4. Check Open Files by User
-u 옵션으로 특정 사용자가 열고 있는 파일 전체를 확인합니다.
Check open files by usersh
반대로 특정 사용자를 제외하려면 ^를 앞에 붙입니다.
Exclude root user from resultssh
5. Check Which Process Is Using a File
특정 파일을 어떤 프로세스가 사용 중인지 확인합니다.
파일이 삭제되지 않거나 umount가 실패할 때 특히 유용합니다.
파일이 삭제되지 않거나 umount가 실패할 때 특히 유용합니다.
Check which process is using a specific filesh
마운트 포인트 전체를 점유 중인 프로세스를 확인할 때도 동일하게 사용합니다.
Check which process is using a mount pointsh
lsof는 포트 충돌 디버깅, 삭제된 파일 복구, 프로세스 리소스 추적 등 다양한 상황에서 필수적으로 활용되는 명령어입니다.
Option Summary
| 옵션 | 설명 | 예시 |
|---|---|---|
| none | 시스템 전체 열린 파일 목록 출력 | lsof |
-i | 네트워크 소켓 필터링 | lsof -i |
-i :PORT | 특정 포트를 사용 중인 프로세스 확인 | lsof -i :8080 |
-P | 포트 번호를 서비스명 대신 숫자로 표시 | lsof -i -P |
-n | 호스트명 역조회 생략 (속도 향상) | lsof -i -n |
-p PID | 특정 PID가 열고 있는 파일 목록 | lsof -p 1234 |
-c NAME | 특정 프로세스 이름으로 필터링 | lsof -c nginx |
-u USER | 특정 사용자가 열고 있는 파일 목록 | lsof -u root |
-u ^USER | 특정 사용자 제외 | lsof -u ^root |