Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
情報処理技法(Cプログラミング)I
第2回
ー UNIXの基本(2)・C言語の初歩 ー
担当: 荻田 武史
2
本日の授業内容
• 低限覚えるべきUNIXコマンド pwd, ls, mkdir, cd, cp, rm, mv
• テキストエディタの簡単な使い方 テキストエディット, Jedit X,Emacs
• C言語プログラミングの初歩 「hello, world」を画面に出力
3
低限覚えるべきUNIXコマンド
• pwd : 現在のディレクトリを表示
• ls : ディレクトリの中身を表示
• mkdir : ディレクトリの作成
• cd : ディレクトリの移動
• cp : ファイルのコピー
• mv : ファイルの移動
• rm : ファイルの削除
※ ディレクトリ ・・・ Windowsで言うフォルダのこと
4
コマンド入力はどこで?
• ターミナルを起動 (「Finder」→「アプリケーション」→「ユーティリティ」→「ターミナル」)
たとえば
$ ls
今後、この「$記号」が出てきたら、
「ターミナルでコマンドを入力するのだな」と思うこと。$を入力する必要はありません。
5
pwd (print working directory) 現在のディレクトリ位置を表示
$ pwd /Users/ogita
⇒ / (ルートディレクトリ)と呼ばれる一番上の階層から見て、自分の現在の居場所(カレントディレクトリ)がどこに位置しているかを表示する。
6
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/ …
コマンドには大抵オプションがある
7
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」を入力
8
mkdir (make directory)ディレクトリの作成
$ mkdir work
$ ls -F
file1 file2 dir1/ file3 work/ …
※ ディレクトリの中身が空なら、
$ rmdir work
でディレクトリを削除できる。再び ls で
確認してみよう。
9
cd (current/change directory)ディレクトリの移動
$ pwd (移動前の位置を確認)
/Users/ogita
$ mkdir work (workディレクトリを作成)
$ cd work (workへ移動)
$ pwd (移動後の位置を確認)
/Users/ogita/work
10
cdのつづき
$ cd .. (1つ上の階層へ移動)
$ pwd
/Users/ogita
単純に
$ cd
とすると、 初の場所(ホームディレクトリ)に
戻ることができる。
11
テキストエディタ
プログラミングなどに必要なテキスト編集などの処理をするためのソフト
⇒ 授業ではC言語プログラミングのために使う
u テキストエディット(Mac OS X標準搭載) u Jedit X(操作が簡単。有料だがおすすめ) u Emacs(操作に少し慣れが必要。無料) u vi(操作に慣れが必要。無料)
12
Emacs
Emacsは非常に多機能なエディタである
• Emacsの起動(指示があるまでやらないこと) $ emacs
• Emacsの終了 control+x の後 control+c
13
Emacsのつづき
• 新規ファイルの作成 $ cd work
$ emacs hello.c
⇒「hello.c」という新しいファイル (中身は何もない) を作成してEmacsで編集開始。
※ 既に「hello.c」が存在する場合は、
そのファイルを編集することになる。
14
hello.c
#include <stdio.h>
int main(void)
{
printf(“hello, world\n”);
return 0;
}
¥記号は、環境によっては\記号(バックスラッシュ)で表記される
⇒ ファイル編集が終わったら、“Save”アイコンを押して、編集内容をセーブする。
15
コンパイル・実行
• gcc(GNU C Compiler)を使う $ ls
hello.c
$ gcc hello.c
$ ls
a.out hello.c
$ ./a.out
hello, world
コンパイル: (C言語の文法的に)誤りがなければ何も言われずに終わる。
プログラムの実行: この実行の仕方は、約束事だと思うことにする
16
コンピュータとプログラミング
ハードウェア (iMac)
オペレーティングシステム (Mac OS X)
プログラム 実行プログラム
エディタ コンパイラ
gcc Emacs,JeditX
a.out hello.c
17
cp (copy)ファイルのコピー
$ ls (ディレクトリの中身を表示)
a.out hello.c
$ cp hello.c test.c
$ ls
a.out test.c hello.c
$ cat test.c
で、コピーされたファイルを確認してみよう。
別のファイル名でコピー
18
cpのつづき
$ ls
a.out test.c hello.c
$ mkdir work2
$ cp test.c work2/
※ work2に test.c があるか確かめてみよう
指定したディレクトリの中へコピー
19
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
ファイル名変更
指定したディレクトリの中へ移動
20
rm (remove)ファイルの削除
$ cd work2
$ ls
test.c test2.c
$ rm -i test2.c オプション「-i」を付けると削除の確認ができる。 yを押してから を押すと本当に削除される
nを押してから を押すと削除されない
逆に、オプション「-f」を付けると削除の確認なしでファイルを消すことができる。
21
rmのつづき
$ cd ..
$ ls
a.out hello.c work2
$ rmdir work2
$ rm –r work2
オプション「–r」を付けるとディレクトリの中身を再帰的に削除し、ディレクトリも削除
$ ls
a.out hello.c
work2の中にはファイルがあるので、rmdirではディレクトリを削除できない
22
次回の予定
• 変数・標準入出力
(付録)Emacs上での操作
キー操作の表示法 C-<文字> “Ctrl”キーを押さえながら
<文字>キーを押す
M-<文字> “Esc”キーを押した後 <文字>キーを押す
例 C-x, C-f
例 M-x, M-<
Emacs上での操作
C-g
キー操作を間違えたら
コマンドの中止、取り消し
その他、困ったときも試してみよう
Emacsの起動方法
・“ターミナル”上で
$ emacs
$ emacs <ファイル名> すでに存在する ファイルを編集 する場合
Emacsの構成
・テキスト・ウィンドウ ---- 文書の編集 ・モードライン ---- 編集の状態表示 ・エコー領域 ---- メッセージの表示
Emacsの終了方法 ・キー操作 終了時、保存されていないファイルが存在する場合、 と表示される。通常は“Yes”をクリックするか、 “y”とタイプすることでファイルに保存され終了。
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-> : ファイルの 後へ移動
カーソルの移動
・指定した行へ移動
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]を入力し