리눅스 명령어 · 4 min read · Sep 16, 2025

리눅스 lsof 명령어 튜토리얼 (초보자를 위한 15가지 예제)

리눅스 lsof 명령어는 프로세스에 의해 열린 파일에 대한 정보를 출력합니다. 이 기사에서는 15가지 이해하기 쉬운 예제를 사용하여 리눅스 lsof 도구에 대해 논의할 것입니다. 이 튜토리얼에 언급된 모든 예제는 Ubuntu 22.04 LTS에서 테스트되었지만 Debian, Fedora 및 CentOS와 같은 다른 리눅스 배포판에서도 작동합니다.

lsof 명령어에 대하여

특정 프로세스(또는 모든 프로세스)에 의해 열린 파일의 이름을 빠르게 보려면 lsof 명령어를 사용하면 됩니다. 열린 파일은 일반 파일, 디렉토리, 라이브러리, 특수 파일 또는 블록 장치, 문자 특수 파일, 실행 중인 텍스트 참조 또는 스트림 또는 네트워크 파일일 수 있습니다. 포트 번호로 프로세스를 나열할 수도 있습니다. 루트 사용자로 로그인하지 않은 경우 명령어 앞에 ‘sudo’를 추가해야 할 수 있습니다.

리눅스 lsof 명령어 설치하기

대부분의 리눅스 배포판에는 lsof가 미리 설치되어 있습니다. 시스템에 아직 설치되지 않은 경우 다음 명령어를 사용하여 lsof를 설치하십시오:

Ubuntu 및 Debian에서:

$ sudo apt install lsof

CentOS 및 Fedora에서:

$ dnf install lsof

1. 모든 열린 파일 나열하기

모든 열린 파일을 나열하려면 인수 없이 lsof 명령어를 실행하십시오:

lsof

예를 들어, 위 명령어가 내 시스템에서 생성한 출력의 일부 스크린샷은 다음과 같습니다:

리눅스에서 모든 열린 파일 나열하기

첫 번째 열은 프로세스를 나타내고 마지막 열은 파일 이름을 포함합니다. 모든 열에 대한 자세한 내용은 명령어의 매뉴얼 페이지를 참조하십시오.

2. 특정 사용자에 속한 프로세스가 열린 파일 나열하기

이 도구는 특정 사용자에 속한 프로세스가 열린 파일을 나열할 수 있습니다. 이 기능은 -u 명령줄 옵션을 사용하여 접근할 수 있습니다.

lsof -u [사용자 이름]

예를 들어:

lsof -u administrator

특정 사용자에 속한 프로세스가 열린 파일 나열하기

3. 인터넷 주소에 따라 파일 나열하기

이 도구는 인터넷 주소에 따라 파일을 나열할 수 있습니다. 이는 -i 명령줄 옵션을 사용하여 수행할 수 있습니다. 예를 들어, IPv4 및 IPv6 파일을 별도로 표시할 수 있습니다. IPv4의 경우 다음 명령어를 실행하십시오:

lsof -i 4

예를 들어:

인터넷 주소에 따라 파일 나열하기

마찬가지로, IPv6의 경우 다음 명령어를 실행하십시오:

lsof -i 6

예를 들어: lsof -i 6

LSOF IPv6 리스너

4. 애플리케이션 이름으로 모든 파일 나열하기

-c 명령줄 옵션을 사용하면 프로그램 이름으로 열린 모든 파일을 가져올 수 있습니다.

$ lsof -c apache

‘apache’라는 단어로 시작하는 모든 프로그램이 표시되므로 전체 프로그램 이름을 사용할 필요는 없습니다. 따라서 우리의 경우 ‘apache2’ 애플리케이션의 모든 프로세스를 나열합니다.

프로그램 이름으로 열린 파일 가져오기

-c 옵션은 기본적으로 두 명령어의 단축키입니다:

$ lsof | grep apache

5. 특정 프로세스에 대한 파일 나열하기

이 도구는 프로세스 식별(PID) 번호에 따라 열린 파일을 표시할 수 있습니다. 이는 -p 명령줄 옵션을 사용하여 수행할 수 있습니다.

lsof -p [PID]

예를 들어:

lsof -p 856

특정 프로세스에 대한 파일 나열하기

계속해서, 출력에서 특정 PID를 제외할 수도 있습니다. 이를 위해 ^ 기호를 추가하십시오. 특정 PID를 제외하려면 다음 명령어를 실행하십시오:

lsof -p [^PID]

예를 들어: lsof -p ^1

특정 프로세스에 대한 파일 나열하기 - 결과

위 스크린샷에서 볼 수 있듯이, ID가 1인 프로세스는 목록에서 제외되었습니다.

6. 특정 파일을 연 프로세스의 ID 나열하기

이 도구는 특정 파일을 연 프로세스의 ID를 나열할 수 있습니다. 이는 -t 명령줄 옵션을 사용하여 수행할 수 있습니다.

$ lsof -t [파일 이름]

예를 들어:

$ lsof -t /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0

특정 파일을 연 프로세스의 ID 나열하기

7. 디렉토리 내 모든 열린 파일 나열하기

원하는 경우 lsof를 사용하여 디렉토리의 모든 열린 인스턴스를 검색할 수 있습니다(포함된 모든 파일 및 디렉토리). 이 기능은 +D 명령줄 옵션을 사용하여 접근할 수 있습니다.

$ lsof +D [디렉토리 경로]

예를 들어:

$ lsof +D /usr/lib/locale

특정 디렉토리에 lsof 제한하기

8. 모든 인터넷 및 x.25 (HP-UX) 네트워크 파일 나열하기

이는 앞서 설명한 -i 명령줄 옵션을 사용하여 가능합니다. 단, 인수 없이 사용해야 합니다.

$ lsof -i

모든 인터넷 및 x.25 (HP-UX) 네트워크 파일 나열하기

9. 어떤 프로그램이 포트를 사용하고 있는지 확인하기

-i 스위치는 특정 포트 번호를 수신하는 프로세스나 애플리케이션을 찾는 데 사용됩니다. 아래 예제에서는 포트 80을 사용하고 있는 프로그램을 확인했습니다.

$ lsof -i :80

포트 번호 대신 /etc/services 파일에 나열된 서비스 이름을 사용할 수 있습니다. HTTPS(443) 포트에서 어떤 앱이 수신하는지 확인하는 예:

$ lsof -i :https

결과:

열린 포트 또는 서비스에 따라 프로세스 나열하기

위 예제는 TCP와 UDP 모두를 확인합니다. TCP 또는 UDP만 확인하려면 ‘tcp’ 또는 ‘udp’라는 단어를 추가하십시오. 예를 들어, 어떤 애플리케이션이 포트 25 TCP를 사용하는지:

$ lsof -i tcp:25

또는 어떤 앱이 UDP 포트 53을 사용하는지:

$ lsof -i udp:53

10. 포트 범위에 따라 열린 파일 나열하기

이 유틸리티는 특정 포트 또는 포트 범위에 따라 열린 파일을 나열할 수 있습니다. 예를 들어, 포트 1-1024에 대한 열린 파일을 표시하려면 다음 명령어를 사용하십시오:

$ lsof -i :1-1024

포트 범위에 따라 열린 파일 나열하기

11. 연결 유형에 따라 열린 파일 나열하기 (TCP 또는 UDP)

이 도구는 연결 유형에 따라 파일을 나열할 수 있습니다. 예를 들어, UDP 특정 파일의 경우 다음 명령어를 사용하십시오:

$ lsof -i udp

연결 유형에 따라 열린 파일 나열하기 (TCP 또는 UDP)

마찬가지로 lsof를 사용하여 TCP 특정 파일을 표시할 수 있습니다.

12. lsof로 프로세스의 부모 PID 나열하기

lsof가 출력에서 부모 프로세스 ID(PPID) 번호를 나열하도록 강제하는 옵션도 있습니다. 해당 옵션은 -R입니다.

$ lsof -R

특정 PID에 대한 PPID 정보를 얻으려면 다음 명령어를 실행하십시오:

$ lsof -p [PID] -R

예를 들어:

$ lsof -p 3 -R

lsof로 프로세스의 부모 PID 나열하기

13. 사용자별 네트워크 활동 찾기

-i 및 -u 명령줄 옵션의 조합을 사용하여 리눅스 사용자의 모든 네트워크 연결을 검색할 수 있습니다. 이는 해킹당했을 수 있는 시스템을 검사할 때 유용할 수 있습니다. 이 예제에서는 www-data 사용자의 모든 네트워크 활동을 확인합니다:

$ lsof -a -i -u www-data

리눅스에서 사용자별 네트워크 활동 찾기

14. 모든 메모리 매핑 파일 나열하기

이 명령어는 리눅스에서 모든 메모리 매핑 파일을 나열합니다.

$ lsof -d mem

메모리 매핑 파일 찾기

15. 모든 NFS 파일 나열하기

-N 옵션은 모든 NFS(네트워크 파일 시스템) 파일의 목록을 보여줍니다.

$lsof -N

결론

비록 lsof가 많은 옵션을 제공하지만, 여기서 논의한 옵션만으로도 시작하는 데 충분할 것입니다. 이들로 연습을 마친 후에는 도구의 매뉴얼 페이지를 방문하여 더 많은 정보를 알아보세요. 아, 궁금한 점이나 질문이 있다면 아래에 댓글을 남겨주세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.