この文書は,高橋が自分の授業の補助資料として使うために作成しました. UNIXユーザとして以下のことができるようになる,というあたりをゴールに想定しています. はじめてこれらのことを学ぶ人よりも復習しようとしている人向けです.
なんでこういうことができるようにしたいかというと...
GUIで簡単に操作できるのに,なんでファイルの一覧,ディレクトリの移動に面倒なコマンドを使うの?
これは,これらのUNIXコマンドの使用を通じてディレクトリ(あるいはフォルダ)の階層構造の概念を理解することが非常に重要だと思われるからです.
emacsはなんか面倒臭そう.なんで emacs 使うの?
これは,上記と同じ理由に加えて,emacsのような高機能なエディタを用いることがプログラミングの学習のために有効だと思われるからです.(ソースに勝手に色がついたり,自動インデントできたり...)
以下の説明をよく読んで実際に操作してみなさい.この文書は,上から順に読んでもらえること,指示されていることを自分で実際にやってみてもらえること,を期待して書いてあります.
[takataka@s1542f160 takataka]$ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ これがプロンプト キー入力するとここに文字が現れる
[takataka@s1542f160 takataka]$ ls ← キー入力は,ls[ENTER] a.out* prog2/ kazuate.c ← 出力例
$ lsこの例では,"ls[ENTER]" とキー入力する操作を表しています.'$'は自分が入力する文字ではないことに注意.
ls コマンドを実行すると例えば次のようになります.
$ ls a.out* prog2/ kazuate.c
この例では,今いる場所(カレントディレクトリ,詳しくは後で)に,ファイルが二つ(a.outという名前のものと,kazuate.cという名前のもの)があり,ディレクトリが一つ(prog2という名前)あることがわかります.このように,lsコマンドを用いるとファイルを一覧することができます.
ディレクトリの後ろには,上記のように'/'(スラッシュ)がついて表示されているかもしれません.それは,lsコマンドがファイルとディレクトリの区別をつけやすいようにつけてくれたものです.また,a.outのように実行できるファイルには'*'がついているかもしれません.
"ls"は,"list"に由来するようです.
たくさんのファイルを扱うようになってくると,ファイルをいくつかの置き場所に分けて整理したくなってきます. そういうときは,ディレクトリを作ってそこにファイルを置くようにします.
$ mkdir piyo
$ rmdir piyo空じゃないディレクトリの削除法はここでは説明しません.
"mkdir" は "make directory","rmdir" は "remove directory" に由来するようです.
コンソールを使って作業をする際は,(1)自分が今どのディレクトリにいるかを把握して,(2)適切なディレクトリに移動する,ことが必要になります.自分が今いるディレクトリすなわち現在地のことを,「カレントディレクトリ」といいます.(1)のためには pwd コマンドを用い,(2)には cd コマンドを用います.
$ pwd /home/t010000 ← t010000 のところは,実際には自分のID
$ cd piyocdコマンドは,現在地から別のディレクトリに移動するコマンドです.この場合,piyoディレクトリに移動します.
$ pwd /home/t010000/piyoこのように,カレントディレクトリは piyo になっています.
$ cd .. ← スペース空けてピリオド二つ元いた場所(より正確にはカレントディレクトリの一つ上のディレクトリ)に戻っているはずです.
カレントディレクトリは,より詳しく "current working directory" (現在の作業ディレクトリ)ということがあります.currentのかわりにpresent(現在の)を使って "present working directory" ということもあります."pwd" はここから来ているようです.一方,"cd" は "change directory" に由来するようです.
ホームディレクトリというのは,ホーム(home)という言葉から類推されるように,ユーザの作業の起点となるディレクトリのことです. 実習室のLinux環境では,コンソールを開いてすぐの状態では
$ pwd /home/t010000
のようになりますが,この /home/t010000 という場所が,ホームディレクトリです. 多くの場合,ユーザはホームディレクトリの下にファイルやディレクトリを置いていくことになります.
自分のホームディレクトリのことを,"~/" という記号で表すことがあります.たとえば,「ホームディレクトリの下のpiyoというディレクトリ」のことを,
~/piyo/
と書いたり,「ホームディレクトリの下のpiyoの下のfunyaの下のhogeratta.txtというファイル」のことを
~/piyo/funya/hogeratta.txt
と書いたりします.この"~"は,cd,cpなどのコマンドでディレクトリやファイル名を指定する際にも使えます.
カレントディレクトリがどこであろうとホームディレクトリにはすぐ移動できるように,cdコマンドを引数なしで(ディレクトリを指定しないで)実行すると,ホームディレクトリに移動するようになっています.
$ cd piyo $ pwd /home/t010000/piyo $ cd $ pwd /home/t010000
●その1
$ pwd /home/t010000/piyo/funya
$ cd piyo/funya
$ cd ../..
●その2
↓のリンク先のファイル hogeratta.txt を ~/piyo/funya の中に保存してみよう.
一般的なブラウザでは,下記のリンクにマウスカーソルを置いて「右」クリックして「リンク先を別名で保存」というような操作をすれば,GUIで保存先を指定することができます. 保存先が ~/piyo/funya になるようにすれば,その中に hogeratta.txt を保存できるでしょう. funyaの中まで移動してから ls して,正しく保存できたことを確認すること.
hogeratta.txt (このファイルの日本語コードはEUCです)
ファイルの削除には rm コマンドを使います.
$ rm hogeratta.txt
注意:実習室の環境では,rmコマンドを実行すると本当に削除するかどうか確認されるようになっています(rm -i になってる).しかし,rm の本当のデフォルトの動作は,確認したりせずいきなり削除,です.確認されると期待して rm コマンドを使っていると,いつか痛い目を見るかもしれませんので気をつけましょう.
"rm" は "remove" に由来するようです.
ファイルのコピーには cp コマンドを,移動&名前の変更には mv コマンドを使います.
$ cp hogeratta.txt hogehoge
$ mv hogehoge henahena
上記のように mv コマンドを用いると,ファイルの名前をかえることができます. cp や mv でファイル名をどういう順番に指定するのかがわかりにくいと感じるかもしれませんが, 「古い方を先に(左側に)指定する」と考えるとよいかも.
cpコマンドを使うとディレクトリ間でファイルをコピーすることもできますが,その方法についての解説はここでは省略します. mvコマンドを使うとあるディレクトリ中のファイルを別のディレクトリに移動させることができますが,その方法についての解説はここでは省略します.
"cp" は "copy" に,"mv" は "move" に由来するようです.
emacs というのは,プログラムのソースファイルを作成したり文書を書いたりするのに使われるテキストエディタとしてよく知られたものです.
$ emacs
「FILE」→「Exit Emacs」(「FILE」にマウスポインタを重ねて左ボタンを押したままにしてメニューを出し,そこから「Exit Emacs」を選択する)と終了します.
$ emacs &
上記のようにファイル名を指定しないで emacs を起動した場合でも,適当に文字を入力した後でファイル名を指定して保存すれば,新規にファイルを作成することができます.しかし,ここでは説明を省略します.次のようにファイル名を指定して emacs を起動すれば,新しいファイルを作ることも,既存のファイルを編集することも,どちらもできます.
$ emacs hoge &
「FILE」→「Save (current buffer)」です.フロッピーのアイコン(ペンのない方)をクリックしても保存できます.
$ emacs hoge &適当にファイルをいじった後,保存せずに終了しようとするとどうなるか観察しなさい.保存してないけどどうする?って聞かれるはずです.
$ cd funya $ emacs hoge &こうすると,cdコマンドで異なるディレクトリへ移動してからemacsを起動することになります. そのディレクトリには hoge というファイルはない(過去に作ったことがあれば別ですが)ので,また新規作成しようとすることになります.先ほどとは別の文字を適当に入力し,保存してから終了しましょう.
上記の例では,ファイルを一度編集するたびに emacs を終了しています.しかし,例えばCのソースを書いている場合に,emacsを起動→プログラムを書く→emacsを終了→コンパイル→エラーが出た!→emacsを起動→プログラムを修正→emacsを終了→…,というようなことをするのは効率が悪いです.emacsは起動したままにして,保存→コンパイル→修正して保存→コンパイルというように作業することをおすすめします.
上でダウンロードした ~/piyo/funya/hogeratta.txt を編集して保存してみよう.