情報処理技法 (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]を入力し 確認なしで置換終了。
© Copyright 2024 ExpyDoc