초보자를 위한 Linux pmap 명령 자습서(예제 5개)
이 페이지에서
- 리눅스 pmap 명령
- Q1. 피맵을 사용하는 방법?\n
- Q2. pmap이 확장 출력을 어떻게 표시합니까?\n
- Q3. 출력에서 pmap 쇼 장치 형식을 만드는 방법은 무엇입니까?\n
- Q4. 머리글과 바닥글의 pmap 출력을 제거하는 방법은 무엇입니까?\n
- Q5. pmap이 출력에 전체 경로를 표시하는 방법은 무엇입니까?\n
- 결론
Linux 명령줄은 현재 시스템에서 활성화된 프로세스에 대해 더 많이 알 수 있도록 도와주는 많은 도구를 제공합니다. 이러한 유틸리티 중 하나는 프로세스 메모리 맵을 보고하는 pmap입니다. 이 자습서에서는 이해하기 쉬운 몇 가지 예를 사용하여 pmap의 기본 사항에 대해 설명합니다.
그러나 그렇게 하기 전에 여기서 언급할 가치가 있는 모든 예제는 Ubuntu 22.04 LTS 시스템에서 테스트되었습니다.

리눅스 pmap 명령
Linux의 pmap 명령을 사용하면 하나 이상의 프로세스의 메모리 맵을 볼 수 있습니다. 구문은 다음과 같습니다.
pmap [options] pid [...]
도구 매뉴얼 페이지에서 설명하는 방법은 다음과 같습니다.
The pmap command reports the memory map of a process or processes.
다음은 pmap 명령이 작동하는 방법에 대한 더 나은 아이디어를 제공하는 몇 가지 Q&A 스타일의 예입니다.
Q1. 피맵을 사용하는 방법?
기본 사용법은 간단합니다. 옵션 없이 pmap 명령을 실행하기만 하면 됩니다. 물론 프로세스 PID를 입력으로 전달해야 합니다.
예를 들어 다음과 같은 방식으로 pmap을 사용했습니다.
pmap 5146
그리고 생성된 출력의 일부는 다음과 같습니다.
5146: gedit
000055bde4835000 8K r-x-- gedit
000055bde4a36000 4K r---- gedit
000055bde4a37000 4K rw--- gedit
000055bde5d32000 13944K rw--- [ anon ]
00007fc910000000 132K rw--- [ anon ]
00007fc910021000 65404K ----- [ anon ]
00007fc918000000 896K rw--- [ anon ]
00007fc9180e0000 64640K ----- [ anon ]
00007fc91c750000 204K r---- UbuntuMono-R.ttf
00007fc91c783000 644K r-x-- libaspell.so.15.2.0
00007fc91c824000 2048K ----- libaspell.so.15.2.0
00007fc91ca24000 20K r---- libaspell.so.15.2.0
00007fc91ca29000 4K rw--- libaspell.so.15.2.0
00007fc91ca2a000 8K r-x-- libenchant_aspell.so
00007fc91ca2c000 2044K ----- libenchant_aspell.so
00007fc91cc2b000 4K r---- libenchant_aspell.so
00007fc91cc2c000 4K rw--- libenchant_aspell.so
00007fc91cc2d000 44K r-x-- libenchant_hspell.so
00007fc91cc38000 2044K ----- libenchant_hspell.so
00007fc91ce37000 4K r---- libenchant_hspell.so
00007fc91ce38000 12K rw--- libenchant_hspell.so
00007fc91ce3b000 428K r-x-- libhunspell-1.6.so.0.0.1
00007fc91cea6000 2044K ----- libhunspell-1.6.so.0.0.1
00007fc91d0a5000 4K r---- libhunspell-1.6.so.0.0.1
00007fc91d0a6000 16K rw--- libhunspell-1.6.so.0.0.1
00007fc91d0aa000 16K r-x-- libenchant_myspell.so
00007fc91d0ae000 2048K ----- libenchant_myspell.so
00007fc91d2ae000 4K r---- libenchant_myspell.so
...
...
...
따라서 출력에는 먼저 프로세스의 이름이 표시된 다음 메모리 맵이 표시됩니다.
Q2. pmap이 확장 출력을 어떻게 표시합니까?
pmap show 출력을 확장 형식으로 만들려면 -x 명령줄 옵션을 사용합니다. 예를 들어:
pmap -x 5146
다음은 생성된 출력의 일부입니다.
5146: gedit
Address Kbytes RSS Dirty Mode Mapping
000055bde4835000 8 4 0 r-x-- gedit
000055bde4835000 0 0 0 r-x-- gedit
000055bde4a36000 4 4 4 r---- gedit
000055bde4a36000 0 0 0 r---- gedit
000055bde4a37000 4 4 4 rw--- gedit
000055bde4a37000 0 0 0 rw--- gedit
000055bde5d32000 13944 13692 13692 rw--- [ anon ]
000055bde5d32000 0 0 0 rw--- [ anon ]
00007fc910000000 132 44 44 rw--- [ anon ]
00007fc910000000 0 0 0 rw--- [ anon ]
00007fc910021000 65404 0 0 ----- [ anon ]
00007fc910021000 0 0 0 ----- [ anon ]
00007fc918000000 896 896 896 rw--- [ anon ]
00007fc918000000 0 0 0 rw--- [ anon ]
00007fc9180e0000 64640 0 0 ----- [ anon ]
00007fc9180e0000 0 0 0 ----- [ anon ]
00007fc91c750000 204 136 0 r---- UbuntuMono-R.ttf
00007fc91c750000 0 0 0 r---- UbuntuMono-R.ttf
00007fc91c783000 644 472 0 r-x-- libaspell.so.15.2.0
00007fc91c783000 0 0 0 r-x-- libaspell.so.15.2.0
00007fc91c824000 2048 0 0 ----- libaspell.so.15.2.0
00007fc91c824000 0 0 0 ----- libaspell.so.15.2.0
00007fc91ca24000 20 20 20 r---- libaspell.so.15.2.0
00007fc91ca24000 0 0 0 r---- libaspell.so.15.2.0
00007fc91ca29000 4 4 4 rw--- libaspell.so.15.2.0
00007fc91ca29000 0 0 0 rw--- libaspell.so.15.2.0
00007fc91ca2a000 8 8 0 r-x-- libenchant_aspell.so
00007fc91ca2a000 0 0 0 r-x-- libenchant_aspell.so
00007fc91ca2c000 2044 0 0 ----- libenchant_aspell.so
00007fc91ca2c000 0 0 0 ----- libenchant_aspell.so
00007fc91cc2b000 4 4 4 r---- libenchant_aspell.so
00007fc91cc2b000 0 0 0 r---- libenchant_aspell.so
...
...
...
더 자세한 정보가 필요한 경우 -X 명령줄 옵션을 사용할 수 있습니다.
Q3. 출력에서 pmap 쇼 장치 형식을 만드는 방법은 무엇입니까?
이것은 -d 명령줄 옵션을 사용하여 수행할 수 있습니다. 예를 들어:
pmap -d 5146
다음은 생성된 출력의 일부입니다.
5146: gedit
Address Kbytes Mode Offset Device Mapping
000055bde4835000 8 r-x-- 0000000000000000 008:00008 gedit
000055bde4a36000 4 r---- 0000000000001000 008:00008 gedit
000055bde4a37000 4 rw--- 0000000000002000 008:00008 gedit
000055bde5d32000 13944 rw--- 0000000000000000 000:00000 [ anon ]
00007fc910000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007fc910021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007fc918000000 896 rw--- 0000000000000000 000:00000 [ anon ]
00007fc9180e0000 64640 ----- 0000000000000000 000:00000 [ anon ]
00007fc91c750000 204 r---- 0000000000000000 008:00008 UbuntuMono-R.ttf
00007fc91c783000 644 r-x-- 0000000000000000 008:00008 libaspell.so.15.2.0
00007fc91c824000 2048 ----- 00000000000a1000 008:00008 libaspell.so.15.2.0
00007fc91ca24000 20 r---- 00000000000a1000 008:00008 libaspell.so.15.2.0
00007fc91ca29000 4 rw--- 00000000000a6000 008:00008 libaspell.so.15.2.0
00007fc91ca2a000 8 r-x-- 0000000000000000 008:00008 libenchant_aspell.so
00007fc91ca2c000 2044 ----- 0000000000002000 008:00008 libenchant_aspell.so
00007fc91cc2b000 4 r---- 0000000000001000 008:00008 libenchant_aspell.so
00007fc91cc2c000 4 rw--- 0000000000002000 008:00008 libenchant_aspell.so
00007fc91cc2d000 44 r-x-- 0000000000000000 008:00008 libenchant_hspell.so
00007fc91cc38000 2044 ----- 000000000000b000 008:00008 libenchant_hspell.so
00007fc91ce37000 4 r---- 000000000000a000 008:00008 libenchant_hspell.so
00007fc91ce38000 12 rw--- 000000000000b000 008:00008 libenchant_hspell.so
...
...
...
따라서 새 열 장치가 출력에 추가된 것을 볼 수 있습니다.
Q4. 머리글과 바닥글의 pmap 출력을 제거하는 방법은 무엇입니까?
pmap 출력에서 열 이름과 같은 항목을 보고 싶지 않은 경우 -q 명령줄 옵션을 사용할 수 있습니다.
예를 들어:
pmap -q -d 5146
다음은 출력이었습니다.
5146: gedit
000055bde4835000 8 r-x-- 0000000000000000 008:00008 gedit
000055bde4a36000 4 r---- 0000000000001000 008:00008 gedit
000055bde4a37000 4 rw--- 0000000000002000 008:00008 gedit
000055bde5d32000 13944 rw--- 0000000000000000 000:00000 [ anon ]
00007fc910000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007fc910021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007fc918000000 896 rw--- 0000000000000000 000:00000 [ anon ]
00007fc9180e0000 64640 ----- 0000000000000000 000:00000 [ anon ]
00007fc91c750000 204 r---- 0000000000000000 008:00008 UbuntuMono-R.ttf
00007fc91c783000 644 r-x-- 0000000000000000 008:00008 libaspell.so.15.2.0
00007fc91c824000 2048 ----- 00000000000a1000 008:00008 libaspell.so.15.2.0
00007fc91ca24000 20 r---- 00000000000a1000 008:00008 libaspell.so.15.2.0
00007fc91ca29000 4 rw--- 00000000000a6000 008:00008 libaspell.so.15.2.0
00007fc91ca2a000 8 r-x-- 0000000000000000 008:00008 libenchant_aspell.so
00007fc91ca2c000 2044 ----- 0000000000002000 008:00008 libenchant_aspell.so
00007fc91cc2b000 4 r---- 0000000000001000 008:00008 libenchant_aspell.so
00007fc91cc2c000 4 rw--- 0000000000002000 008:00008 libenchant_aspell.so
00007fc91cc2d000 44 r-x-- 0000000000000000 008:00008 libenchant_hspell.so
00007fc91cc38000 2044 ----- 000000000000b000 008:00008 libenchant_hspell.so
00007fc91ce37000 4 r---- 000000000000a000 008:00008 libenchant_hspell.so
00007fc91ce38000 12 rw--- 000000000000b000 008:00008 libenchant_hspell.so
따라서 출력에서 헤더가 제거된 것을 볼 수 있습니다.
Q5. pmap이 출력에 전체 경로를 표시하는 방법은 무엇입니까?
pmap이 매핑 열에 있는 파일의 전체 경로를 표시하도록 하려면 -p 명령줄 옵션을 사용할 수 있습니다.
예를 들어:
pmap -p 5146
다음은 이 명령으로 생성된 출력입니다.
5146: gedit
000055bde4835000 8K r-x-- /usr/bin/gedit
000055bde4a36000 4K r---- /usr/bin/gedit
000055bde4a37000 4K rw--- /usr/bin/gedit
000055bde5d32000 13944K rw--- [ anon ]
00007fc910000000 132K rw--- [ anon ]
00007fc910021000 65404K ----- [ anon ]
00007fc918000000 896K rw--- [ anon ]
00007fc9180e0000 64640K ----- [ anon ]
00007fc91c750000 204K r---- /usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf
00007fc91c783000 644K r-x-- /usr/lib/x86_64-linux-gnu/libaspell.so.15.2.0
00007fc91c824000 2048K ----- /usr/lib/x86_64-linux-gnu/libaspell.so.15.2.0
00007fc91ca24000 20K r---- /usr/lib/x86_64-linux-gnu/libaspell.so.15.2.0
00007fc91ca29000 4K rw--- /usr/lib/x86_64-linux-gnu/libaspell.so.15.2.0
00007fc91ca2a000 8K r-x-- /usr/lib/x86_64-linux-gnu/enchant/libenchant_aspell.so
00007fc91ca2c000 2044K ----- /usr/lib/x86_64-linux-gnu/enchant/libenchant_aspell.so
00007fc91cc2b000 4K r---- /usr/lib/x86_64-linux-gnu/enchant/libenchant_aspell.so
00007fc91cc2c000 4K rw--- /usr/lib/x86_64-linux-gnu/enchant/libenchant_aspell.so
00007fc91cc2d000 44K r-x-- /usr/lib/x86_64-linux-gnu/enchant/libenchant_hspell.so
00007fc91cc38000 2044K ----- /usr/lib/x86_64-linux-gnu/enchant/libenchant_hspell.so
00007fc91ce37000 4K r---- /usr/lib/x86_64-linux-gnu/enchant/libenchant_hspell.so
00007fc91ce38000 12K rw--- /usr/lib/x86_64-linux-gnu/enchant/libenchant_hspell.so
00007fc91ce3b000 428K r-x-- /usr/lib/x86_64-linux-gnu/libhunspell-1.6.so.0.0.1
00007fc91cea6000 2044K ----- /usr/lib/x86_64-linux-gnu/libhunspell-1.6.so.0.0.1
00007fc91d0a5000 4K r---- /usr/lib/x86_64-linux-gnu/libhunspell-1.6.so.0.0.1
00007fc91d0a6000 16K rw--- /usr/lib/x86_64-linux-gnu/libhunspell-1.6.so.0.0.1
00007fc91d0aa000 16K r-x-- /usr/lib/x86_64-linux-gnu/enchant/libenchant_myspell.so
00007fc91d0ae000 2048K ----- /usr/lib/x86_64-linux-gnu/enchant/libenchant_myspell.so
00007fc91d2ae000 4K r---- /usr/lib/x86_64-linux-gnu/enchant/libenchant_myspell.so
00007fc91d2af000 4K rw--- /usr/lib/x86_64-linux-gnu/enchant/libenchant_myspell.so
00007fc91d2b0000 44K r-x-- /usr/lib/x86_64-linux-gnu/enchant/libenchant_ispell.so
00007fc91d2bb000 2048K ----- /usr/lib/x86_64-linux-gnu/enchant/libenchant_ispell.so
따라서 전체 경로가 있는 파일 이름이 출력에 생성되는 것을 볼 수 있습니다.
결론
작업에 프로세스 메모리 맵 처리가 포함되어 있다면 이 도구가 적합합니다. 이 자습서에서는 이 명령의 기본 사용법을 설명했습니다. 여기에서 논의한 내용을 모두 연습했으면 도구 매뉴얼 페이지로 이동하여 자세히 알아보세요.