講義用スライド

情報処理技法
(Cプログラミング)I 第2回 ー UNIXの基本(2)・C言語の初歩 ー 担当: 荻田 武史 本日の授業内容 •  最低限覚えるべきUNIXコマンド pwd, ls, mkdir, cd, cp, rm, mv •  テキストエディタの簡単な使い方 テキストエディット, Jedit X,Emacs •  C言語プログラミングの初歩 「hello, world」を画面に出力 2
最低限覚えるべきUNIXコマンド • 
• 
• 
• 
• 
• 
• 
pwd ls mkdir
cd cp mv rm : 現在のディレクトリを表示 : ディレクトリの中身を表示 : ディレクトリの作成 : ディレクトリの移動 : ファイルのコピー : ファイルの移動 : ファイルの削除 ※ ディレクトリ ・・・ Windowsで言うフォルダのこと 3
コマンド入力はどこで?
•  ターミナルを起動 (「Finder」→「アプリケーション」→「ユー
ティリティ」→「ターミナル」) たとえば $ ls 今後、この「$記号」が出てきたら、 「ターミナルでコマンドを入力するのだな」と思
うこと。$を入力する必要はありません。 4
pwd (print working directory)
現在のディレクトリ位置を表示 $ pwd /Users/ogita ⇒ / (ルートディレクトリ)と呼ばれる一番
上の階層から見て、自分の現在の居場所
(カレントディレクトリ)がどこに位置し
ているかを表示する。 5
ls (list specific)
ディレクトリの中身を表示 $ ls file1 file2 dir1 file3 dir2 … コマンドには大抵オプションがある $ ls -F (ディレクトリ名の最後に / をつける) file1 file2 dir1/ file3 dir2/ … $ ls -a (すべてのファイルを表示) .file4 .file5 .dir3 file1 file2 dir1 … $ ls -aF (上の2つの合わせ技) .file4 .file5 .dir3/ file1 file2 dir1/ … 6
lsのつづき $ ls -l (ファイルの属性などをリスト表示) 合計 48 drwxr-xr-x 3 ogita teacher 4096 3月 19 2002 Desktop drwx------ 5 ogita teacher 4096 4月 15 13:27 Mail drwx-----t 2 ogita teacher 4096 6月 28 2001 Wnn6 drwx-----t 2 ogita teacher 4096 4月 22 19:46 Wnn7 drwx------ 2 ogita teacher 4096 3月 19 2002 nsmail … ⇒ オプションを付けると、より詳しい情報が得られる。
各オプションと表示内容の意味は各自で調べておくこと。 ⇒ $ man ls (マニュアルを読むためのコマンド) ⇒ マニュアルを終えるには「q」を入力 7
mkdir (make directory)
ディレクトリの作成 $ mkdir work $ ls -F file1 file2 dir1/ file3 work/ … ※ ディレクトリの中身が空なら、 $ rmdir work でディレクトリを削除できる。再び ls で 確認してみよう。 8
cd (current/change directory)
ディレクトリの移動 $ pwd (移動前の位置を確認) /Users/ogita $ mkdir work (workディレクトリを作成) $ cd work (workへ移動) $ pwd (移動後の位置を確認) /Users/ogita/work 9
cdのつづき $ cd .. (1つ上の階層へ移動) $ pwd /Users/ogita 単純に $ cd とすると、最初の場所(ホームディレクトリ)に 戻ることができる。 10
テキストエディタ プログラミングなどに必要なテキスト編集などの
処理をするためのソフト ⇒ 授業ではC言語プログラミングのために使う u  テキストエディット(Mac OS X標準搭載) u  Jedit X(操作が簡単。有料だがおすすめ) u  Emacs(操作に少し慣れが必要。無料) u  vi(操作に慣れが必要。無料) 11
Emacs Emacsは非常に多機能なエディタである •  Emacsの起動(指示があるまでやらないこと) $ emacs •  Emacsの終了 control+x の後 control+c 12
Emacsのつづき •  新規ファイルの作成 $ cd work $ emacs hello.c ⇒「hello.c」という新しいファイル (中身は何も
ない) を作成してEmacsで編集開始。 ※ 既に「hello.c」が存在する場合は、 そのファイルを編集することになる。 13
hello.c #include <stdio.h> ¥記号は、環境によっては
\記号(バックスラッシュ)
で表記される int main(void) { printf(“hello, world\n”); return 0; } ⇒ ファイル編集が終わったら、“Save”アイコン
を押して、編集内容をセーブする。 14
コンパイル・実行 •  gcc(GNU C Compiler)を使う $ ls hello.c コンパイル: (C言語の文法
的に)誤りがなければ何も
$ gcc hello.c 言われずに終わる。 $ ls a.out hello.c プログラムの実行: この実
$ ./a.out 行の仕方は、約束事だと思
うことにする hello, world 15
コンピュータとプログラミング
Emacs,JeditX エディタ hello.c gcc コンパイラ プログラム 実行プログラム a.out オペレーティングシステム
(Mac OS X)
ハードウェア (iMac)
16
cp (copy)
ファイルのコピー $ ls (ディレクトリの中身を表示) a.out hello.c 別のファイル名で
$ cp hello.c test.c コピー $ ls a.out test.c hello.c $ cat test.c で、コピーされたファイルを確認してみよう。 17
cpのつづき $ ls a.out test.c hello.c $ mkdir work2 指定したディレクトリ
$ cp test.c work2/ の中へコピー ※ work2に test.c があるか確かめてみよう 18
mv (move)
ファイルの移動/ファイル名の変更 $ ls a.out test.c hello.c work2 $ mv test.c test2.c ファイル名変更 $ ls a.out test2.c hello.c work2 指定したディレクトリ
$ mv test2.c work2/ の中へ移動 $ ls a.out hello.c work2 19
rm (remove)
ファイルの削除 $ cd work2 $ ls test.c test2.c $ rm -i test2.c オプション「-i」を付けると削除の確認ができる。 yを押してから を押すと本当に削除される nを押してから を押すと削除されない 逆に、オプション「-f」を付けると削除の確認な
しでファイルを消すことができる。 20
rmのつづき $ cd .. $ ls a.out hello.c work2 work2の中にはファイルが
あるので、rmdirではディ
$ rmdir work2 レクトリを削除できない $ rm –r work2 オプション「–r」を付けるとディレクトリの中身
を再帰的に削除し、ディレクトリも削除 $ ls a.out hello.c 21
次回の予定 •  変数・標準入出力 22
(付録)Emacs上での操作 キー操作の表示法
C-<文字> “Ctrl”キーを押さえながら <文字>キーを押す 例 C-x, C-f M-<文字> “Esc”キーを押した後 <文字>キーを押す 例 M-x, M-< Emacs上での操作 キー操作を間違えたら C-g コマンドの中止、取り消し その他、困ったときも試してみよう Emacsの起動方法 ・“ターミナル”上で $ emacs $ emacs <ファイル名> すでに存在する ファイルを編集 する場合 Emacsの構成 ・テキスト・ウィンドウ ---- 文書の編集
・モードライン ---- 編集の状態表示
・エコー領域 ---- メッセージの表示 Emacsの終了方法 ・キー操作
C-x C-c 終了時、保存されていないファイルが存在する場合、
Save file <ファイル名>? と表示される。通常は“Yes”をクリックするか、
“y”とタイプすることでファイルに保存され終了。 ファイルの読み込み ・キー操作 C-x C-f ~ Find file: / と表示される。 ファイル名を入力し キーを押す。 カーソルの移動 ・1文字ずつ移動
- 上下左右の矢印キー
- C-f : 1文字右へ移動 C-b : 1文字左へ移動 C-p : 1行上へ移動 C-n : 1行下へ移動 カーソルの移動 ・まとめて移動 M-f: 1単語分右へ移動 C-a: 行の先頭へ移動 M-b: 1単語分左へ移動 C-e: 行の最後へ移動
C-v : 次のページへ移動 M-v : 前のページへ移動 M-< : ファイルの先頭へ移動 M-> : ファイルの最後へ移動 カーソルの移動 ・指定した行へ移動 M-x goto-line Goto line: と表示される。 目的の行番号を入力し キーを押す。 日本語入力 C-\ 英数字モードと日本語モードの 切り替え ローマ字入力により、ひらがなで表示 <Space> (ローマ字入力中)漢字変換 C-k (ローマ字入力中)カタカナ変換 かな漢字変換 C-f 文節の移動(右へ) C-b 文節の移動(左へ) C-o 変換候補の文節を伸張 C-i 変換候補の文節を短縮 例 「きょうはてんきがよいです。」 「今日は天気が良いです。」 テキストの削除 <Delete> : カーソル直前の1文字を削除 C-d : カーソル下の1文字を削除 M-<Delete>: カーソル直前の1単語を削除 M-d : カーソル下の1単語を削除
C-k : カーソルの位置からその行の最後 までを削除
ファイルの保存 ・上書き保存
- キー操作 C-x C-s Wrote /home/student/ .... のように表示され、保存完了。 ファイルの保存 ・別名で保存
- キー操作 C-x C-w Write file: ~/ と表示される。 ファイル名を入力し キーを押す。 文字列の検索 ・カーソルの位置から下へ検索
C-s I-search: と表示。検索したい文字列を入力。 続けてC-sとタイプすることで同じ 文字列を再検索。 ・カーソルの位置から上へ検索 C-r 文字列の置換 M-% Query replace: と表示。置換したい文字列[old]を入力し Query replace [old] with: と表示。新しい文字列[new]を入力し 文字列の置換 Query replacing [old] with [new]: と表示され、カーソルが該当文字列の所 へ移動。 置換する場合は“y”を、しない場合は “n”をタイプ。 文字列の置換(確認なし) M-x replace-string Replace string: と表示。置換したい文字列[old]を入力し Replace string [old] with: と表示。新しい文字列[new]を入力し 確認なしで置換終了。