コンピュータ,特にUNIXを使う際に常時注意すべきことは以下のようなことである.
UNIXのコマンド行はプロンプトによって示されている. たとえば,利用者j13999tjのアクティブなプロンプト(キー入力を受け付ける状態)は次のようになっている(表示は設定によって異なる).
[j13999tj@pc3299 -]:5$ ■
以降,コマンド入力を説明する際,コマンドプロンプトを記号『$』のみで表記することとする.
『pc3299』はマシン番号,記号『:』の右にある数字は過去に何回コマンドを入力したかを示している. 『$』の右にあるテキストカーソルが□のときは,そのコマンドプロンプトがあるウィンドウはアクティブでない. 何かコマンドを入力しようとするときには適すとカーソルが■となっていることを確かめる.
コマンドpwd(Print Working Directory)は(現在居る)作業ディレクトリを取得する.
$ pwd /home/student/j13999tj
この結果は
(現在居る)作業ディレクトリがであることを表している.に居る
- ルートディレクトリ/の中の
- ディレクトリhome/の中の
- ディレクトリstudent/の中の
- ディレクトリj13999tj/
ログインした直後に居る利用者専用のディレクトリをホームディレクトリと呼ぶ. ホームディレクトリを表す記号として『~/』(チルダー + スラッシュ)を使うことにする. エディタなどでファイルを開いたり,保存するときなどにこのホーム記号はよく現われる.
$ ls ディレクトリディレクトリの指定がない場合には(現在居る)作業ディレクトリ内を一覧する. たとえば,次のように使って結果を得る.
$ ls Mail/ News/ Work/ public_html/
(この他のディレクトリやファイル群も一覧されるはずである.) 記号『/』がついているのがディレクトリを表しているとしよう.
コマンドlsの一般的書式は次のようである lsの引数として指定したディレクトリ内にあるファイル・ディレクトリの一覧を得ることができる.
$ ls [オプション] ディレクトリ上で紹介したホームディレクトリを表す記号『~/』を使うと
$ ls ~/を実行すると,(現在居る)作業ディレクトリがどこであろうとホームディレクトリ内のファイル・ディレクトリを一覧することができる.
たとえば,ホームにあるディレクトリ Mail(ここに送られてきたメールが格納されている)の中のファイル・ディレクトリを一覧するには次のようにする.
$ ls Mail「ホームにあるディレクトリ Mail」を~/Mailと記述する. さらに,絶対ディレクトリパスで指定すると,
/home/student/j13999tj/Mail
と記述できる.
(現在居る)作業ディレクトリの親ディレクトリ内を一覧するには,「親ディレクトリに行く」という意味の記号『..』(ドット・ドット)を使って次のようにする.
$ ls ..では,
$ ls ~/..によって選られる結果を得るかを検討せよ.
$ cd 移動先のディレクトリたとえばホームディレクトリ /~ に居るときにディレクトリMail内に移動するには
$ cd Mail $ pwd $ lsこの例のように,ディレクトリを移動したときには,
こうして移動したとき,元の親ディレクトリに移動するには次のようにする.
$ cd ..
どんなディレクトリに居たとしても,引数なしで単に
$ cdとするだけで,ホームディレクトリに戻ることができる.
$ mkdir ディレクトリ名たとえば,ディレクトリ ~/doc を作成してみよう.
$ mkdir doc $ ls Mail/ News/ Work/ doc/ public_html/ディレクトリを作成した際には,コマンドlsをつかって作成したディレクトリが確かにあるか(名前も正しいか)を確かめることが重要である. 作成したばかりのディレクトリ ~/doc には何もファイルは格納されていないので, 当然
$ ls ~/docは何も返さない.
$ mv 移動元 移動先移動元・移動先として正しいディレクトリパスを指定する必要がある.
今,次のようにして,ホームにあるファイル・ディレクトリを確認しておこう.
$ cd $ ls手元にファイル mytextfile.txt, secondtext.txt, thirdtext.txt,mytextfile.txt~ のテキストファイルがあるとしよう.
ファイルの最後にチルダ『~』の付いたものがあることはコマンドlsを実行するとすぐに気が付く. これはエディタEmacsで作業しているときに,ファイル内容を変更して新たに保存するときに,元のファイル内容を記号「~」をつけて自動的にバックアップされたファイルである.何らかの事故でファイルが失われたときには,バックアップファイルを探してみよう.
ファイルmytextfile.txtを保存したときに作成されたバックアップファイルmytextfile.txt~を名前を変更してmytextfile.txt.oldとしたい. このためにファイル移動コマンドmvを次のように使う:
$ mv mytextfile.txt~ mytextfile.txt.oldmytextfile.txt~ を同じディレクトリ内に名前 mytextfile.txt.old として移動した,つまりファイル名を変更したということになる.
さて,ホーム ~/ にあるテキストファイル mytextfile.txt をディレクトリ~/doc 内に移動してみよう.
$ mv thirdtext.txt doc/thirdtext.txt $ ls doc thirdtext.txt移動したあとにはちゃんと移動したかを必ずlsで確かめること(さらに,移動元からはファイルがなくなっていることも).
さらに,次のようにしてみよう. 先のコマンドの使い方の違いにも注意する.
$ mv secondtext.txt doc $ ls doc secondtext.txt thirdtext.txt移動先のディレクトリ名だけでファイル名を省略した場合,移動元と同じファイル名としてファイルが移動されたことがわかる.
$ mv mytextfile.txt doc/firsttext.txt $ ls doc firsttext.txt secondtext.txt thirdtext.txtこのように移動先のファイル名を指定すると,移動元のファイルはファイル名が変更されて移動される.
すこし複雑な場合をやってみよう. まず,ディレクトリ ~/docへ作業ディレクトリを移動する.
$ cd doc $ ls firsttext.txt secondtext.txt thirdtext.txt移動先のファイル・ディレクトリの一覧を確認することを忘れないように. ファイル firsttext.txt をディレクトリ ~/public_html(記号『_』はアンダーバーであってマイナス記号でない)に移動してみよう. 2つの方法が考えられる.
$ mv firsttext.txt ~/public_html $ ls ~/public_html firsttext.txtこのやり方は,移動先のディレクトリをホームディレクトリを表す記号『~/』をつけて絶対的ディレクトリパスで指定したやり方である.
$ mv firsttext.txt ../public_html $ ls ../public_html firsttext.txtこのやり方は,移動先のディレクトリを,親ディレクトリ(ホーム)に戻りディレクトリpublic_htmlに達するとした相対的ディレクトリパスで指定したやり方である.
絶対的ディレクトリおよび相対的ディレクトリパスによる指定方法を完全に理解して自由に使えるようにしておくこと.
移動したファイルを今居るディレクトリに戻しておこう:
$ mv ~/public_html/firsttext.tex .移動先ディレクトリに記号『.』(ドット)を使っている. この記号は「現在のディレクトリ」を表している.
$ cp コピー元 コピー先ファイル・ディレクトリの移動コマンドmvと同じようにコピー元,コピー先ともディレクトリパスを指定する.
たとえば,ホームにいるとき,そこにある mytextfile.txt.old を ~/doc内にファイル名 oldtextfile.txt という名前でコピーするには
$ cp mytextfile.txt.old doc/oldtextfile.txt $ ls doc確かにコピーされたかを ls で確かめることを忘れないこと.
コピー元のファイルを(現在居る)作業ディレクトリとは違うディレクト内にコピーする場合,コピー先のディレクトリだけを指定してファイル名を省略した場合には,同じファイル名でコピーされる.
ファイル内容の確認には次の3つのコマンドがある
catコマンドは,ファイル名の並びで指定されたファイルの内容を(複数のファイルを指定したときには,それらを一つながりにして)モニタに表示するが,ファイル内容が画面に収まりきれない場合でも,スクロールしながら表示内容は流れ去ってしまう.
ファイル内容が多い場合には,ウィンドウサイズのページごとに止めながら表示してくれるmoreまたはlessが便利である. 両者の違いは
$ more thirdtext.txt $ less thirdtext.txt次のように catを使うとどのようになるか観察してみよ.
$ cat firsttext.txt secondtext.txt thirdtext.txt
$ emacs &Emacsのキー操作で説明しているように,C-x C-fによって指定したファイルを開く(Openする)ことができる. このとき,エディタ画面下段のミニバッファには開きたいファイル名をディレクトリパスとともに書き入れてやればよい.
------------------------------------------------------ Find file: ~/doc/firsttext.txt■ ------------------------------------------------------この場合には,ディレクトリ ~/docにあるファイル firsttext.txt を開こうとしている(ファイルがなければ新規に作成することになる).
一方,C-x C-wによって現在のエディタウィンドウ(正確にはバッファ)に表示されている内容を指定したファイル名で保存することができる. このときも,ミニバッファに保存したいファイル名をディレクトリパスとともに書き入れてやればよい.
------------------------------------------------------ Write file: ~/public_html/myhobby.html■ ------------------------------------------------------この場合は,現在のバッファ内容をディレクトリ ~/public_html内にファイル名 myhobby.htmlとして保存しようとしている.