目次
/procファイルシステム概要
システムのステータスは、多数のプログラムやメカニズムを使用して検査できます。ここではその一部について説明します。また、日常作業に役立つ一部のユーティリティとその最も重要なパラメータについても説明します。
ここでは、コマンドごとに関連出力の例を示してあります。これらの例の1行目はコマンド自体です(ドル記号(>)または#記号プロンプトの後)。省略は、大カッコ [...] で示されており、長い行は必要に応じて折り返されています。長い行の改行はバックスラッシュ(\)で示されています。
# command -x -y
output line 1
output line 2
output line 3 is annoyingly long, so long that \
we have to break it
output line 3
[...]
output line 98
output line 99
できるだけ多数のユーティリティを紹介できるように、簡潔に説明しています。すべてのコマンドの詳細は、マニュアルページで確認できます。また、ほとんどのコマンドではパラメータ--helpが認識されます。このパラメータを指定すると、使用可能なパラメータの簡略リストが表示されます。
プロセスIDがPIDのプロセスについて開いている全ファイルのリストを表示するには、-pを使用します。たとえば、現行のシェルで使用されている全ファイルを表示するには、次のように入力します。
tester@linux:~> lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 5552 tester cwd DIR 3,3 1512 117619 /home/tester bash 5552 tester rtd DIR 3,3 584 2 / bash 5552 tester txt REG 3,3 498816 13047 /bin/bash bash 5552 tester mem REG 0,0 0 [heap] (stat: No such \ file or directory) bash 5552 tester mem REG 3,3 217016 115687 /var/run/nscd/passwd bash 5552 tester mem REG 3,3 208464 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPE bash 5552 tester mem REG 3,3 882134 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATE bash 5552 tester mem REG 3,3 1386997 8837 /lib/libc-2.3.6.so bash 5552 tester mem REG 3,3 13836 8843 /lib/libdl-2.3.6.so bash 5552 tester mem REG 3,3 290856 12204 /lib/libncurses.so.5.5 bash 5552 tester mem REG 3,3 26936 13004 /lib/libhistory.so.5.1 bash 5552 tester mem REG 3,3 190200 13006 /lib/libreadline.so.5.1 bash 5552 tester mem REG 3,3 54 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERIC bash 5552 tester mem REG 3,3 2375 11663 \ /usr/lib/locale/en_GB.utf8/LC_TIME bash 5552 tester mem REG 3,3 290 11736 \ /usr/lib/locale/en_GB.utf8/LC_MONETARY bash 5552 tester mem REG 3,3 52 11831 \ /usr/lib/locale/en_GB.utf8/LC_MESSAGES/SYS_LC_MESSAGES bash 5552 tester mem REG 3,3 34 11862 \ /usr/lib/locale/en_GB.utf8/LC_PAPER bash 5552 tester mem REG 3,3 62 11839 \ /usr/lib/locale/en_GB.utf8/LC_NAME bash 5552 tester mem REG 3,3 127 11664 \ /usr/lib/locale/en_GB.utf8/LC_ADDRESS bash 5552 tester mem REG 3,3 56 11735 \ /usr/lib/locale/en_GB.utf8/LC_TELEPHONE bash 5552 tester mem REG 3,3 23 11866 \ /usr/lib/locale/en_GB.utf8/LC_MEASUREMENT bash 5552 tester mem REG 3,3 21544 9109 \ /usr/lib/gconv/gconv-modules.cache bash 5552 tester mem REG 3,3 366 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION bash 5552 tester mem REG 3,3 97165 8828 /lib/ld-2.3.6.so bash 5552 tester 0u CHR 136,5 7 /dev/pts/5 bash 5552 tester 1u CHR 136,5 7 /dev/pts/5 bash 5552 tester 2u CHR 136,5 7 /dev/pts/5 bash 5552 tester 255u CHR 136,5 7 /dev/pts/5
この例では、値としてシェルのプロセスIDをとる特殊なシェル変数$$が使用されています。
パラメータを指定せずにコマンドlsofを入力すると、現在開いている全ファイルがリストされます。開いているファイルの数が何千にも達することがあるので、そのすべてをリストすることはほとんど無意味です。ただし、開いているすべてのファイルのリストを検索機能と組み合わせて使用すると、役立つリストが生成されます。たとえば、次のように使用されているすべてのキャラクタデバイスのリストを表示します。
tester@linux:~> lsof | grep CHR bash 3838 tester 0u CHR 136,0 2 /dev/pts/0 bash 3838 tester 1u CHR 136,0 2 /dev/pts/0 bash 3838 tester 2u CHR 136,0 2 /dev/pts/0 bash 3838 tester 255u CHR 136,0 2 /dev/pts/0 bash 5552 tester 0u CHR 136,5 7 /dev/pts/5 bash 5552 tester 1u CHR 136,5 7 /dev/pts/5 bash 5552 tester 2u CHR 136,5 7 /dev/pts/5 bash 5552 tester 255u CHR 136,5 7 /dev/pts/5 X 5646 root mem CHR 1,1 1006 /dev/mem lsof 5673 tester 0u CHR 136,5 7 /dev/pts/5 lsof 5673 tester 2u CHR 136,5 7 /dev/pts/5 grep 5674 tester 1u CHR 136,5 7 /dev/pts/5 grep 5674 tester 2u CHR 136,5 7 /dev/pts/5