カレントディレクトリの絶対パスを調べるには pwdコマンド (Print Working Directory) を利用します.
次の例では, カレントディレクトリがホームディレクトリ であることがわかります.
% pwd <ENTER> ← カレントディレクトリへのパスを表示 /a/fs0511a/t00000tf % _
ログインした時点では, カレントディレクトリは ホームディレクトリに設定されています. カレントディレクトリを変更したい場合には, cdコマンド (Change Directory) を利用します.
% pwd <ENTER> ← カレントディレクトリを確認 /a/fs0511a/t00000tf % ls <ENTER> ← カレントディレクトリの内容を確認 Mail Wnn report.tex % cd Mail <ENTER> ← カレントディレクトリを`Mail'に変更 % pwd <ENTER> /a/fs0511a/t00000tf/Mail ← カレントディレクトリが変更されている % _
この例では, cdコマンドに, `Mail'ディレクトリを指定しています. これによって, カレントディレクトリを`Mail'に変更できます.
cd [変更先のディレクトリ名]
変更先のディレクトリ名を省略した場合, ホームディレクトリに移動します.
あるディレクトリの中にどのような ファイルやディレクトリが存在するかを調べるには, lsコマンド(LiSt)を使用します. 次の例ではカレントディレクトリの内容を表示しています.
% ls <ENTER> ← lsコマンドでカレントディレクトリの内容を表示 Mail Wnn report.tex % _
lsコマンドは次のような書式で使用します.
ls [オプション][ディレクトリ名またはファイル名]
引数にファイル名を指定するとそのファイルが, ディレクトリ名の場合にはそのディレクトリの内容が表示されます. ディレクトリ名またはファイル名を省略すると, コマンドを実行したカレントディレクトリの内容が表示されます.
次に,ディレクトリ名もファイル名もを指定しないで lsコマンドを実行して, カレントディレクトリの内容を表示させたのちに, `Mail'ディレクトリの内容を表示させる例を示します.
% ls <ENTER> ← lsコマンドでカレントディレクトリの内容を表示 Mail Wnn report.tex % ls Mail <ENTER> ← `Mail'ディレクトリの内容を表示 drafts inbox % _
lsコマンドは何もオプションを指定しない場合, ファイルやディレクトリ名を表示するだけで, それらがファイルなのかディレクトリなのかを区別できません. それらを区別して確認するには, -Fオプションを指定します.
-Fオプションを指定すると ディレクトリ名に`/' (スラッシュ)を, 実行できるファイルに`*' (アスタリスク), シンボリックリンク に`@' (アットマーク)を添付して表示します.
% ls -F <ENTER> Mail/ Wnn/ report.tex % _
あるディレクトリの中のファイルやディレクトリをすべて表示するには -aオプションを指定します. アプリケーションに必要な設定が記載されたファイルなど, 通常あまり利用しないファイルは多くの場合``隠しファイル''にします. UNIXにおける隠しファイルとは, ドット (`.') ではじまるファイルのことをいい, lsコマンドではこれら隠しファイルは閲覧できません. -aオプションを指定すると隠しファイルも含めて表示されます.
ls -a [ディレクトリ名]
% ls <ENTER> ← 隠しファイルは表示されない Mail Wnn report.tex % ls -a <ENTER> ← -aオプションをつけるとすべてのファイルを表示できる . .cshrc Mail report.tex .. .login Wnn % _
ファイルやディレクトリに関係する詳細な情報を調べるには, -lオプションを指定します.
% ls <ENTER> ← ファイルやディレクトリ名の表示 Mail Wnn report.tex % ls -l <ENTER> ← -l オプションを付加すると詳細な情報を表す drwx------ 4 t00000tf student 512 12 10 12:19 Mail drwxr-xr-x 2 t00000tf student 512 12 10 12:14 Wnn -rw-rw-r-- 1 t00000tf student 0 12 10 12:14 report.tex % _
結果は左から 保護モード(*), 被リンク数, ファイル所有者のログイン名, ファイルまたはディレクトリの容量, 最終更新日時, ファイルまたはディレクトリ名 を表します.
コマンドの表示結果やファイルの内容を見たいとき, 1画面に収まりきらずにスクロールしてしまい最初の部分が見えなくなるときがあります. その場合には, moreや less コマンドを利用します.
% more kadai.txt <ENTER> 人間環境整合論 私たちは毎日快適な大学生活をおくっている. この湘南藤沢キャンパスの環境を整えるのにはどんな工夫 が凝らされているのだろうか. -- 継続 --(2%) ← ファイル全体のデータ量の何%を表示しているかを表す % less kadai.txt <ENTER> 人間環境整合論 私たちは毎日快適な大学生活をおくっている. この湘南藤沢キャンパスの環境を整えるのにはどんな工夫 が凝らされているのだろうか. kadai.txt ← 表示しているファイル名を表す
moreコマンドと lessコマンド はファイルを1画面分ずつ分割して表示し, ユーザからの入力を待ちます.
more [ファイル名]
less [ファイル名]
moreコマンド, lessコマンドを 実行中にユーザが入力できるキー操作を表に示します.
ファイルを最後まで表示し終った後, moreコマンドは自動的にプロンプトを表示するのに対し, lessコマンドは最後まで表示し終っても ユーザがqを入力しない限り, プログラムを終了しません.
新しいディレクトリを作成するには mkdirコマンド (MaKe DIRectory) を実行します.
% mkdir dir <ENTER> ← `dir'ディレクトリを作成する % mkdir dir2 dir3 <ENTER> ← `dir2'と`dir3'を同時に作成する % _
mkdirコマンドの後にディレクトリ名を指定すると, その名前のディレクトリが作成されます. また,名前を複数指定することで, 複数のディレクトリを同時に作成できます. ただし, すでに同じ名前のディレクトリやファイルがある場合, その名前のディレクトリは作成できません.
mkdir [作成したいディレクトリ名]
ファイルやディレクトリを別のディレクトリにコピーするには cpコマンド(CoPy) を実行します.
% ls <ENTER> ← カレントディレクトリ内のファイルを確認する report.tex % cp ../kadai1.tex chapter1.tex <ENTER> ← 1つ上のディレクトリから`kadai1.tex'をコピー % ls <ENTER> chapter1.tex report.tex % cp ../chapter2.tex ../chapter3.tex . <ENTER> ← 複数のファイルを同時にコピーできる % ls <ENTER> chapter1.tex chapter2.tex chapter3.tex report.tex % _
この例では, 1つ上のディレクトリ (../) にある `kadai1.tex' というファイルを `chapter1.tex' という名前に変えて カレントディレクトリにコピーしています. そのあとに複数のファイルのコピーの例として1つ上のディレクトリにある `chapter2.tex' と `chapter3.tex' というファイルを カレントディレクトリ (.) にコピーしています.
cp [オプション] [コピー元のディレクトリやファイル名] [コピー先のディレクトリやファイル名]
ワイルドカードを 使うことによって複数のファイルをコピーできます. すでに存在するファイル名をコピー先に指定すると 元のファイルの中身が失われてしまうので注意してください.
% ls <ENTER> ← `kadai1.tex' と `kadai2.tex' というファイルが存在する kadai1.tex kadai2.tex % cp *.tex ../ <ENTER> ← 1つ上の階層にコピーする % cd ../ <ENTER> ← 1つ上のディレクトリに移動 % ls <ENTER> Mail Wnn kadai1.tex kadai2.tex % _
ディレクトリをコピーするには, -rオプションを指定します. 次の例では, 1つ上の階層にある `assignment' というディレクトリを, カレントディレクトリにそのままコピーします.
% ls -F <ENTER> groupwork/ report.tex report2.tex % cp -r ../assignment . <ENTER> % ls -F <ENTER> assignment/ groupwork/ report.tex report2.tex %_
ファイルやディレクトリの名前を変更したり,移動するには mvコマンド (MoVe) を利用します.
mv [ファイルやディレクトリ名] [移動先のファイルやディレクトリ名]
カレントディレクトリ内でのファイルの移動がファイル名の変更に相当します. ファイル名の変更の場合は,mvコマンドに続けて 名前を変更するファイル名,新しいファイル名の順に指定します. また,すでに存在するファイル名を新しいファイル名として指定した場合には, もとのファイルは上書きされてその内容が失われてしまうので注意してください. このとき, -iオプションを指定すると上書きするか確認を求められます.
% ls <ENTER> file1 file2 % mv file1 file3 <ENTER> % ls <ENTER> file2 file3 % mv -i file2 file3 <ENTER> mv: file3 を上書きしてもよろしいですか (yes/no)? no <ENTER> % ls <ENTER> file2 file3 % mv file2 file3 <ENTER> % ls <ENTER> file3 % _
ファイルをカレントディレクトリから別のディレクトリへ移動するには, mvコマンドに続けて, 移動するファイル名,移動先のディレクトリ名を指定します.
% ls -F <ENTER> dir1/ file1 file2 % mv file1 dir1/ <ENTER> % ls -F <ENTER> dir1/ file2 % cd dir1 <ENTER> % ls <ENTER> file1 % _
カレントディレクトリ内でのディレクトリの移動が ディレクトリ名の変更に相当します.
% ls -F <ENTER> dir1/ dir2/ file1 % mv dir2 dir3 <ENTER> % ls -F <ENTER> dir1/ dir3/ file1 % _
mvコマンドでは, ディレクトリごと他のディレクトリに移動できます. ただし, 移動先のディレクトリが存在しない場合は, ディレクトリの名前が変更されます. 例として `dir1' というディレクトリを, `dir2' というディレクトリの下に移動します.
% ls -F <ENTER> dir1/ dir2/ % mv dir1 dir2 <ENTER> % ls -F dir2 <ENTER> dir1/ % _
ファイルやディレクトリを削除するにはrmコマンド (ReMove) を利用します. 一度rmコマンドを使って削除したものは, 復元できないので注意してください.
rmコマンドの後にファイル名を指定し, その名前のファイルを削除します.
% ls <ENTER> ← ファイルの確認 Mail Wnn test report.tex % rm report.tex <ENTER> ← rmコマンドを用いてファイルを削除 % ls <ENTER> ← ファイルが削除されたことを確認 Mail Wnn test % _
rmコマンドに-rオプションを指定することによって ディレクトリを削除できます. -rオプションは指定したディレクトリの中にある ファイルやディレクトリをすべて削除します.
% ls -F <ENTER> ← ディレクトリの確認 Mail/ Wnn/ report.tex testdir/ % rm -r testdir <ENTER> ← ディレクトリを削除 % ls -F <ENTER> ← ディレクトリが削除されたことを確認 Mail/ Wnn/ report.tex % _
rm [オプション][削除したいファイルやディレクトリ名]
ディレクトリを削除するには,rmdirコマンド (ReMove DIRectory) を利用します. rmdirコマンドでは, 指定したディレクトリの中にファイルやディレクトリが存在する 場合にはディレクトリを削除できません. ディレクトリの中身ごと削除したい場合は, rmコマンドに `-r' オプションを 使います lsコマンドの-Fオプションについては * を参照してください.
次の例では, `test' ディレクトリを削除しようとしたとき, ディレクトリが空ではなかったので削除ができず, `test' ディレクトリにある `kadai1.tex' を 削除したのちにもう一度rmdirコマンドを実行して, `test' ディレクトリを消しています.
% ls -F <ENTER> ← `test' がディレクトリであることを確認 Wnn/ Mail/ test/ % rmdir test <ENTER> ← rmdirコマンドを実行したが,ディレクトリが空ではない rmdir: test: Directory not empty % cd test <ENTER> ← `test'ディレクトリに移動 % ls <ENTER> ← ファイルが存在する kadai1.tex % rm kadai1.tex <ENTER> ← ファイルを削除する % cd ../ <ENTER> % rmdir test <ENTER> ← 再びrmdirコマンドを実行する % ls -F <ENTER> ← ディレクトリが削除されている Wnn/ Mail/ % _
次にrmdirコマンド書式を示します.
rmdir [ディレクトリ名]
CNS には6000人以上のユーザがいます. 制限なく他人のファイルの内容を見たり, 変更できたりすると, いろいろな問題が起きる可能性があります. そこで個々のユーザはファイルやディレクトリごとに, 他のユーザからのアクセスを許可するか, 禁止するかなどを設定する必要が出てきます. すべてのファイルやディレクトリは ``保護モード'' を設定することで, 操作できるユーザを制限できます. ユーザは所有するファイルやディレクトリについて, 保護モードを設定することで他のユーザからの参照や書き込み, 実行を禁止できます. 保護モードは,``アクセス権'' や ``パーミッション'' ともいいます. 次に保護モードの概要と, その設定方法を説明します.
ファイルの保護モードには, それぞれのファイルやディレクトリごとに, 操作権限を持つユーザと操作権限が設定されています.
保護モードは対象となるユーザによって次の3種類が設定されています. ただし,CNS の学生ユーザはすべて同じグループ(student)に所属しています.
それぞれの対象によって保護モードを区別して設定できます.
操作権限には 読み出し, 書き込み, 実行 の3つがあります. 設定の効果は対象がファイルである場合と ディレクトリである場合によって異なります.
ファイルやディレクトリの保護モードを調べるには, lsコマンドに-lオプションを指定して実行します.
% ls -l <ENTER> total 5 drwx------ 32 t00000tf student 1024 11 24 10:55 Mail -rw-rw-rw- 1 t00000tf student 4515 11 18 10:42 READHELP drwxrwxr-x 4 t00000tf student 512 11 18 11:12 Wnn lrwxrwxrwx 1 t00000tf student 23 10 4 21:38 media -> /home/archives/t00000tf -rw-r--r-- 1 t00000tf student 177 11 24 14:43 memo drwxr-xr-x 2 t00000tf student 512 7 20 09:57 public_html % _
保護モードの状態を表すのは,もっとも左側の列です. 最初の文字は,ファイルの種類を表し, `-' は通常のファイル, `d' はディレクトリ, `l' はリンク を示しています. 残りの部分は,3文字ずつの3つのフィールドで構成されています. 最初の3文字はファイルの所有者の操作権限を示し, 次の3文字は同じグループに所属するユーザの操作権限, 最後の3文字はその他のユーザの操作権限を表しています. 操作を許可されていれば,許可されている操作の頭文字 (`r',`w',`x') が表示され, 許可されていなければ `-' が表示されます.
メールが格納されている `Mail' ディレクトリは, ユーザ本人以外はすべてのアクセス権が許可されていません (`rwx------'). 個人のホームページのファイルが格納されている `public_html' ディレクトリは, 他のユーザへの読み出し (`r') だけでなく, 実行 (`x') も許可されています (`rwxr-xr-x').
ファイルやディレクトリの保護モードを変更するには, chmodコマンド(CHange MODe)を利用します.
% ls -l <ENTER> -rw-r--r-- 9 t00000tf student 1024 1 31 14:48 report.txt % chmod go-r <ENTER> % ls -l <ENTER> -rw------- 9 t00000tf student 1024 1 31 14:48 report.txt % chmod a+r <ENTER> % ls -l <ENTER> -rw-r--r-- 9 t00000tf student 1024 1 31 14:48 report.txt % _
`a+r', `g-r' などといった表記方法以外にも, モード設定の方法があります. 読み出し (`r') と書き込み (`w'), 実行 (`x') の順番でそれぞれ許可する場合を1, 許可しない場合を0の2進数で表して,それらをあわせて3桁の2進数ととらえ, 8進数の表現に直します. ユーザ,グループ,その他の3つの8進数の表現を合わせたものを 保護モードとして表現できます.
例えば,保護モード `rw-r--r--' を数字によって表現するとします. ユーザの保護モードが `rw--' であるので, 許可を1,拒否を0とした2進数で表現すると `110' となります. 8進数では6になります. グループの保護モード `r--' は `100'という2進数で表現され,8進数では4, その他の保護モードの8進数表現は4となります. 8進数で表現された6,4,4を合わせた数字`644'が `rw-r--r--' の数字による表現です (表1).
次にいくつか例をあげます.
% ls -lF <ENTER> drwxr-xr-x 4 t00000tf student 1024 1 31 14:51 Report/ % chmod 700 Report <ENTER> % ls -lF <ENTER> drwx------ 4 t00000tf student 1024 1 31 14:51 Report/ % chmod 755 Report <ENTER> % ls -lF <ENTER> drwxr-xr-x 4 t00000tf student 1024 1 31 14:51 Report/ % _