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 파이어폭스
이 명령은 파이어폭스 프로세스에서 연 모든 파일을 표시합니다.
프로세스 ID로 필터링하려면 -p
를 사용할 수 있습니다. 옵션을 선택하고 프로세스 ID를 전달하십시오. top
을 사용할 수 있습니다. 대상 프로세스의 프로세스 ID를 가져오는 명령입니다.
예를 들어, firefox 프로세스의 PID를 얻으려면 다음 명령을 사용할 수 있습니다.
sudo ps aux | grep 파이어폭스
대상 프로세스의 PID가 있으면 lsof를 사용하여 열린 파일을 표시합니다.
sudo lsof -p 2121
위의 명령은 PID가 지정된 프로세스에서 연 파일을 인쇄합니다.
특정 사용자를 필터링하는 방법
특정 사용자가 연 파일만 보려면 -u
를 사용할 수 있습니다. 깃발. 예를 들어, Debian 사용자를 필터링하려면 다음 명령을 사용하십시오.
sudo lsof -u 데비안
특정 파일을 필터링하는 방법
특정 파일을 연 사용자와 프로세스만 알고 싶다고 가정합니다. 이렇게 하려면 파일 이름을 lsof:
에 전달합니다.sudo lsof /bin/sleep
위의 내용은 특정 파일만 필터링하고 사용자, 프로세스 ID 등을 포함한 관련 정보를 반환합니다.
마무리
이 간단한 자습서에서는 Linux에서 lsof 명령을 사용하여 열린 파일에 대한 정보를 시스템에 쿼리하는 방법에 대해 설명했습니다. 다음은 터미널에서 디렉토리의 내용을 나열하는 몇 가지 추가 명령입니다.