ここでは、絶対に覚えておきたい必須コマンドについて解説していきます。
[ uname ] [ df ] [ du] [ who] [ w ] [ finger
] [ users ] [ last ] [ lastlog ] [ free
]
[ ps ] [ pstree ] [ pidof ] [ lsof ] [ top
] [ reboot ] [ shutdown ] [ halt ]
[ dmesg ] [ Ctrl +s,Ctrl + q ] [ apm ] [
wall ] [ ulimit ] [ hdparm ]
|
|
■システムの情報を表示する [ uname ]
システムの情報を表示するには、uname コマンドを使用します。-a オプションをつけると全ての情報を表示します。
$ uname -a
Linux ns.kororo.jp 2.4.20-6 #1 Thu Feb
27 10:06:59 EST 2003 i686 i686 i386 GNU/Linux |
|
|
-a |
全ての情報を表示する |
|
-s |
カーネル名を表示する |
|
-n |
ホスト名を表示する |
|
-r |
カーネルリリースを表示する |
|
-v |
カーネルバージョンを表示する |
|
-p |
プロセッサのタイプを表示する |
|
-i |
ハードウェアプラットフォームを表示する |
|
-o |
オペレーティングシステムを表示する |
|
■ファイルシステムの使用状況を表示する [ df ]
ファイルシステムの使用状況を確認するには、df コマンドを使用します。-h (human-readable)オプションを付け加えると、わかりやすい数値で表示されます。
$ df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda6 1004M 99M 855M 11% /
/dev/hda1 46M 9.2M 35M 22% /boot
/dev/hda7 7.4G 71M 6.9G 1% /home
none 125M 0 125M 0% /dev/shm
/dev/hda2 8.2G 2.5G 5.4G 32% /usr
/dev/hda3 8.2G 112M 7.7G 2% /var
|
|
|
-a |
0ブロックのファイルシステムも含めて、全て表示する |
|
-h |
直感的にわかりやすい数値で表示する |
|
-i |
i-node 情報を表示する |
|
-k |
KB単位で表示する |
|
-m |
MB単位で表示する |
|
-t |
表示させるファイルシステムのタイプを指定する(例:df
-t ext3) |
|
■指定ディレクトリ内のディスク使用状況を表示する [ du ]
指定ディレクトリ以下のディスク使用状況を確認するには、du コマンドを使用します。指定オプションには、df
と同様のオプションが使用できます。
# du -h /var/log
4.0K /var/log/canna
316K /var/log/squid
864K /var/log |
|
■ログイン状況を確認する[ who ] [ w ] [ finger ] [ users ]
Linux にログインしているクライアントを確認するには、who コマンド、もしくは、w とタイプします。w
は、現在ログインしているユーザー名とその利用状況を表示します。自宅で使用する分にはあまり使わないコマンドですね(笑)。finger
は、ユーザーの情報を表示し、引数にユーザー名を指定すると、ホームディレクトリやシェルの情報などが表示されます。これらのコマンドは、/var/log/utmp
の中のシステムにログインしているユーザーの情報を示すバイナリデータを読み出して表示します。
# who
kororo pts/3 Feb 3 14:05 (koro.kororo.jp)
# w
14:12:51 up 17:28, 1 user, load average:
0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
kororo pts/3 koro.kororo.jp 2:05pm 0.00s
0.16s 0.03s sshd: kororo [priv]
# finger kororo
Login: kororo Name: (null)
Directory: /home/kororo Shell: /bin/bash
On since Tue Feb 3 14:05 (JST) on pts/3
from koro.kororo.jp
New mail received Tue Feb 3 01:24 2004 (JST)
Unread since Tue Feb 3 01:20 2004 (JST)
No Plan.
# users
kororo foo |
|
◎whoオプション
|
-a |
全ての情報を表示する |
|
-b |
最後にシステムが起動した時刻を表示する |
|
-d |
終了したプロセスを表示する |
|
-H |
ヘッダ行を表示する |
|
-r |
現在のランレベルを表示する |
|
-u |
ログイン中のユーザーを一覧表示する |
|
-t |
最後にシステムの時刻が変更された時刻を表示する |
|
-q |
ログイン中のユーザのログイン名とユーザ数を表示する |
|
■最後にログインしたユーザーの情報を表示する [ last ]
最後にログインしたユーザーを表示するには、last コマンドを使用します。last コマンドは、/var/log/wtmp
の中の各ユーザーごとのログイン時刻、使用時刻を示すバイナリデータを読み出し、ユーザーログイン状況を表示します。
lastlog コマンドを使う事で、ユーザーが最後にログインした日時を表示させる事ができます。なお、lastlog
のログファイルは、/var/log/lastlog に記録されており、上記で説明した、finger もここに記述されているログファイルを読み込み、ユーザーが最後にログインした情報を追加して表示します。/var/log/lastlog
には、ユーザー数分しか記録されないのでログのローテーションなどは考える必要がないでしょう。必要ない場合は、削除する事ができます。削除してもコマンド実行時にエラーは発生しません。削除後にまた必要となった場合は、空ファイルを再度作成しておけば、ログファイルに自動的に記録されます。
# last
kororo pts/0 172.16.50.4 Tue Feb 3 15:21
still logged in
reboot system boot 2.4.20-6 Tue Feb 3 15:12
(00:20)
kororo pts/0 172.16.50.4 Tue Feb 3 14:56
- down (00:13)
reboot system boot 2.4.20-6 Tue Feb 3 14:55
(00:14)
# lastlog
ユーザ名 ポート 場所 最近のログイン
root tty1 月 2月 2 20:00:26 +0900 2004
bin **一度もログインはありません**
daemon **一度もログインはありません**
adm **一度もログインはありません** |
|
■メモリの使用状況を確認する [ free ]
メモリの使用状況を確認するには、free コマンドを使用します。
# free -t
total used free shared buffers cached
Mem: 255312 251636 3676 0 79152 123176
-/+ buffers/cache: 49308 206004
Swap: 265032 15608 249424
Total: 520344 267244 253100
# free -tm total used free shared buffers cached Mem: 503 434 68 0 9 104 -/+ buffers/cache: 319 183 Swap: 258 0 258 Total: 762 434 327
|
|
残りの空きメモリ量は単純に free 項の68MBだけを見るのではなく、free+buffers+cashed(+swap)を加算した値になります。ここでは、物理メモリに
68+9+104=183MB残っており、さらに物理メモリが不足した際に仮想的にディスク領域をメモリに割り当てるswap
を足すと計327MBのメモリが残っていることになります。
|
-t |
RAM と swap のトータルメモリを表示する |
|
-s 秒数 |
指定秒ごとにリアルタイムに更新して表示する |
|
-b |
-b でバイト、-k でキロバイト、-m でメガバイト、-g でギガバイト表示する |
|
■実行中のプロセスを表示する [ ps ]
実行中のプロセスを表示するには、ps コマンドを使用します。以下は、パイプで繋げてsshd のプロセスを検索した結果を標準出力しています。
# ps aux | grep sshd
root 612 0.0 0.2 2548 760 ? S Feb01 0:01
/usr/local/sbin/sshd |
|
|
-a |
全てのユーザーのプロセスを表示 |
|
-f |
プロセスをツリー形式で表示 |
|
-p |
引数に指定したプロセスIDの情報のみ表示 |
|
-u |
プロセスを実行しているユーザー名を同時に表示 |
|
-x |
全ての制御端末のプロセスを表示(デーモンのように制御端末のないプロセスの情報も表示する)。 |
|
-i |
ファイルに i-node 番号をつけて表示する |
|
-l |
ファイルのアクセス権やサイズを表示する |
|
-R |
サブディレクトリの内容も再帰的に一覧表示する |
|
■実行中のプロセスをツリー形式で表示する [ pstree ]
■プログラムのプロセスIDを調べる [ pidof ]
プログラムのプロセスIDを調べるには、pidof コマンドを使用します。-s オプションをつけると、最も番号の大きいプロセス番号を表示します。
$ pidof httpd
705 701 663 657 |
|
■特定のポートのプロセスを調べる [ lsof ]
オプションに「-i:ポート番号」「-i:サービス名」を指定します。
# lsof -i:imap
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
couriertc 3069 root 5u IPv6 12817 TCP *:imap (LISTEN)
# lsof -i:ssh
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 2876 root 3u IPv6 6570 TCP *:ssh (LISTEN)
sshd 4979 root 4u IPv6 177915 TCP 1.a.jp:ssh->2.a.jp:4008 (ESTABLISHED)
sshd 4981 kororo 4u IPv6 177915 TCP 1.a.jp:ssh->2.a.jp:4008 (ESTABLISHED)
|
|
■実行中のプロセスをリアルタイムに表示する [ top ]
top コマンドは、実行中のプロセスをリアルタイムに表示する事ができます。top コマンドを実行中は、操作ができなくなってしまうため、複数の仮想端末をたちあげながら実行するといいでしょう。
top コマンド実行中は対話形式でコマンドを使用する事ができます。使用できるコマンドは以下表の通りです。
|
k |
プロセスに対してkill コマンドを実行 |
|
q |
top コマンドを終了させる |
|
r |
プロセスの優先度を変更する |
|
s |
表示が更新される間隔を秒単位で指定する |
|
M |
メモリ使用量の大きいプログラム順にソートする |
|
■システムの再起動/シャットダウン [ reboot ] [ shutdown ] [ halt
]
システムを再起動するには、reboot もしくは、shutdown -r now コマンドを使用します。なお、一般ユーザーにはシステムを再起動、もしくは、シャットダウンする権限はありません。
システムをシャットダウンするには、shutdown -h now、もしくは、halt を使用します。
◎shutdown オプション
|
-h |
システムをシャットダウンする |
|
-r |
システムを再起動する |
|
-f |
fsck (ファイルシステムチェック)を行わずに、より早くリブートする |
|
-F |
再起動時に強制的に fsck を行う |
|
-s |
シングルユーザーモードで再起動する |
|
now |
直ちに再起動/シャットダウンを行う |
|
HH:MM |
HH時MM分に実行する(shutdown -h 23:00) |
|
+MIN |
MIN分後に実行する |
|
■サーバー起動時のメッセージを表示する [ dmesg ] [ Ctrl +s,Ctrl + q
]
起動時にコンソール上に表示されるメッセージは、流れるの早すぎて全てをじっくり見ることは不可能です。これらのメッセージは、サーバーが立ち上がってから、dmesg
コマンドを使用する事で後でじっくり閲覧する事ができるようになります。但し、dmesg で表示されるメッセージは、起動時に表示されたものそっくりそのままではありません。
後からみるなんてめんどくさい!という相当、不精な方は、コンソール上でキーボード操作でじっくり見る事ができます。まず、コンソール上の画面をストップさせるには、
Ctrl
+s、再開するには、
Ctrl + q をタイプします。なお、上にスクロールする際には、
Shift + PageUp
、下にスクロールさせるには、
Shift + PageDown でできるようになります。
■電源の管理 [ apm ]
バッテリ駆動のノートパソコンでLinux サーバーを立てている場合は、Linux カーネルに装備されているAPM
(Advanced Power Management)で電源の管理を行う事ができます。APM を使用すると、システムやハードディスクをサスペンド状態にしたり、システムを停止させることなくオフにしたりすることができます。現在の状態を表示するには、-v
オプションを使用します。以下の場合はバッテリーを使用していない状態です。なお、注意事項として、BIOS
と APM との相性があわない場合は、Linux がフリーズすることもありますので気をつけてください。
$ apm -v
APM BIOS 1.2 (kernel driver 1.16)
AC on-line, no system battery |
|
バッテリを使用している場合は、以下のように表示されます。
$ apm -v
APM BIOS 1.2 (kernel driver 1.16)
AC on-line, battery status high:99% |
|
■ログインユーザー全員にメッセージを表示する [ wall ]
wall コマンドを使用すると、ログインしているユーザー全員にメッセージを表示させることができます。システム再起動時などには重宝するかもしれません。使い方は簡単で、wall
コマンドを入力した後で、表示させたいメッセージを入力し、終了するには、CTRL+D を入力します。
# wall
System will be shutdow within 3 minutes.
Please logout!! [ ENTER ]
Ctrl + D |
|
■ユーザーが使用できるリソースを制限する [ ulimit ]
ulimit コマンド(Cシェル系はlimitコマンド)を使用することで、ユーザーが使用できるプロセスなどのリソースを制限することができます。ユーザーの故意による誤操作やプログラムのバグ、悪意のあるユーザーによるリソースの消費などを回避することができるようになります。まず、現在のメモリ制限を確認するには、-a
オプションを指定して実行します。
unlimited となっている箇所は文字通り、「無制限」という意味になります。
# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2047
virtual memory (kbytes, -v) unlimited |
|
メモリ制限を行なうには、
-m <サイズ(KB単位)> を指定します。以下の例では一人当たりのメモリ容量の制限を64MBに設定した例です。
# ulimit -m 65536
# ulimit -a | grep max.m
max memory size (kbytes, -m) 65536 |
|
元に戻すには、以下のように実行します。
■HDDのベンチマーク測定 [ hdparm ]
HDDの速度を測りたい場合は、hdparm コマンドを使用します。以下のコマンドを実行した結果、 17.25
MB/sec(1秒間の最大データ転送量)であると測定されました。
# hdparm -ft /dev/hda
/dev/hda:
Timing buffered disk reads: 54 MB in 3.13
seconds = 17.25 MB/sec |
|
もしも、データ転送速度が5MB/sec など、極端に遅い場合は、DMAをサポートしていないHDDを使用しているか、DMAの使用がOFFになっていることが考えられます。DMAがオフになっていると
I/OによるアクセスになってしまうのでHDDのアクセス速度が低下してしまいます。以下のコマンドでDMAの使用がONか否かを確認しておきましょう。
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (off) →DMAのOn、Offが確認できる
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 3307/255/63, sectors = 53128656,
start = 0 |
|
DMAのOn/Offを切り替えるには、-d1/-d0 オプションをつけます。DMAがOnの時とOffの時とでどの程度の転送速度の違いがでてくるのかも確認しておくと良いでしょう。hdparm
にはその他にも多彩なオプションが用意されています。
# hdparm -d0 /dev/hda
/dev/hda:
setting using_dma to 0 (off)
using_dma = 0 (off)
# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on |
|