【演習】
- ハードリンクとシンボリックリンクの違いと作成方法
- プロセスの確認と停止
【解説】
シンボリックリンク、ハードリンクを作るには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管理実習]