/procディレクトリを活用する:Linux Hacks(2/4 ページ)
/procディレクトリには、Linuxシステムについてのあらゆる詳細な情報がある。/procを学ぶことで、Linuxのコマンドの仕組みを学んだり、さらにはシステム管理的なことを行ったりできる。
/procディレクトリの内容
/procディレクトリには仮想ディレクトリ/サブディレクトリがあり、ファイルは分野ごとに分類されている。ルートユーザーとしてコマンドラインで「ls /proc」を実行すると以下のような結果が表示される。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
数字の名前がついているディレクトリ(詳しくは後述)はそれぞれ、実行中のプロセスに対応している。またselfという特別なファイルもあり、これはカレントプロセスへのシンボリックリンクとなっている。仮想ファイルには、ハードウェア情報を提供するもの(/proc/cpuinfo、/proc/meminfo、/proc/interruptsなど)や、ファイル関連の情報を提供するもの(/proc/filesystemsや/proc/partitions)などがある。また/proc/sysの中には、カーネルの設定に関するファイルがある(これについても後述)。
「cat /proc/meminfo」を実行すると例えば以下のような結果が表示される。
MemTotal: 483488 kB
MemFree: 9348 kB
Buffers: 6796 kB
Cached: 168292 kB
(……以下複数行省略……)
前記の数字の幾つかは、「top」や「free」の実行結果にも表示されるものだ。実のところ、よく知られているさまざまなユーティリティは/procディレクトリにアクセスして情報を入手している。従って例えば使用中のカーネルのバージョンを知りたい場合には「uname -srv」を実行してもよいし、「cat /proc/version」を実行してその情報源を直接見てもよい。そのほかの興味深いファイルには次のようなものがある。
- /proc/apm:(インストールされていれば)APM(Advanced Power Management)の情報を提供する
- /proc/acpi:/proc/apmと似ているが、より新しいACPI(Advanced Configuration and Power Interface)の情報を大量に提供する。例えば「cat /proc/acpi/ac_adapter/AC/state」を実行すれば、「on line」または「off line」と表示されて、ノートPCがAC電源に接続されているかどうかを確認できる
- /proc/cmdline:ブート時にカーネルに渡されたパラメータを表示する。わたしのマシンの場合であれば「root=/dev/disk/by-id/scsi-SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 vga=0x317 resume=/dev/sda2 splash=silent PROFILE=QuintaWiFi」などの情報が表示される。これによりルートファイルシステムが含まれるパーティーションや、使用しているVGAモードなどを知ることができる。なお最後のPROFILEはopenSUSEのSystem Configuration Profile Management(翻訳記事)に関するパラメータだ
- /proc/cpuinfo:マシンのプロセッサ情報を提供する。例えばわたしのノートPCの場合、「cat /proc/cpuinfo」を実行すると以下のような内容が表示された
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : Mobile AMD Athlon(tm) XP 2200+
stepping : 1
cpu MHz : 927.549
cache size : 256 KB
前記は、0番の番号がつけられた、1GHz弱で走る、80686ファミリ(cpu familyの6は真ん中の数字を表わしている)のAMD Athlon XPプロセッサが1基あることを示している。
- /proc/loadavg:プロセッサの平均負荷を示すファイルで、直近の1分間、5分間、15分間のCPUの使用状況や、現在実行中のプロセス数などの情報を表示する
- /proc/stat:ブート時からの統計情報を表示する
- /proc/uptime:マシンの起動時からの経過時間(単位:秒)とアイドル時間(単位:秒)の2つの数値だけが含まれる小さなファイル
- /proc/devices:現在利用可能なすべてのキャラクタデバイスとブロックデバイスを表示する。なお/proc/ideと/proc/scsiではIDEデバイスとSCSIデバイスについての情報がそれぞれ提供されている
- /proc/ioports:キャラクタ/ブロックデバイスとのI/Oのやり取りを行うのに使用されるIOポートの範囲についての情報を提供する
- /proc/dma:使用中のDMA(Direct Memory Access)チャネルを表示する
- /proc/filesystems:カーネルがサポートしているファイルシステムの一覧を表示する。以下に例を示す。
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cpuset
(……複数行省略……)
nodev ramfs
nodev hugetlbfs
nodev mqueue
ext3
nodev usbfs
ext2
nodev autofs
左側の列はファイルシステムをブロックデバイスにマウントしているかどうかを示している。前記から、ext2とext3のパーティーションをマウントしていることが分かる。
- /proc/mounts:マシン上でマウントされているすべてのファイルシステムを表示する(出力結果は/etc/mtabに似ている)。同様に、/proc/partitionsと/proc/swapsはそれぞれ、すべてのパーティーションとすべてのスワップ空間とを表示する
- /proc/fs:/proc/fsには多くのサブディレクトリやファイルがあるが、とりわけNFS経由でファイルシステムをエクスポートしている場合に、共有されているファイルシステムとそのパーミッションとを示す/proc/fs/nfsd/exportsがある
- /proc/net:ネットワーク関連の情報源として/proc/netに勝るものはないだろう。本稿で/proc/net内にあるすべてのファイルを説明することはできないが、代表的なものを挙げると、/dev(ネットワークデバイス)、さまざまなiptables(ファイアウォール)関連のファイル、ネットワーク/ソケットについての統計情報、ワイヤレス関連の情報などがある。
そのほかにも、RAM関連のファイルが幾つかある。/proc/meminfoについてはすでに述べたが、マシン上のRAMメモリがどのように使用されているかを表示する/proc/iomemや、マシン上の物理RAMを表わす/proc/kcoreなどがある。なおほかの仮想ファイルとは違って/proc/kcoreはRAMと同じ容量(とわずかなオーバーヘッド分の容量)の大きさがあるように表示される(ただしこのファイルはバイナリのため、画面が変になってしまう恐れがあるためcatを使って読もうとするのはやめた方がよいだろう)。最後に、/proc/interrupts、/proc/irq、/proc/pci(全PCIデバイスのリスト)、/proc/busなどのハードウェア関連のファイルやディレクトリがあるが、含まれているのは非常に細部の専門的な情報なので、ほとんどのユーザーにとって必要になることはないだろう。
Copyright © 2010 OSDN Corporation, All Rights Reserved.