Meneroka /Sistem Fail Proc di Linux

Meneroka /Sistem Fail Proc di Linux

Hari ini, kita akan melihat di dalam /Proc direktori dan mengembangkan kebiasaan dengannya. The /Proc Direktori hadir pada semua Linux sistem, tanpa mengira rasa atau seni bina.

Satu salah tanggapan bahawa kita perlu segera membersihkannya ialah /Proc Direktori adalah Tidak yang nyata Sistem fail, dalam erti kata istilah. Ia adalah Sistem fail maya. Terkandung dalam Procfs Adakah maklumat mengenai proses dan maklumat sistem lain. Ia dipetakan ke /Proc dan dipasang di boot masa.

Meneroka /Proc sistem fail

Pertama, mari masuk ke /Proc Direktori dan lihatlah:

# CD /Proc

Perkara pertama yang akan anda perhatikan ialah terdapat beberapa Fail berbunyi biasa, dan kemudian sekumpulan direktori bernombor. The direktori bernombor mewakili proses, lebih dikenali sebagai PIDS, Dan di dalamnya, perintah yang menduduki mereka. Fail mengandungi maklumat sistem seperti Memory (Meminfo), Maklumat CPU (cpuinfo), dan ada sistem fail.

Baca juga:  Perintah Percuma Linux untuk memeriksa memori fizikal dan memori swap

Mari kita lihat salah satu fail terlebih dahulu:

# kucing /proc /meminfo
Output sampel

yang mengembalikan sesuatu yang serupa dengan ini:

Memtotal: 604340 kb Memfree: 54240 kb Penampan: 18700 kb cache: 369020 kb swapcached: 0 kb aktif: 312556 kb tidak aktif: 164856 kb aktif (anon): 89744 kb aktif ( (fail): 164496 kb tidak dapat dielakkan: 0 kb mlocked: 0 kb swaptotal: 0 kb swapfree: 0 kb kotor: 0 kb menulis: 0 kb anonpages: 89724 kb dipetakan: 18012 kB shmem: 412 kb slab: … 

Seperti yang anda lihat, /Proc/Meminfo Mengandungi sekumpulan maklumat mengenai memori sistem anda, termasuk jumlah yang tersedia (dalam kb) dan jumlah percuma pada dua baris teratas.

Menjalankan perintah kucing pada mana -mana fail di /Proc akan mengeluarkan kandungan mereka. Maklumat mengenai mana -mana fail boleh didapati di halaman lelaki dengan menjalankan:

# lelaki 5 /proc /

Saya akan memberi anda rundown cepat /Proc Fail:

  1. /proc/cmdline - Maklumat Talian Perintah Kernel.
  2. /Proc/Console - Maklumat mengenai konsol semasa termasuk TTY.
  3. /Proc/peranti - Pemacu peranti yang kini dikonfigurasikan untuk kernel yang sedang berjalan.
  4. /Proc/DMA - Maklumat mengenai saluran DMA semasa.
  5. /Proc/FB - Peranti Framebuffer.
  6. /Proc/FilesystemS - Sistem fail semasa yang disokong oleh kernel.
  7. /Proc/iomem - Peta memori sistem semasa untuk peranti.
  8. /Proc/ioports - Kawasan pelabuhan berdaftar untuk komunikasi output input dengan peranti.
  9. /proc/loadavg - Purata beban sistem.
  10. /Proc/Locks - Fail yang dikunci oleh kernel.
  11. /Proc/Meminfo - Maklumat mengenai memori sistem (lihat contoh di atas).
  12. /Proc/misc - Pelbagai Pemandu Berdaftar untuk Pelbagai Peranti Utama.
  13. /Proc/Modul - Modul kernel yang dimuatkan pada masa ini.
  14. /Proc/Mounts - Senarai semua pemasangan yang digunakan oleh sistem.
  15. /Proc/partitions - Maklumat terperinci mengenai partition yang tersedia untuk sistem.
  16. /Proc/PCI - Maklumat mengenai setiap peranti PCI.
  17. /Proc/Stat - Rekod atau pelbagai statistik yang disimpan dari reboot terakhir.
  18. /Proc/Swap - Maklumat mengenai ruang swap.
  19. /Proc/uptime - Maklumat uptime (dalam saat).
  20. /proc/versi - Versi kernel, versi GCC, dan pengedaran Linux dipasang.

Dalam /Proc Direktori bernombor anda akan menjumpai beberapa fail dan pautan. Ingat bahawa nombor direktori ini berkaitan dengan Pid arahan yang dijalankan di dalamnya. Mari gunakan contoh. Pada sistem saya, ada nama folder /Proc/12:

# cd /proc /12 # ls
Output sampel
attr coredump_filter io mounts oom_score_adj smaps wchan autogroup cpuset latency mountstats pagemap stack auxv cwd had personaliti net cgroup evervation loginuid ns statm clear_refs exe peta numa

Sekiranya saya berlari:

# kucing/proc/12/status

Saya mendapat yang berikut:

Nama: Xenwatch State: S (Tidur) TGID: 12 PID: 12 PPID: 2 Tracerpid: 0 UID: 0 0 0 0 GID: 0 0 0 0 FDSIZE: 64 Kumpulan: Threads: 1 SIGQ: 1/4592 SIGPND: 000000000000000000000000000000 : 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0

Jadi, apakah maksudnya? Nah, bahagian penting berada di bahagian atas. Kita dapat melihat dari fail status yang dimiliki oleh proses ini XenWatch. Keadaannya sekarang adalah tidur, dan prosesnya ID adalah 12, Jelas. Kita juga dapat melihat siapa yang menjalankan ini, seperti Uid dan Gid adalah 0, menunjukkan bahawa proses ini tergolong dalam akar pengguna.

Dalam mana -mana direktori bernombor, anda akan mempunyai struktur fail yang serupa. Yang paling penting, dan deskripsi mereka, adalah seperti berikut:

  1. cmdline - baris arahan proses
  2. persekitaran - Pembolehubah Alam Sekitar
  3. FD - deskriptor fail
  4. had - Mengandungi maklumat mengenai had proses
  5. gunung - maklumat berkaitan

Anda juga akan melihat beberapa pautan dalam direktori bernombor:

  1. cwd - pautan ke direktori kerja semasa proses
  2. exe - pautan ke proses yang boleh dilaksanakan
  3. akar - pautan ke direktori kerja proses

Ini sepatutnya membuat anda bermula dengan membiasakan diri dengan /Proc direktori. Ia juga harus memberi gambaran tentang bagaimana beberapa arahan memperoleh maklumat mereka, seperti uptime, lsof, gunung, dan ps, hanya untuk menamakan beberapa.