unixstuff ディレクトリで次のコマンドを入力してください。
% ls -l
ディレクトリにあるファイルの詳細な情報が表示されるでしょう。
ファイルやディレクトリに関連付けられたアクセス権限を見るには ls -l と入力します。 ls -lg はファイルのグループについて追加情報を表示します。
-rwxrw-r-- 1 ee51ab beng95 2450 Sept29 11:52 file1
始めの10文字は d, r, w, x, -, そして時々 s または S で構成されます。1文字目が d なら、それはディレクトリを意味します。ディレクトリでなければ - 記号になります。
残りの9つの記号は許可(すなわちアクセス権限)を示します。1グループが3つの記号で構成されており、全部で3つのグループの情報を表します。
r, w といった記号はファイルとディレクトリでは異なる意味をもっています。
ファイルを読み取るにはディレクトリに実行を許可する権限(x)が必要です。したがってサブディレクトリへのアクセスはそのディレクトリを含む上位のディレクトリ(親ディレクトリ)に権限が必要になります。
-rwxrwxrwx | ファイルに対して誰もが読み取り書き込みそして実行できる |
-rw------- | ファイルに対して、その所有者だけが読み取りと書き込みができる。その他のユーザーは読むことも書くことも実行することもできない(メールボックスのファイルがこのような権限に設定される)。 |
ファイルの所有者だけが chmod コマンドを使ってファイルのアクセス権限を変更できます。 chmod には以下のオプションがあります。
記号 | 意味 |
---|---|
u | ユーザー (user) |
g | グループ (group) |
o | その他 (other) |
a | すべて (all) |
r | 読み取り (read) |
w | 書き込みと削除 (write) |
x | 実行。ディレクトリへのアクセス (execute) |
+ | 許可を与える |
- | 許可を取り去る |
例を示します。次のコマンドは biglist ファイルからグループとその他のユーザーに対する読み取り、書き込み、実行許可を取り除きます。
% chmod go-rwx biglist
他のアクセス許可には影響しません。
次は、すべてのユーザーに対して biglist ファイルの読み取りと書き込み権限を付与します。
% chmod a+rw biglist
backups ディレクトリにある science.txt のアクセス権限を変更してみましょう。 ls -l を使って変更された権限を確認してみましょう。
プロセスとはユニークな PID によって識別された実行中のプログラムです。あなたのプロセスについて情報を得るには次のように入力してください。
% ps
プロセスはフォアグラウンド、バックグラウンド、あるいはサスペンドの状態を取ります。一般的にシェルは現在のプロセスの実行が完了するまで UNIX プロンプトを返しません。
いくつかのプロセスは、実行に長い時間がかかり、ターミナルを占拠することがあります。プロセスをバックグラウンドで実行するようにすると UNIX プロンプトがすぐに返されるので他のタスクを実行できるようになり効果的です。その間もプロセスは実行され続けます。
プロセスをバックグラウンドで実行するにはコマンドの最後に & を付けます。 sleep コマンドは、指定の秒数だけ次の動作を待たせることができます。
% sleep 10
これはコマンドプロンプトが返るまで10秒待つことになります。コマンドプロンプトが返ってくるまで、あなたは待つことになります。
sleep をバックグラウンドで実行してみます。
% sleep 10 & [1] 6259
& を付けて実行すると、すぐにプロンプトが返ってきますので、 sleep の終了を待つことなく、あなたは他のプログラムを実行することができます。
上記の2行目にはジョブ番号と PID が返されています。 & を付けて実行するとユーザーには角括弧で囲まれたジョブ番号と PID が通知されるようになっています。完了に時間のかかるジョブをバックグラウンドで実行するのが賢いやり方です。
次のコマンドを入力してください。
% sleep 1000
フォアグラウンドのプロセスを一時停止するには ^Z (コントロールキーを押しながら[z])を押します。一時停止した状態で次のコマンドを入力するとバックグラウンドに移行します。
% bg
Note
vi のようにユーザーと対話を要するプログラムをバックグラウンドで実行してはいけません。
一時停止している、あるいはバックグラウンドで実行中のプロセスを見るには次のコマンドを入力してください。
% jobs
ジョブの一覧は次のようなものです。
[1] Suspended sleep 1000 [2] Running netscape [3] Running matlab
一時停止しているプロセスを再開する(フォアグラウンドで実行する)には次のように入力します。
% fg %ジョブ番号
sleep 1000 を再開するには次のように入力します。
% fg %1
fg でジョブ番号を指定しなければ最後に停止されてジョブがフォアグラウンドで実行されます。
無限ループするプログラムを実行してしまった時など、時々プロセスを中止したいことがあります。
フォアグラウンドで実行しているジョブは ^C (コントロールキー + [c]) を押すとジョブを中断できます。
% sleep 1000 ^C
一時停止している、あるいはバックグラウンドで動いているプロセスは次のコマンドで中止できます。
% kill %ジョブ番号
例として次のコマンドを入力してください。
% sleep 100 & % jobs
仮にジョブ番号が4だとしたら、次のように入力してプロセスを中断します。
% kill %4
プロセスが中断されたかを jobs コマンドで確かめましょう。
もうひとつの方法としてプロセス番号(PID)を用いて、プロセスを中断することができます。
% sleep 1000 & % ps PID TT S TIME COMMAND 20077 pts/5 S 0:05 sleep 1000 21563 pts/5 T 0:00 netscape 21873 pts/5 S 0:25 nedit
sleep 1000 のプロセスを中断するには次のように入力します。
% kill 20077
もう一度 ps コマンドを実行してプロセスが削除されていることを確認してみましょう。
もしもプロセスが kill で終了しないなら -9 オプションを使います。
% kill -9 20077
Note
他のユーザーのプロセスを中断することはできません。
コマンド | 解説 |
---|---|
ls -lag | 全てのファイルのアクセス権限を表示する |
chmod [ options ] file | file のアクセス権限を変更する |
command & | command をバックグラウンドで実行する |
^C | フォアグラウンドで実行中のジョブを中止する |
^Z | フォアグラウンドで実行中のジョブを一時停止する |
bg | 一時停止されたジョブをバックグラウンドで実行する |
jobs | ジョブの一覧を表示する |
fg %1 | 1番目のジョブをフォアグラウンドで実行する |
kill %1 | 1番目のジョブを中止する |
ps | 実行中プロセスの一覧を表示する |
kill 26152 | プロセス番号 26152 を中止する |
この文書は UNIX Tutorial for Beginners から派生した文書です。 Creative Commons License の下で利用できます。
最終更新日: 2011年02月24日(木)