Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux에서 lsof 명령을 사용하여 열린 파일을 나열하는 방법

Linux에서 lsof 명령을 사용하여 열린 파일을 나열하는 방법

Linux의 장점은 부팅 프로세스에서 소프트웨어 패키지 설치에 이르기까지 모든 것을 쉽게 보고 관리할 수 있다는 것입니다. 여기에서는 Linux에서 lsof 명령을 사용하여 열린 파일과 이를 사용하는 프로세스를 보는 방법에 대해 설명합니다. 이를 보는 방법을 알면 시스템 작동 방식을 이해하고 특정 프로세스에 필요한 조치를 취하는 데 도움이 될 수 있습니다.

Lsof 명령

열린 파일과 이를 담당하는 사용자 또는 프로세스를 보려면 lsof를 사용합니다. 공익사업. 기본적으로 lsof 대부분의 배포판에 사전 설치되어 있습니다.

하지만 설치되어 있지 않다면 패키지 관리자를 사용하여 시스템에 설치할 수 있습니다.

데비안/우분투

데비안에서 다음 명령을 실행합니다.

sudo apt-get install lsof

아치/만자로

Manjaro 및 기타 Arch 기반 배포판에서는 다음 명령을 실행하여 pacman을 사용하십시오.

sudo pacman -S lsof

CentOS/REHL/페도라

CentOS 및 REHL 제품군의 경우 dnf를 사용할 수 있습니다.

sudo dnf 설치 lsof

lsof 명령을 사용하여 Linux 프로세스의 열린 파일 나열

대부분의 Linux 명령과 마찬가지로 lsof 유틸리티는 사용이 매우 간단합니다. lsof 명령을 입력하여 시작합니다. :

sudo lsof

위의 명령을 실행하면 lsof가 시스템에서 열린 파일에 대한 정보를 반환해야 합니다.

명령 PID TID TASKCMD 사용자 FD 유형 장치 크기/OFF 노드 이름init 1 root cwd DIR 8,48 4096 2 /init 1 root rtd DIR 8,48 4096 2 /init 1 root txt 4 REG 0,194 97nitin 9,194 6310 루트 0u CHR 1,3 0t0 15362 /dev/nullinit 1 루트 1u CHR 1,3 0t0 15362 /dev/nullinit 1 루트 2u CHR 1,3 0t0 15362 /dev/nullinit 1 루트 3w CHR 7,11530 kmsginit 1 루트 4u 양말 0,8 0t0 22689 프로토콜:AF_VSOCKinit 1 루트 5r REG 0,4 0 4026532185 mntinit 1 루트 6r REG 0,4 0 4026532201 mntinit 1 루트 7r DIR 8,48 4096 240 /home/capinit 1 루트 8u DIR 8,48 4096 2 /init 1 루트 9u 양말 0,8 0t0_VSOCK 프로토콜 

참고: sudo 권한이 있는 경우 sudo로 명령을 실행합니다. 특정 파일에 대한 "권한 거부됨" 오류를 방지합니다.

위의 출력에서 ​​볼 수 있듯이 lsof 출력에는 다음 열이 있습니다.

대표
명령어 대상 파일을 사용하는 프로세스의 이름을 표시합니다.
PID 파일을 사용하는 프로세스의 고유 식별자입니다.
TID 열은 스레드 식별자를 보여줍니다.
태스크CMD 작업 명령의 이름입니다.
사용자 프로세스를 실행하는 사용자의 사용자 이름 또는 UID.
FD 파일 및 모드의 파일 설명자.
유형 대상 파일과 연결된 노드입니다.
기기 쉼표로 구분된 기기 번호
크기/꺼짐 파일 오프셋 크기의 파일 크기(바이트)
노드 로컬 파일의 Inode 값. stat 명령을 사용하여 inode를 표시할 수 있습니다. 파일에 대한 정보입니다.
이름 파일의 마운트 지점입니다.

이제 lsof 명령 출력물의 내용이 무엇을 나타내는지 이해했으므로 명령을 사용하여 특정 정보를 필터링해 보겠습니다.

특정 프로세스를 필터링하는 방법

특정 프로세스에서 연 특정 파일만 필터링하려면 프로세스 이름이나 PID 값을 사용할 수 있습니다.

예를 들어, firefox 프로세스에서 사용하는 파일을 표시하려면 다음 명령을 사용할 수 있습니다.

sudo lsof -c 파이어폭스
Linux에서 lsof 명령을 사용하여 열린 파일을 나열하는 방법

이 명령은 파이어폭스 프로세스에서 연 모든 파일을 표시합니다.

프로세스 ID로 필터링하려면 -p를 사용할 수 있습니다. 옵션을 선택하고 프로세스 ID를 전달하십시오. top을 사용할 수 있습니다. 대상 프로세스의 프로세스 ID를 가져오는 명령입니다.

예를 들어, firefox 프로세스의 PID를 얻으려면 다음 명령을 사용할 수 있습니다.

sudo ps aux | grep 파이어폭스

대상 프로세스의 PID가 있으면 lsof를 사용하여 열린 파일을 표시합니다.

sudo lsof -p 2121
Linux에서 lsof 명령을 사용하여 열린 파일을 나열하는 방법

위의 명령은 PID가 지정된 프로세스에서 연 파일을 인쇄합니다.

특정 사용자를 필터링하는 방법

특정 사용자가 연 파일만 보려면 -u를 사용할 수 있습니다. 깃발. 예를 들어, Debian 사용자를 필터링하려면 다음 명령을 사용하십시오.

sudo lsof -u 데비안
Linux에서 lsof 명령을 사용하여 열린 파일을 나열하는 방법

특정 파일을 필터링하는 방법

특정 파일을 연 사용자와 프로세스만 알고 싶다고 가정합니다. 이렇게 하려면 파일 이름을 lsof:

에 전달합니다.
sudo lsof /bin/sleep
Linux에서 lsof 명령을 사용하여 열린 파일을 나열하는 방법

위의 내용은 특정 파일만 필터링하고 사용자, 프로세스 ID 등을 포함한 관련 정보를 반환합니다.

마무리

이 간단한 자습서에서는 Linux에서 lsof 명령을 사용하여 열린 파일에 대한 정보를 시스템에 쿼리하는 방법에 대해 설명했습니다. 다음은 터미널에서 디렉토리의 내용을 나열하는 몇 가지 추가 명령입니다.