情報工学実験2

UNIX/Linux 基礎 2009/11/11(水)

第4学年以降の実験、演習ではUNIX/Linuxを使用することが多くなる。 UNIX/LinuxではWindowsのようにマウスを使ってOSの操作をすることも可能であるが、 企業や大学でUNIX/Linuxを使用する場合は端末を開いてキーボードからコマンドを 入力してOSの操作をすることが多い。今回はキーボードによるUNIX/Linuxの操作について学ぶ。

・内容


チェックシート PDF ODT

・レポート

次回の実験日までにチェックシートに書いた事項を電子化して印刷し、実験の表紙とチェックシートとともに提出せよ。 チェックを受けてない項目がある場合は、全てチェックを受けてから提出すること。



・カレント(現在の)ディレクトリの確認: pwd

Windowsの「フォルダ」の事を UNIX/Linux では「ディレクトリ」と呼ぶ。 現在いるディレクトリの場所を確認するには端末上で

$ pwd

と打ってEnterを押す($ は打たないこと)。

(課題1) 端末を起動した直後にいるディレクトリの事を「ホームディレクトリ」 という。自分のホームディレクトリを調べてチェックシートに記述せよ。 また実行画面を近くの教員に見せてチェックを受けよ。



・ファイル表示: ls

$ ls オプション

でカレントディレクトリにあるファイル表示をする。また

$ ls オプション ディレクトリ名

で指定したディレクトリの中にあるファイル名を表示する(こちらは後で練習する)。

(課題2) 以下のオプションの違いを調べて書け。また実行画面を近くの教員に見せてチェックを受けよ。

$ ls
$ ls -al
$ ls -alh



・ディレクトリ作成、削除(中身空): mkdir, rmdir

$ mkdir ディレクトリ名

でディレクトリを作成する。中身が空のディレクトリは

$ rmdir ディレクトリ名

で削除する。

(課題3) 自分の苗字のディレクトリをホームディレクトリの下に作成してlsで表示せよ。 さらに作成したディレクトリを rmdir コマンドで削除してlsで確認せよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



・ディレクトリ移動: cd

$ cd ディレクトリ名

でディレクトリを移動する。

(課題4) 自分の苗字のディレクトリをホームディレクトリの下に作成し、cdでそこに移動しpwdとlsを実行せよ。 さらに自分の名前のディレクトリをその下に作成してcdで移動しpwdとlsを実行せよ。
以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。
また、その状態で cd とだけを打って実行するとどうなるか調べてチェックシートに書け。




・空ファイルの作成: touch

$ touch ファイル名

で中身が空のファイルを作成する。

(課題5) cdで自分の苗字のディレクトリに移動して自分の名前のディレクトリを削除し、 新たに自分の名前の空ファイルを作成してlsせよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



ファイル削除: rm

$ rm ファイル名

でファイルを削除する。

(課題6) 課題5で作成した空ファイルを削除してlsで確認せよ。
以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。




ファイル内容表示: cat, less

$ cat ファイル名

でファイルの中身を表示する。ただしcatはファイルの中身を一気に表示してしまうので、 ファイルサイズが大きい場合は

$ less ファイル名

で中身を表示させる。スペースキーでスクロール、bキーで逆スクロール、qキーで終了する。

(課題7) ホームディレクトリに移動し、
サンプルファイルを右クリック→名前を付けて保存で ホームディレクトリに保存し、cat と less を使って内容を表示せよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



ファイルコピー: cp

$ cp コピー元ファイル名 コピー先ファイル名

でファイルをコピーする。

(課題8) 課題7で保存したファイルを適当な別名でホームディレクトリ上にコピーしてlessで確認せよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



ファイル移動、ファイル名変更: mv

ファイル移動とファイル名変更は同じコマンドを使う。

$ mv 移動するファイル名 移動先ディレクトリ名

を実行するとファイルをディレクトリに移動する。一方

$ mv 元ファイル名 新ファイル名

を実行すると、ファイル名が新ファイル名に変わる。

(課題9) 課題8でコピーしたファイルを自分の名字のディレクトリに移動してから cd でそのディレクトリに移動してlsで確認せよ。
またこの移動したファイルの名前を適当な物に変更してlsで確認せよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



ホームディレクトリ指定、相対ディレクトリ指定、カレントディレクトリ指定: ~/、../、./

ディレクトリ名に「~/」を指定するとホームディレクトリの意味になる。 「../hoge/」はホームディレクトリにあるhogeというディレクトリを意味する。
「../」を指定すると一つ上のディレクトリを意味する。 「../../」は二つ上のディレクトリ、「../hoge/」は一つ上のディレクトリにあるhogeというディレクトリを意味する。
「./」を指定するとカレントディレクトリを意味する。

(例1)「 $ cd ../../hoge/ 」 ・・・ 二つ上のディレクトリにあるhogeというディレクトリに移動

(例2)「 $ ls ../../hoge/ 」 ・・・ 二つ上のディレクトリにあるhogeというディレクトリの中身を表示

(例3)「 $ cp ../hoge/test.txt ./ 」 ・・・ 一つ上のディレクトリにあるhogeというディレクトリの中のtest.txtをカレントディレクトリに同じ名前でコピー

(例4)「 $ cp ../hoge/test.txt . 」 ・・・ コピーの場合は ./ の / を省略可能

(例5)「 $ mv ~/hoge/test.txt . 」 ・・・ ホームディレクトリにあるhogeというディレクトリの中のtest.txtをカレントディレクトリに移動

(例6)「 $ mv ~/hoge/test.txt ./hoge.txt 」 ・・・ ホームディレクトリにあるhogeというディレクトリの中のtest.txtをカレントディレクトリにhoge.txtという名前に変更して移動

(例7)「 $ mv ~/hoge/test.txt hoge.txt 」 ・・・ カレントディレクトリに移動する場合は ./ を省略可能


(課題10) ホームディレクトリに戻り、「test」という名前のディレクトリを作りそこに移動する。 その場所でホームディレクトリにある自分の名字のフォルダの中身を ls を用いて表示するにはどう指定すれば良いか チェックシートに書け。また、 testディレクトリにいる状態で、ホームディレクトリにある自分の名字のフォルダの中にある適当なファイルを 同じ名前のままコピーするにはどう指定すればチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



ワイルドカード: *

ファイル名やディレクトリ名に「*」を入れると、任意の長さの文字列を表す。

(例1)「 $ ls *.txt 」 ・・・ カレントディレクトリにある拡張子が txt のファイルを全て表示

(例2)「 $ rm *.txt 」 ・・・ カレントディレクトリにある拡張子が txt のファイルを全て削除

(課題11) testディレクトリにいる状態からホームディレクトリにある自分の名字のフォルダの中に移動し、中身が空の 「abc.txt」「abc.doc」、「yfy.txt」、「xfx.cpp」というファイルを作成する。 「拡張子がtxt」、「拡張子を除くファイル名がabc」、「ファイル名の中にfを含む」ファイル名を表示 するにはlsに対してどのように名前を指定したら良いかチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



ディレクトリ削除(中身有): rm -rf

ディレクトリの中身が空でない場合にそのディレクトリを消す場合は

$ rm -rf ディレクトリ名

とする。

(課題12) ホームディレクトリに戻り、testディレクトリを削除せよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。



C言語のコンパイルと実行 : g++

C言語のソースコードをコンパイルするには

$ g++ -O2 -g -o 実行ファイル名 ソースコード

とする(-O2のOは大文字のオーで最適化の意味。-gはデバック用コンパイルの意味。 詳しくは4年のプログラミング演習で説明する)。実行ファイルを実行するには

$ ./実行ファイル

とする。実行ファイルの実行時間を計るには

$ time ./実行ファイル

とする。

(課題13) ホームディレクトリに戻り

$ gedit &

でテキストエディタ(gedit)を開き、hello world を作成して hello.cpp という名前で保存せよ。 端末に戻り、コンパイルして実行せよ。さらに実行時間を計測せよ。 なおgeditの最後の&を入れ忘れるとgeditを終了するまで端末が使えなくなるので注意せよ。

以上で実行したコマンドを全てチェックシートに書け。また実行画面を近くの教員に見せてチェックを受けよ。