ここでは,ターミナルでファイルやフォルダを扱うために 不可欠となる基本的なコマンドについて学びます.
まず,ターミナルを起動します.
[XXXX:~] xxxxx% [XXXX:~] xxxxx% [XXXX:~] xxxxx%のように,何か左に出てきます.これはプロンプトと言って, コマンドを入力できる状態であることを表しています. (XXXXとxxxxx のところはそれぞれマシン,ログインしているユーザを表すので, 人によって違います.)
[XXXX:~] xxxxx% lsと入力して[Enter]を押すと,
[XXXX:~] xxxxx% ls Library Music Picture [XXXX:~] xxxxx%のようにホームディレクトリ(ファインダーのMacフォルダ)にあるファイルやフォルダの名前が表示されます.
コマンドを打ち込んで,[Enter]です.
[XXXX:~] xxxxx% cat > myname > を忘れないように! Taro DENTSU 入力を終えたら[Enter]を押して改行し, [XXXX:~] xxxxx% C-d (注: [Control] を押しながら d を押す)してください
※よくわからないという人は, エディタを使って作成してください.
[XXXX:~] xxxxx% cat myname Taro DENTSU [XXXX:~] xxxxx%
[XXXX:~] xxxxx% cal 4 2008 2008年4月のカレンダーを出力するコマンド 2008年 4月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [XXXX:~] xxxxx% cal 4 2008 > apl2008 カレンダーの内容をファイル apl2008 に出力 [XXXX:~] xxxxx%
「リダイレクション(redirection)」
とは,コマンドへの情報の入出力を切り替える機能のことです.
ここでは画面に出力されるコマンド
cal 4 2008 の実行結果を,
リダイレクション >
を使ってファイルに出力しています.
リダイレクト@Wikipeida
リダイレクトの説明
[XXXX:~] xxxxx% more apl2008 2008年 4月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [XXXX:~] xxxxx%
[XXXX:~] xxxxx% ls apl2008 myname [XXXX:~] xxxxx%
[XXXX:~] xxxxx% cp myname copyname [XXXX:~] xxxxx% ls apl2008 copyname myname copyname というファイルが追加されています [XXXX:~] xxxxx% more copyname Taro DENTSU ファイルの内容は myname と同じです [XXXX:~] xxxxx%
[XXXX:~] xxxxx% ls apl2008 copyname myname [XXXX:~] xxxxx% mv copyname chname [XXXX:~] xxxxx% ls apl2008 chname myname copyname が chname になりました [XXXX:~] xxxxx% more chname Taro DENTSU ファイルの内容は copyname と同じです [XXXX:~] xxxxx%
[XXXX:~] xxxxx% rm chname [XXXX:~] xxxxx% ls apl2008 myname chname が消えています [XXXX:~] xxxxx%
※ ヒント [XXXX:~] xxxxx% ls apl2008 family first jun2008 may2008 [XXXX:~] xxxxx%
ls コマンドにオプションとして
-F を付けて実行し,
結果を確認してみましょう.
ディレクトリ・ファイルの右側に
/ が付加されて表示されます.
[XXXX:~] xxxxx% ls -F apl2008 family first jun2008 may2008 [XXXX:~] xxxxx% mkdir test [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 may2008 test/ test の右側にディレクトリであることを示す / が付いています [XXXX:~] xxxxx%
ls コマンドの引数にディレクトリ名を与えて実行すると, ディレクトリ内のファイル一覧を表示します.
[XXXX:~] xxxxx% cp apl2008 test [XXXX:~] xxxxx% ls test 引数にディレクトリ test を指定します apl2008 ディレクトリ test の中にファイル apl2008 があることがわかります [XXXX:~] xxxxx%
ファイル may2008 をディレクトリ test に移動してみましょう.
[XXXX:~] xxxxx% mv may2008 test [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 test/ ファイル may2008 がありません [XXXX:~] xxxxx% ls test apl2008 may2008 test の中に2つのファイルがあります [XXXX:~] xxxxx%
ディレクトリ test の名前を work に変更してみましょう.
[XXXX:~] xxxxx% ls -F apl2008 family first jun2008 test/ [XXXX:~] xxxxx% mv test work [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 work/ test が work になりました [XXXX:~] xxxxx% ls work apl2008 may2008 ディレクトリの中のファイルに変化はありません [XXXX:~] xxxxx%
再びディレクトリ test を作成して,
それを消去してみましょう.
[XXXX:~] xxxxx% mkdir test 再びディレクトリ test を作成 [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 test/ work/ [XXXX:~] xxxxx% rmdir test ディレクトリ test を消去 [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 work/ ディレクトリ test が消えています [XXXX:~] xxxxx%次に,先程ファイルをコピーしたディレクトリ work を消去してみましょう.
[XXXX:~] xxxxx% rmdir work rmdir: ディレクトリ "work": ディレクトリが空ではありません。 エラーメッセージ [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 work/ ディレクトリ work はそのままです [XXXX:~] xxxxx% ls work apl2008 may2008 中のファイルもそのままです [XXXX:~] xxxxx%
※ rmdir コマンドは, 中にファイルが何もないディレクトリだけしか削除できません.
↓ディレクトリ名 [XXXX:~] xxxxx% rm work/apl2008 ↑ファイル名 [XXXX:~] xxxxx% ls work may2008 work 内の apl2008 が消えています [XXXX:~] xxxxx%
※ ヒント [XXXX:~] xxxxx% ls -F apl2008 family first jun2008 kadai/ [XXXX:~] xxxxx% ls kadai apl2008 family first jun2008 [XXXX:~] xxxxx%
[XXXX:~] xxxxx% pwd /home?/y####/********/mac [XXXX:~] xxxxx%
? の部分は, 0, 1, 2 のいずれかになります. ログイン後に何もしていなければ, #### は入学年度(今年入学した人は 2008), ******** はログイン名になるはずです. このディレクトリは, 管理者から各利用者にあらかじめ割り当てられたディレクトリで, 「ホームディレクトリ」 と呼びます. 利用者は,自分のホームディレクトリの下に自分のファイルやディレクトリを いくつも所有できます. 通常,ログイン後のカレントディレクトリはホームディレクトリとなります.
[XXXX:~] xxxxx% ls -F apl2008 family first jun2008 kadai/ [XXXX:~] xxxxx% cd kadai [XXXX:~/kadai] xxxxx% pwd /home?/y####/********/mac/kadai ディレクトリ kadai に移動しました [XXXX:~/kadai] xxxxx%
[XXXX:~/kadai] xxxxx% cd / [XXXX:/] xxxxx% pwd / [XXXX:/] xxxxx%
このディレクトリは 「ルートディレクトリ」 と呼ばれ,UNIX システムのすべてのディレクトリは, このルートディレクトリを頂点とする 木構造 に含まれます.
[XXXX:/] xxxxx% cd /home?/y#### ?と####は各自のホームディレクトリにあわせること.?は1か2のどちらか,####には各自の入学年 [XXXX:/home?/y####] xxxxx% pwd /home?/y#### [XXXX:/home?/y####] xxxxx%
このように,木構造の一番上のルートディレクトリから 目的のディレクトリに到達するまでに通過するディレクトリを, 左から右に順に並べていくファイルやディレクトリの指定形式を 「絶対パス」 と呼びます.
[XXXX:/home?/y####] xxxxx% cd ./******** ******** はユーザ名 [XXXX:~] xxxxx% pwd /home?/y####/******** [XXXX:~] xxxxx%上手く行かない場合,?か####が間違っている可能性が高い. 分からない場合,飛ばして次を読むと分かります.
ここで,ディレクトリを ./******** と指定しています. 「.(ドット)」 は 「カレントディレクトリを表す記号(キャラクタ)」 です. したがって, 「カレントディレクトリ(/home?/y####) の下にある ******** ディレクトリへ移動」 という命令になります. 絶対パスで指定するよりも,入力する文字がずいぶん省略されています. このように,カレントディレクトリを出発点として移動先を指定する形式を 「相対パス」 と呼びます. これまでの実習からもわかるように, 「カレントディレクトリから」を表す 「./」は省略できます.
[XXXX:~] xxxxx% cd /usr/bin [XXXX:/use/bin] xxxxx% pwd /usr/bin 遠くに来てしまいました [XXXX:/usr/bin] xxxxx% cd これだけ [XXXX:~] xxxxx% pwd /home?/y####/******** ホームディレクトリに帰ってきました [XXXX:~] xxxxx%
[XXXX:~] xxxxx% cd /usr/lib [XXXX:/usr/lib] xxxxx% pwd /usr/lib [XXXX:/usr/lib] xxxxx% cd .. [XXXX:/usr] xxxxx% pwd /usr 1つ上のディレクトリに移動しました [XXXX:/usr] xxxxx% cd ~ [XXXX:~] xxxxx% pwd /home?/y####/******** ホームディレクトリに移動しました [XXXX:~] xxxxx%
※ 作業が終了したら,センターの端末からメールで報告してください. メイルのサブジェクトは ex3-学籍番号 として kadai.txt, name.txt, cal.txtを添付しなさい.