Baris perintah Linux menawarkan banyak alat yang membantu Anda mengetahui lebih banyak tentang proses yang saat ini aktif di sistem Anda. Salah satu utilitas tersebut adalah pmap, yang melaporkan peta memori proses. Dalam tutorial ini, kita akan membahas dasar-dasar pmap menggunakan beberapa contoh yang mudah dipahami.
Namun sebelum kita melakukannya, perlu disebutkan bahwa semua contoh di sini telah diuji pada mesin Ubuntu 20.04 LTS.
Perintah pmap Linux
Perintah pmap di Linux memungkinkan Anda melihat peta memori dari satu atau lebih dari satu proses. Berikut sintaksnya:
pmap [opsi] pid [...]
Dan inilah cara halaman manual alat menjelaskannya:
Perintah pmap melaporkan peta memori dari suatu proses atau proses.
Berikut adalah beberapa contoh gaya Q&A yang akan memberi Anda ide yang lebih baik tentang cara kerja perintah pmap.
Q1. Bagaimana cara menggunakan pmap?
Penggunaan dasar sederhana. Cukup jalankan perintah 'pmap' tanpa opsi apa pun. Tentu saja, Anda harus melewati PID proses sebagai input.
Sebagai contoh, saya menggunakan pmap dengan cara berikut:
pmap 5146
Dan inilah sebagian dari output yang dihasilkan:
5146: gedit
000055bde4835000 8K r-x-- gedit
000055bde4a36000 4K r---- gedit
000055bde4a37000 4K rw--- gedit
000055 anon ]
00007fc910000000 132K rw--- [ anon ]
00007fc910021000 65404K ----- [ anon ]
00007fc918000000 896K rw--- [ segera ]
00007fc4640K -->00007f --- [ segera ]
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 -x libenchant_aspell.so
00007fc91ca2c000 2044K ----- libenchant_aspell.so
00007fc91cc2b000 4K r---- libenchant_aspell.so
00007fc91cc2c000 4K 07000K r-x-- libenchant_hspell.so
00007fc91cc38000 2044K ----- libenchant_hspell.so00007fc91ce37000 4K r---- libenchant_hspell.so
00007fc91ce38000 12K rw--- libenchant_hspell.so
00007fc91ce3b000 428K r--- libenchant_hspell.so
00007fc91ce3b000 428K r-x- - lib ----- 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---- lib
...
...
Jadi begitulah, output pertama-tama menunjukkan nama proses dan kemudian mengikutinya dengan peta memori.
Q2. Bagaimana cara membuat pmap menampilkan keluaran yang diperluas?
Untuk membuat output pertunjukan pmap dalam format yang diperluas, gunakan opsi baris perintah -x. Misalnya:
pmap -x 5146
Berikut adalah bagian dari output yang dihasilkan:
Alamat Kbytes RSS Mode Mode Kotor
000055bde4835000 8 4 0 R-X-- GEDIT
000055bde4835000 0 0 0 R-X-- GEDIT
000055bde4a3 4 4 4 R-X- GEDIT
000055bde4a34 4 4 4 R-X- GEDIT
000055bde4a34 4 R-x --- gedit
000055bde4a36000 0 0 0 r---- gedit
000055bde4a37000 4 4 4 rw--- gedit
000055 37000 37000 37000 135 - [ segera ]
00007fc910021000 65404 0 0 ----- [ segera ]
00007fc910021000 0 0 0 ----- [ segera ] 80000 07f 8 0 ----- [ segera ]
00007f ]
00007fc918000000 0 0 0 rw--- [ segera ]
00007fc9180e0000 64640 0 0 ----- [ segera ]
0 0007fc9180e0000 0 0 0 ----- [ segera ]
00007fc91c750000 204 136 0 r---- UbuntuMono-R.ttf
00007 750000 />00007fc91c783000 644 472 0 r-x-- libaspell.so.15.2.0
00007fc91c783000 0 0 0 r-x-- libaspell .so .15.072.0 .15.2.0
00007fc91c824000 0 0 0 ----- libaspell.so.15.2.0
00007fc91ca24000 20 20 20 r---- libaspell<.so. 0 0 r---- libaspell.so.15.2.0
00007fc91ca29000 4 4 4 rw--- libaspell.so.15.2.0
00007fc91ca29000 0 .0
00007fc91ca2a000 8 8 0 r-x-- libenchant_aspell.so
00007fc91ca2a000 0 0 0 r-x-- libc
4 07000
. 00007 fc91ca2c000 0 0 0 ----- libenchant_aspell.so
00007fc91cc2b000 4 4 4 r---- libenchant_aspell.so
0 > .
...
...
Perhatikan bahwa jika Anda membutuhkan lebih banyak detail, Anda dapat menggunakan opsi baris perintah -X.
Q3. Bagaimana cara membuat format perangkat pertunjukan pmap dalam output?
Ini dapat dilakukan dengan menggunakan opsi baris perintah -d. Misalnya:
pmap -d 5146
Dan inilah sebagian dari output yang dihasilkan:
5146: gedit
Alamat Mode Kbytes Offset Perangkat Pemetaan
000055bde4835000 8 r-x-- 0000000000000000 008:00008 gedit
000055 3 000000- gedit
000055 3 000055bde4a37000 4 rw--- 0000000000002000 008:00008 gedit
000055bde5d32000 13944 rw--- 0000000000000000 000:00000 [ segera ]
00007fc910000000 132 rw--- 000000 65404 ----- 0000000000000000 000:00000 [ segera ]
00007fc918000000 896 rw--- 0000000000000000 000:00000 [ segera ]
00007fc9180e0000 64640 ----- 0000000000000000 000:00000 [ segera ]
00007fc91c750000 204 r---- 0000000000000000 008:00008 UbuntuMono-R.ttf
00007fc91c783000 644 r-x-- 0000000000000000 008:00008 libaspell.so.15.2. 08: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
00007fc91cc2b000 4 r---- 0000000000001000 008:00008 libenchant_aspell.so
00007fc91cc2c000 4 rw--- 0000000000002000 008:00008 libenchant_aspell .so
libenchant_hspell.so
00007fc91cc38000 2044 ----- 000000000000b000 008:00008 libenchant_hspell.so
00007fc91ce37000 4 r---- 000000000000a000 008:000008 libenchant_hspell.so 08:00008 libenchant_hspell.so
...
...
...
Jadi Anda dapat melihat kolom baru 'perangkat' telah ditambahkan di output.
Q4. Bagaimana cara menghapus output pmap dari header dan footer?
Jika Anda tidak ingin melihat hal-hal seperti nama kolom di output pmap, Anda dapat menggunakan opsi baris perintah -q.
Misalnya:
pmap -q -d 5146
Berikut adalah outputnya:
5146: gedit
000055bde4835000 8 r-x-- 0000000000000000 008:00008 gedit
000055bde4a36000 4 r---- 0000000000001000 008:00008 gedit
000055bde 4a 7000 gedit
000055bde5d32000 13944 rw--- 0000000000000000 000:00000 [ segera ]
00007fc910000000 132 rw--- 0000000000000000 000:00000 [ segera ]
00007fc000910021000 6540000 [ segera ]
00007fc918000000 896 rw--- 0000000000000000 000:00000 [ segera ]
00007fc9180e0000 64640 ----- 0000000000000000 000:00000 [ segera ]
00007fc91c783000 644 r-x-- 0000000000000000 008:00008 libaspell.so.15.2.0
00007fc91c824000 2048 ----- 00000000000a1000 008:00008 libaspell.so.
00007fc91ca24000 20 r---- 00000000000a1000 008:000008 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:000008 libenchant_aspell.so
00007 ->00007fc 008:00008 libenchant_aspell.so
00007fc91cc2c000 4 rw--- 0000000000002000 008:00008 libenchant_aspell.so
00007fc91cc2d000 44 r-x-- 0000000000000000 00 8000008 lib 000000000000b000 008:00008 libenchant_hspell.so
00007fc91ce37000 4 r---- 000000000000a000 008:00008 libenchant_hspell.so
00007fc91ce38000 12 rw--- 000000000000bJadi Anda dapat melihat header telah dihapus dari output.
Q5. Bagaimana cara membuat pmap menampilkan path lengkap di output?
Jika Anda ingin pmap menampilkan path lengkap ke file di kolom pemetaan, Anda dapat menggunakan opsi baris perintah -p.
Misalnya:
pmap -p 5146Dan inilah output yang dihasilkan oleh perintah ini:
5146: gedit
000055bde4835000 8K r-x-- /usr/bin/gedit
000055bde4a36000 4K r---- /usr/bin/gedit
000055bde4a37000 4K rw /bin/gedit
000055bde5d32000 13944K rw--- [ segera ]
00007fc910000000 132K rw--- [ segera ]
00007fc910021000 65404K ----- [ segera ]
00007 rw--- [ segera ]
00007fc9180e0000 64640K ----- [ segera ]
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. jadi
00007fc91cc2b000 4K r---- /usr/lib/x86_64-linux-gnu/enchant/libenchant_aspell.so
00007fc91cc2c000 4K rw--- /usr/lib/x86_64-linux-gnu /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_64-lib/x86_64-lib/x86_ 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
00007f c91d0ae000 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 jadi
00007fc91d2bb000 2048K ----- /usr/lib/x86_64-linux-gnu/enchant/libenchant_ispell.soJadi Anda dapat melihat bahwa nama file dengan jalur lengkap dihasilkan di output.
Kesimpulan
Jika pekerjaan Anda melibatkan berurusan dengan peta memori proses, alat ini adalah untuk Anda. Dalam tutorial ini, kami telah menjelaskan penggunaan dasar dari perintah ini. Setelah Anda selesai mempraktikkan semua yang telah kita diskusikan di sini, buka halaman manual alat untuk mempelajarinya lebih lanjut.
Tutorial Perintah Linux printenv untuk Pemula (dengan Contoh) Perintah objdump Linux Dijelaskan untuk Pemula (7 Contoh)Linux