カレントディレクトリのパス表示 -- (pwd)

カレントディレクトリの絶対パスを調べるには pwdコマンド (Print Working Directory) を利用します.

次の例では, カレントディレクトリがホームディレクトリ であることがわかります.

% pwd <ENTER>     ← カレントディレクトリへのパスを表示
/a/fs0511a/t00000tf
% _

カレントディレクトリの変更 -- (cd)

ログインした時点では, カレントディレクトリは ホームディレクトリに設定されています. カレントディレクトリを変更したい場合には, 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)

あるディレクトリの中にどのような ファイルやディレクトリが存在するかを調べるには, 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  
% _

結果は左から 保護モード(*), 被リンク数, ファイル所有者のログイン名, ファイルまたはディレクトリの容量, 最終更新日時, ファイルまたはディレクトリ名 を表します.

ファイル内容のページの表示 -- (more,less)

コマンドの表示結果やファイルの内容を見たいとき, 1画面に収まりきらずにスクロールしてしまい最初の部分が見えなくなるときがあります. その場合には, moreless コマンドを利用します.

% more kadai.txt <ENTER>
人間環境整合論

私たちは毎日快適な大学生活をおくっている.
この湘南藤沢キャンパスの環境を整えるのにはどんな工夫
が凝らされているのだろうか.

-- 継続 --(2%)  ←  ファイル全体のデータ量の何%を表示しているかを表す

% less kadai.txt <ENTER>
人間環境整合論

私たちは毎日快適な大学生活をおくっている.
この湘南藤沢キャンパスの環境を整えるのにはどんな工夫
が凝らされているのだろうか.

kadai.txt       ←  表示しているファイル名を表す

moreコマンドと lessコマンド はファイルを1画面分ずつ分割して表示し, ユーザからの入力を待ちます.

more [ファイル名]
less [ファイル名]

moreコマンド, lessコマンドを 実行中にユーザが入力できるキー操作を表に示します.

ファイルを最後まで表示し終った後, moreコマンドは自動的にプロンプトを表示するのに対し, lessコマンドは最後まで表示し終っても ユーザがqを入力しない限り, プログラムを終了しません.

morelessコマンドの操作
キー 動作
<SPACE>C-v 1画面分スクロールし,次ページを表示
b 1画面分バックスクロールし,前ページを表示
d 半画面分だけ画面がスクロール
u 半画面分だけ画面がバックスクロール (moreの場合は使えない)
<ENTER>C-n 1行だけ画面がスクロール
yC-p 1行だけ画面がバックスクロール
g,< ファイルの先頭へ移動
G,> ファイルの末尾へ移動(moreの場合移動後終了)
/文字列 指定した文字列をカーソル以降で検索
?文字列 指定した文字列をカーソル以前で検索
n 文字列の再検索
h ヘルプを表示
q 終了

新しいディレクトリの作成 -- (mkdir)

新しいディレクトリを作成するには mkdirコマンド (MaKe DIRectory) を実行します.

% mkdir dir <ENTER>        ←  `dir'ディレクトリを作成する
% mkdir dir2 dir3 <ENTER>  ←  `dir2'と`dir3'を同時に作成する
% _

mkdirコマンドの後にディレクトリ名を指定すると, その名前のディレクトリが作成されます. また,名前を複数指定することで, 複数のディレクトリを同時に作成できます. ただし, すでに同じ名前のディレクトリやファイルがある場合, その名前のディレクトリは作成できません.

mkdir [作成したいディレクトリ名]

ファイルやディレクトリのコピー -- (cp)

ファイルやディレクトリを別のディレクトリにコピーするには 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)

ファイルやディレクトリの名前を変更したり,移動するには 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)

ファイルやディレクトリを削除するには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 [ディレクトリ名]

保護モード -- (chmod)

CNS には6000人以上のユーザがいます. 制限なく他人のファイルの内容を見たり, 変更できたりすると, いろいろな問題が起きる可能性があります. そこで個々のユーザはファイルやディレクトリごとに, 他のユーザからのアクセスを許可するか, 禁止するかなどを設定する必要が出てきます. すべてのファイルやディレクトリは ``保護モード'' を設定することで, 操作できるユーザを制限できます. ユーザは所有するファイルやディレクトリについて, 保護モードを設定することで他のユーザからの参照や書き込み, 実行を禁止できます. 保護モードは,``アクセス権'' や ``パーミッション'' ともいいます. 次に保護モードの概要と, その設定方法を説明します.

保護モードの設定

ファイルの保護モードには, それぞれのファイルやディレクトリごとに, 操作権限を持つユーザと操作権限が設定されています.

アクセスの対象ユーザ

保護モードは対象となるユーザによって次の3種類が設定されています. ただし,CNS の学生ユーザはすべて同じグループ(student)に所属しています.

  • そのファイルを所有するユーザ
  • CNS内の同じグループのメンバ
  • その他すべてのユーザ

それぞれの対象によって保護モードを区別して設定できます.

操作権限

操作権限には 読み出し, 書き込み, 実行 の3つがあります. 設定の効果は対象がファイルである場合と ディレクトリである場合によって異なります.

  • 読み出し (`r')
    • 対象がファイルの場合
      対象のファイルをウィンドウ上, テキストエディタ上に表示できるかどうかを表します.
    • 対象がディレクトリの場合
      対象のディレクトリ以下のファイルのリストを表示できるかどうかを表します. ディレクトリの読み出しが許可されていないと, そのディレクトリの下にあるファイルをlsコマンドなどで表示できません.
  • 書き込み (`w')
    • 対象がファイルの場合
      ファイルを書きかえられるかどうかを表します. ファイルへの書き込みにはファイルの消去も含まれます.
    • 対象がディレクトリの場合
      そのディレクトリ内に自分の作ったファイルを置いたり, そのディレクトリ自体を消去できるかどうかを表します.
  • 実行 (`x')
    • 対象がファイルの場合
      そのファイルをコマンドとして実行できるかどうかを表します.
    • 対象がディレクトリの場合
      そのディレクトリ内にcdコマンドで移動できるかどうかを表します.

保護モードの調べ方 -- (ls -l)

ファイルやディレクトリの保護モードを調べるには, 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)

ファイルやディレクトリの保護モードを変更するには, chmodコマンド(CHange MODe)を利用します.

  • chmod go-r [ファイル名やディレクトリ名]
    自分以外のユーザ, つまりグループに所属するユーザと他のユーザ (`g',`o') から, 読み出し (`r') を 禁止 (`-') します.
  • chmod a+r [ファイル名やディレクトリ名]
    すべてのユーザ (`a') に対して, 読み出し許可 (`r') を追加 (`+') します.
  • chmod go-w [ファイル名やディレクトリ名]
    自分以外のユーザ, つまりグループに所属するユーザと他のユーザ (`g',`o') から, 書き込み許可 (`w') を 削除 (`-') します.
  • chmod =rx [ファイル名やディレクトリ名]
    省略されているが, すべてのユーザ (`a') に対して, 新たに読み出し許可 (`r') と, 実行許可 (`x') が 設定 (`=') され, 書き込み許可は削除されます.
% 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).

表1: 保護モードの数字表現
  ユーザ グループ その他
保護モード rw- r-- r--
2進数表現 110 100 100
8進数表現 6 4 4

次にいくつか例をあげます.

  • chmod 755 [ファイル名やディレクトリ名]
    自分が7, その他のユーザは5なので, 保護モードは `rwxr-xr-x' になります. ファイルやディレクトリを 不特定のユーザに公開するときにはこの状態に設定します.
  • chmod 700 [ファイル名やディレクトリ名]
    自分が7, その他のユーザは0なので, 保護モードは `rwx------' になります. 他のユーザから操作されたくないファイルやディレクトリは この状態に設定します.
% 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/
% _