トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

UNIX管理実習(2003-12-13)

【演習】

  1. ハードリンクとシンボリックリンクの違いと作成方法
  2. プロセスの確認と停止

 【解説】

シンボリックリンク、ハードリンクを作るにはlnコマンドを使う。

シンボリックリンク

  • Windowsのショートカットに似た機能。
  • ファイルへの参照情報を持つファイルがシンボリックリンク。
  • ファイルはi-nodeという番号で管理されている。シンボリックリンクと参照先ファイルのi-nodeは異なる番号。
  • 参照元のファイル名が変更されたり、移動削除された場合はリンクが無効になる。
  • シンボリックリンクを開くと、実際にはリンク先のファイルが開かれる。
  • パーティションをまたいでリンクを作れる。

ファイルtest1.txtのシンボリックリンクtest1s.txtを作るにはlnコマンドをsオプションを点けて、次のように使う。

ln -s test1.txt test1s.txt

lsコマンドでのリストは次のように表示される(Mac OS Xの場合)。

  • 最初文字がlの場合がシンボリックリンクである。
  • シンボリックリンクにはリンク先のファイル名も表示されている。
  • ファイルサイズとタイムスタンプが異なる。
-rw-r--r--  1 sakabe  staff   6 13 12 12:40 test1.txt
lrwxr-xr-x  1 sakabe  staff   9 13 12 12:40 test1s.txt@ -> test1.txt

ハードリンク

  • シンボリックリンクとは異なり、ファイルの保存領域に複数の同じ名前を付けられる機能。
  • i-node?が同じファイルになる

ファイルtest2.txtのハードリンクtest2h.txtのハードリンクはlnコマンドを使う。

ln test2.txt test2h.txt

ハードリンクはファイルサイズとタイムスタンプが全く同じになる。

-rw-r--r--  2 sakabe  staff  12 13 12 12:44 test2.txt
-rw-r--r--  2 sakabe  staff  12 13 12 12:44 test2h.txt

リンク数が変わる。

i-nodeはlsコマンドのiオプションで表示できる。次の表示のようにハードリンクはi-nodeが同一の値なことが分かる。

$ ls -i1
2629366 test1.txt
2629373 test1l.txt@
2629371 test2.txt
2629371 test2h.txt

プロセス

プログラムの実行単位をプロセスという。UNIXはマルチプロセスシステムであり、同時に複数のプロセスが動作している。

各プロセスはプロセスID(PID)という番号を付けて識別している。

プロセスの状態を確認するにはtopコマンドあるいはpsコマンドを使う。
コマンド 動作
top 一定間隔でプロセスの状態を並べ替えて表示する
ps 現在実行中のプロセス一覧の表示。
ps ax すべてのプロセスを表示する。

psコマンドの実行例

$ ps
   PID  TT  STAT      TIME COMMAND
   721 std  S      0:01.59 -bash
 2918  p2  Ss+  0:00.11 bash
 2922  p2  S      0:00.08 xload
 2965  p2  S      0:00.33 xeyes -foreground blue

左から

  • プロセスID
  • TTY名
  • ステータス
  • 実行時間
  • コマンド名

プロセスの停止

プロセスを停止するにはkillコマンドを使う。停止したいプロセスIDをあらかじめ調べておき、そのIDを引数に与える。

# kill [オプション] プロセスID

管理者権限であればすべてのプロセスを停止できるが、一般ユーザの場合、自分で起動したプロセスのみを停止できる。

[UNIX管理実習]