情報処理技法
(Cプログラミング)I
第2回
ー UNIXの基本(2)・C言語の初歩 ー 担当: 荻田 武史
本日の授業内容
• 最低限覚えるべきUNIXコマンド
pwd, ls, mkdir, cd, cp, rm, mv
• テキストエディタの簡単な使い方
テキストエディット, Jedit X,Emacs
• C言語プログラミングの初歩
「hello, world」を画面に出力
最低限覚えるべきUNIXコマンド
• pwd : 現在のディレクトリを表示 • ls : ディレクトリの中身を表示 • mkdir : ディレクトリの作成 • cd : ディレクトリの移動 • cp : ファイルのコピー • mv : ファイルの移動 • rm : ファイルの削除コマンド入力はどこで?
• ターミナルを起動 (「Finder」→「アプリケーション」→「ユー ティリティ」→「ターミナル」) たとえば $ ls 今後、この「$記号」が出てきたら、 「ターミナルでコマンドを入力するのだな」と思 うこと。$を入力する必要はありません。pwd (print working directory)
現在のディレクトリ位置を表示
$ pwd /Users/ogita ⇒ / (ルートディレクトリ)と呼ばれる一番 上の階層から見て、自分の現在の居場所 (カレントディレクトリ)がどこに位置し ているかを表示する。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/ …
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 (マニュアルを読むためのコマンド)
mkdir (make directory)
ディレクトリの作成
$ mkdir work $ ls -F
file1 file2 dir1/ file3 work/ …
※ ディレクトリの中身が空なら、 $ rmdir work
でディレクトリを削除できる。再び ls で 確認してみよう。
cd (current/change directory)
ディレクトリの移動
$ pwd (移動前の位置を確認) /Users/ogita
$ mkdir work (workディレクトリを作成) $ cd work (workへ移動)
$ pwd (移動後の位置を確認) /Users/ogita/work
cdのつづき
$ cd .. (1つ上の階層へ移動) $ pwd /Users/ogita 単純に $ cd とすると、最初の場所(ホームディレクトリ)に 戻ることができる。テキストエディタ
プログラミングなどに必要なテキスト編集などの 処理をするためのソフト
⇒ 授業ではC言語プログラミングのために使う
u テキストエディット(Mac OS X標準搭載) u Jedit X(操作が簡単。有料だがおすすめ) u Emacs(操作に少し慣れが必要。無料)
Emacs
Emacsは非常に多機能なエディタである • Emacsの起動(指示があるまでやらないこと) $ emacs • Emacsの終了 control+x の後 control+cEmacsのつづき
• 新規ファイルの作成 $ cd work $ emacs hello.c ⇒「hello.c」という新しいファイル (中身は何も ない) を作成してEmacsで編集開始。 ※ 既に「hello.c」が存在する場合は、 そのファイルを編集することになる。hello.c
#include <stdio.h>
int main(void) {
printf(“hello, world\n”); return 0; } ¥記号は、環境によっては \記号(バックスラッシュ) で表記される ⇒ ファイル編集が終わったら、“Save”アイコン
コンパイル・実行
• gcc(GNU C Compiler)を使う $ ls hello.c $ gcc hello.c $ ls a.out hello.c $ ./a.out コンパイル: (C言語の文法 的に)誤りがなければ何も 言われずに終わる。 プログラムの実行: この実 行の仕方は、約束事だと思コンピュータとプログラミング
ハードウェア (iMac) オペレーティングシステム (Mac OS X) プログラム 実行プログラム エディタ コンパイラ gcc Emacs,JeditX a.out hello.ccp (copy)
ファイルのコピー
$ ls (ディレクトリの中身を表示) a.out hello.c $ cp hello.c test.c $ lsa.out test.c hello.c
$ cat test.c
で、コピーされたファイルを確認してみよう。 別のファイル名で コピー
cpのつづき
$ ls
a.out test.c hello.c
$ mkdir work2 $ cp test.c work2/ ※ work2に test.c があるか確かめてみよう 指定したディレクトリ の中へコピー
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
ファイル名変更
指定したディレクトリ の中へ移動
rm (remove)
ファイルの削除
$ cd work2 $ ls test.c test2.c $ rm -i test2.c オプション「-i」を付けると削除の確認ができる。 yを押してから を押すと本当に削除される nを押してから を押すと削除されない 逆に、オプション「-f」を付けると削除の確認な しでファイルを消すことができる。rmのつづき
$ cd .. $ ls
a.out hello.c work2 $ rmdir work2 $ rm –r work2 オプション「–r」を付けるとディレクトリの中身 を再帰的に削除し、ディレクトリも削除 $ ls a.out hello.c work2の中にはファイルが あるので、rmdirではディ レクトリを削除できない
次回の予定
• 変数・標準入出力(付録)
Emacs上での操作
キー操作の表示法 C-<文字> “Ctrl”キーを押さえながら <文字>キーを押す M-<文字> “Esc”キーを押した後 <文字>キーを押す 例 C-x, C-fEmacs上での操作
C-g
キー操作を間違えたら
コマンドの中止、取り消し
Emacsの起動方法
・“ターミナル”上で $ emacs $ emacs <ファイル名> すでに存在する ファイルを編集 する場合Emacsの構成
・テキスト・ウィンドウ ---- 文書の編集
・モードライン ---- 編集の状態表示
Emacsの終了方法
・キー操作 終了時、保存されていないファイルが存在する場合、 と表示される。通常は“Yes”をクリックするか、 C-x C-c Save file <ファイル名>?ファイルの読み込み
・キー操作 C-x C-f
Find file: / ~ と表示される。
カーソルの移動
・1文字ずつ移動 - 上下左右の矢印キー - C-f : 1文字右へ移動 C-b : 1文字左へ移動 C-p : 1行上へ移動 C-n : 1行下へ移動カーソルの移動
・まとめて移動C-v : 次のページへ移動 M-v : 前のページへ移動 M-f: 1単語分右へ移動 M-b: 1単語分左へ移動 C-a: 行の先頭へ移動 C-e: 行の最後へ移動 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
ファイルの保存
・別名で保存
- キー操作 C-x C-w
Write file: ~/ と表示される。
文字列の検索
・カーソルの位置から下へ検索 C-s I-search: と表示。検索したい文字列を入力。 続けてC-sとタイプすることで同じ 文字列を再検索。文字列の置換
M-%
Query replace:
と表示。置換したい文字列[old]を入力し
Query replace [old] with:
文字列の置換
Query replacing [old] with [new]:
と表示され、カーソルが該当文字列の所 へ移動。
置換する場合は“y”を、しない場合は
文字列の置換(確認なし)
M-x replace-string
Replace string:
と表示。置換したい文字列[old]を入力し
Replace string [old] with: