GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan perintah lsof di Linux

Tugas dari perintah lsof adalah “mendaftarkan file yang terbuka” didalam sistem. File terbuka tidak selalu berarti pdf atau file teks, ini termasuk file disk atau pipa yang digunakan oleh proses di latar belakang.

Perintah ini adalah alat yang berguna untuk debugger Sistem Operasi dan administrator sistem.

Meskipun perintah lsof adalah utilitas Linux yang telah diinstal sebelumnya, pengguna Ubuntu/Debian dapat menginstal menggunakan apt jika Anda belum menginstalnya:

sudo apt install lsof

Pengguna Linux lainnya dapat menginstal melalui perintah instalasi standar mereka diikuti dengan lsof .

Mari kita segera beralih ke penggunaan lsof perintah:

Mencantumkan semua file yang terbuka di sistem

Dengan menjalankan perintah lsof tanpa opsi apa pun, kita dapat membuat daftar semua file yang terbuka di sistem. Melakukannya akan menyiram terminal dengan banyak data. Oleh karena itu, disarankan untuk menggunakan less perintah yang membatasi data yang dilempar oleh perintah apa pun

sudo lsof | less

Dengan menekan tombol 'ENTER' atau tombol panah bawah, kita dapat menavigasi ke bagian bawah daftar.

Setiap file dalam output memberikan informasi penting tentang jenis dan penggunaannya.

  • PERINTAH – Perintah Linux yang terkait dengan proses yang bertanggung jawab untuk membuka file.
  • PID – ID Proses dari proses yang menyimpan file.
  • TID – ID utas untuk masing-masing proses.
  • USER – Pengguna Linux yang mengelola proses.
  • FD – Deskriptor file yang digunakan oleh proses untuk mengasosiasikan dengan file.
    • cwd – direktori kerja saat ini
    • rtd – direktori root
    • txt – program tekstual seperti beberapa kode
    • mem – file yang dipetakan memori
  • JENIS – Jenis file
    • REG – File biasa
    • DIR – Direktori
    • CHR – File karakter
    • LINK – File tautan simbolis
  • PERANGKAT – Nomor perangkat yang terkait dengan file.
  • UKURAN/MATI – Ukuran file atau offsetnya dalam byte.
  • TIDAK – Nomor inode.
  • NAMA – Nama file.

Catatan: Beberapa informasi seperti inode atau nomor perangkat mungkin akan dihapus jika perintah tidak dijalankan menggunakan izin root.

Kita dapat mempelajari lebih lanjut tentang output dari halaman manual yang dapat diakses dari terminal dengan menjalankan man lsof.

Mencantumkan semua file yang dibuka oleh pengguna tertentu menggunakan perintah lsof

lsof perintah mendukung banyak opsi yang dapat diterapkan untuk memfilter file yang dibuka. Salah satunya adalah -u opsi untuk menampilkan file yang terbuka untuk pengguna tertentu.

sudo lsof -u <USER_NAME> | less

Kolom ketiga didasarkan pada pengguna yang bertanggung jawab atas pembukaan file. Mirip dengan keluaran dasar, terminal terlalu penuh dengan data yang tidak berarti dan oleh karena itu menggunakan less perintah disarankan.

Mencantumkan file yang terbuka di direktori tertentu

File ada di dalam direktori, oleh karena itu cukup sepele kita dapat mengekstrak file yang terbuka di direktori tertentu.

lsof +D <DIR_NAME>

Pada gambar di atas, kami mencantumkan file yang sedang dibuka di folder Documents. File yang dibuka adalah file C++ biasa.

Mencantumkan file yang terbuka dalam sistem file tertentu dengan perintah lsof

Alih-alih satu direktori, lsof perintah dapat membuat daftar file yang terbuka dari sistem file tertentu. Ini dicapai dengan menempatkan nama sistem file setelah lsof perintah.

lsof <FILE_SYSTEM>

Pada gambar di atas, kami menampilkan file yang dibuka di sistem file /proc.

Mencantumkan file yang terbuka dengan proses tertentu

Dengan menggunakan ID proses, kita dapat memfilter file yang dibuka. Ini dapat dilakukan dengan bantuan -p pilihan.

lsof -p <PID>

Cuplikan terminal di atas menunjukkan daftar file yang terbuka untuk proses dengan PID sebagai 3404.

Catatan: Simbol tanda sisipan (^) digunakan untuk meniadakan parameter dalam lsof memerintah. Misalnya lsof -p ^3404 , menampilkan daftar file yang terbuka untuk semua PID kecuali 3404.

Mencantumkan file jaringan yang terbuka

Linux menyimpan berbagai file jaringan untuk menyimpan alamat IP atau konfigurasi antarmuka jaringan. Jenis file terbuka ini dapat difilter dengan -i bendera.

lsof -i 

File-file ini memiliki karakteristik tertentu seperti jenis Protokol Jaringan. File yang terbuka selanjutnya dapat difilter menggunakan parameter tertentu seperti:

  • ‘4’ – File jaringan untuk IPv4
  • ‘6’ – File jaringan untuk IPv6
  • ‘TCP’ – File jaringan untuk TCP
  • ‘UDP’ – File jaringan untuk UDP
  • ‘TCP:25’ – File jaringan untuk TCP, dengan nomor port 25
  • 'TCP:1-25' – File jaringan untuk TCP, dengan nomor port dari 1 hingga 25

Misalnya:

lsof -i 6

Menggunakan Perintah lsof untuk Mencari file yang terbuka berdasarkan perintah

Dengan ribuan file terbuka di sistem, tampaknya mustahil untuk mencari perintah tertentu secara linier. Oleh karena itu, lsof perintah memiliki -c opsi untuk memfilter file yang terbuka berdasarkan perintah.

lsof -c <COMMAND>

Kesimpulan

lsof perintah mendukung banyak opsi yang efektif dalam debugging dan pemecahan masalah sistem. Pembaca yang tertarik dapat mengunjungi halaman manual melalui terminal dengan menjalankan man lsof , untuk mendapatkan lebih banyak pengetahuan tentang hak istimewa dan keluaran perintah.

Jangan ragu untuk berkomentar di bawah untuk pertanyaan atau umpan balik apa pun.


Linux
  1. Cara Menggunakan Perintah Tar di Linux

  2. Cara menggunakan Perintah Su di Linux

  3. Cara menggunakan perintah tar di Linux

  1. Cara Menggunakan Perintah Disown di Linux

  2. Cara Menggunakan Perintah md5sum di Linux

  3. Cara Menggunakan Perintah SS Linux

  1. Cara Menggunakan Perintah sentuh di Linux

  2. Cara Menggunakan Perintah kepala Linux

  3. Cara Menggunakan Perintah diff Linux