웹사이트 검색

초보자를 위한 Linux lsof 명령 자습서(예제 15개)


이 페이지에서

  1. lsof 명령 정보
  2. Linux lsof 명령 설치
  3. 1. 열려 있는 모든 파일을 나열하는 방법\n
  4. 2. 특정 사용자에 속하는 프로세스에서 연 파일을 나열하는 방법\n
  5. 4. 응용 프로그램 이름으로 모든 파일을 나열하는 방법\n
  6. 5. 프로세스에 특정한 파일을 나열하는 방법\n
  7. 6. 특정 파일을 연 프로세스의 ID를 나열하는 방법\n
  8. 7. 디렉토리에서 열려 있는 모든 파일을 나열하는 방법\n
  9. 8. 모든 인터넷 및 x.25(HP-UX) 네트워크 파일을 나열하는 방법\n
  10. 9. 포트를 사용하는 프로그램 찾기\n
  11. 10. 포트 범위를 기반으로 열린 파일을 나열하는 방법\n
  12. 11. 연결 유형(TCP 또는 UDP)에 따라 열린 파일을 나열하는 방법\n
  13. 12. lsof 목록을 만드는 방법 프로세스의 부모 PID\n
  14. 13. 사용자별 네트워크 활동을 찾는 방법\n
  15. 14. 메모리 매핑된 모든 파일 나열\n
  16. 15. 모든 NFS 파일 나열
  17. 결론

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

lsof 명령 정보

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

Linux lsof 명령 설치

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

우분투와 데비안:

$ sudo apt install lsof

Ond CentOS 및 페도라:

$ dnf install lsof

1. 열려 있는 모든 파일을 나열하는 방법

열려 있는 모든 파일을 나열하려면 인수 없이 lsof 명령을 실행하십시오.

lsof

예를 들어, 다음은 내 시스템에서 생성된 위 명령의 출력 일부에 대한 스크린샷입니다.

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

2. 특정 사용자에게 속한 프로세스가 연 파일을 나열하는 방법

이 도구를 사용하면 특정 사용자에 속하는 프로세스에서 연 파일을 나열할 수도 있습니다. 이 기능은 -u 명령줄 옵션을 사용하여 액세스할 수 있습니다.

lsof -u [사용자 이름]

예를 들어:

lsof -u 관리자

3. 인터넷 주소를 기반으로 파일을 나열하는 방법

이 도구를 사용하면 인터넷 주소를 기반으로 파일을 나열할 수 있습니다. 이것은 -i 명령줄 옵션을 사용하여 수행할 수 있습니다. 예를 들어 원하는 경우 IPv4 및 IPv6 파일을 별도로 표시할 수 있습니다. IPv4의 경우 다음 명령을 실행합니다.

lsof -i 4

예를 들어:

마찬가지로 IPv6의 경우 다음 명령을 실행합니다.

lsof -i 6

예를 들어:

lsof -i 6

4. 애플리케이션 이름으로 모든 파일을 나열하는 방법

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

$ lsof -c apache

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

-c 옵션은 기본적으로 두 명령에 대한 바로 가기입니다.

$ lsof | grep apache

5. 프로세스에 특정한 파일을 나열하는 방법

이 도구를 사용하면 프로세스 식별(PID) 번호를 기반으로 열린 파일을 표시할 수도 있습니다. 이것은 -p 명령줄 옵션을 사용하여 수행할 수 있습니다.

lsof -p [PID]

예를 들어:

lsof -p 856

계속해서 특정 PID 앞에 ^기호를 추가하여 출력에서 특정 PID를 제외할 수도 있습니다. 특정 PID를 제외하려면 다음 명령을 실행할 수 있습니다.

lsof -p [^PID]

예를 들어:

lsof -p ^1

위의 스크린샷에서 볼 수 있듯이 id가 1인 프로세스는 목록에서 제외됩니다.

6. 특정 파일을 연 프로세스의 ID를 나열하는 방법

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

$ lsof -t [file-name]

예를 들어:

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

7. 디렉토리에서 열린 모든 파일을 나열하는 방법

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

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

예를 들어:

$lsof +D /usr/lib/locale

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

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

$lsof -i

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

마찬가지로 lsof가 TCP 관련 파일을 표시하도록 할 수 있습니다.

12. 프로세스의 lsof 목록 부모 PID를 만드는 방법

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

$ lsof -R

특정 PID에 대한 PPID 정보를 얻으려면 다음 명령어를 실행하세요.

$ lsof -p [PID] -R

예를 들어:

$ lsof -p 3 -R

13. 사용자별 네트워크 활동을 찾는 방법

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

$ lsof -a -i -u www-data

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

이 명령은 Linux의 모든 메모리 매핑된 파일을 나열합니다.

$ lsof -d mem

15. 모든 NFS 파일 나열

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

$lsof -N

결론

lsof는 다양한 옵션을 제공하지만 여기에서 논의한 옵션만으로도 충분히 시작할 수 있습니다. 연습을 마친 후에는 도구 설명서 페이지로 이동하여 자세한 내용을 알아보세요. 아, 궁금한 점이나 질문이 있으시면 아래에 의견을 남겨주세요.