1 計算機プログラミング 第 1 回:本日の目標 ・ 講義の目的を理解する

計算機プログラミング 第 1 回:本日の目標 ・ 講義の目的を理解する(→シラバス) ・ C 言語プログラミングのための基本操作を理解する Ø
Ø
UNIX 入門 →1,2 ²
UNIX 基本コマンドの理解 →3 ²
Emacs(エディタ)の使い方の理解 →4,5,6 編集→コンパイル→実行 ・ メールの設定 1 UNIX について ・ UNIX とは
Ø
マルチタスク、マルチユーザー機能を有するオペレーティングシステム(OS)の
一種、またはこれから派生した一連の OS の総称
・ UNIX の特徴
Ø
C 言語で書かれている
Ø
ファイルやコマンドはディレクトリのツリー構造で格納されている
Ø
いくつかのシェルが用意されていて、ユーザー環境のカスタマイズが可能
Ø
スーパーコンピュータなどのマルチユーザー計算機の OS として使われている
²
ユーザーが管理できるファイルとスーパーユーザーが管理できるファイルが
異なる
Ø
現在、Linux(フリーの UNIX クローン)が普及している、MacOS も version X か
ら UNIX ベースの OS となった
Ø
Cygwin は windows 上で UNIX 環境を実現するためのアプリケーションである
1
2 UNIX でのファイル管理 UNIX に限らず、多くの OS においてファイルはディレクトリ(フォルダ)のツリー構造で
管理されている。
ディレクトリのツリー構造の例
/
bin
etc
usr
var
bin
X11R6
ls
local
home
userA
pwd
dir1
file3
userA が自由に書き込める領域
lib
tmp
userB
dir2
file1
file2
file4
知っておくべきこと
・各ユーザーが自由にファイルやディレクトリを管理できるディレクトリをホームディレ
クトリと言います.
ターミナルを開いたときに「いる」ディレクトリがホームディレクトリです.
・ホームディレクトリには書き込み権限があるので,新しくファイルを作成したり,copy
(複製)したり,名前を変えたり,ディレクトリを作成して,ファイルを整理したりでき
ます.
・ファイルの管理は,グラフィックユーザーインターフェース(GUI:mac の場合 Finder)
を用いて行うことが出来ますが,UNIX のコマンドを用いて行うことも出来ます.
・ファイルには様々な種類がありますが,大きく分けて
テキストファイル,実行ファイル(実行コマンド),データファイルの3種類があります.
C 言語プログラミングでは,C のプログラムをテキストファイルとして作成し,コンパイラ
(実行コマンド)を用いて,プログラムの実行ファイル(コマンド)を作成し,実行コマ
ンドを入力してプログラムを走らせます.
・ファイルの種類は,拡張子で識別しますが,C のプログラムでは必ず.c を用います.
2
3 ターミナルを開こう
Dock
にある をクリックしてターミナルを開いてみよう。
□ターミナルの設定をしよう(一度設定するだけで次回からの設定は不要)
環境設定‐設定‐詳細‐言語環境の文字エンコーディング
を 日本語 shift-jis にしてください。
※日本語を表示させるプログラムでは,保存する文字コードと表示する文字コードを一致
させる必要があります.日本語文字コードが一致していないと文字化けします.
□ターミナルに以下の UNIX コマンドを入力してみよう.
(1) pwd [RET]と入力して、自分のホームディレクトリを確認してみよう。
→自分のホームディレクトリ($HOME と記すことにする):
(2) ls[RET]と入力して、ホームディレクトリにどのようなファイルやディレクトリがあるか
確認してみよう。
(3) mkdir DIR1[RET]と入力して、新しいディレクトリ DIR1 を作成してみよう。
(4) ls[RET]と入力して、新しいディレクトリ DIR1 が出来ていることを確認しよう。
(5) cd DIR1[RET]と入力して、ディレクトリ DIR1 の下に移動してみよう。
(6) pwd[RET]と入力して、現在自分のいるディレクトリ(カレントディレクトリ)が
$HOME/DIR1 であることを確認しよう
(7) ls[RET]で$HOME/DIR1 以下にはファイルもディレクトリもないことを確認しよう。
(8) ls –al[RET]で . や..が表示されることを確認しよう。
. (ドット)はカレントディレクトリ、.. (ドットドット)は一個上の親ディレクトリである。
(9) cd ..[RET]で親ディレクトリに移動してみよう。
なお、カレントディレクトリがどこであろうと cd[RET]で$HOME に移動することができる。
(10) pwd[RET]でカレントディレクトリを確認しよう。
3
4 エディタ Emacs を開いてみよう Dock
にある をクリックして Emacs を開いてみよう
次のような Window が現れるはず。
□ 文字コードの設定
C-x [RET] f
と入力した後、sjis-unix もしくは shift-jis-unix と入力し、[RET]。
Emacs の左下の表示が
となるはず.
※なお、sjis-unix の入力途中(たとえば s とだけ入力したのち)で[space]を押すと候補がリス
トされ、文字が補完されるのでやってみてください。
4
5 新規ファイルの作成 にある
1.
を押して、作成するファイル名を入力する。
(c プログラムの場合はファイル名必ず[何とか].c とする)
その際、自分の HOME ディレクトリ以下のどのディレクトリに保存するのかを意識して、
保存すること。
□ここではとりあえず、$HOME/DIR1 以下に sample.txt として指定してみよう。
2.適当にテキスト入力する
□ かなキーを押して,日本語も入力してみよう
□ 英数キーでアルファベット
3.1ですでにファイル名を指定しているので を押して、上書き保存する。
保存する前に、必ず、文字コードの設定が sjis-unix であることを確認すること。
Emacs の左下隅が
となっていれば OK。
もしくは
だと保存したファイルが以下で表示できない.(C プログラムの場合,
コンパイルもできない.)
□ ターミナルで cd [RET](←ホームディレクトリに移動するため)、cd DIR1[RET]、ls[RET]
と入力して、$HOME/DIR1 以下に sample.txt があるか確認してみよう。
□ ファイル sample.txt があることを確認したら、同じくターミナルで cat sample.txt[RET]
と入力し、2で入力した内容が正しく表示されるかどうか確認しよう。
5
6 既存ファイルの編集&保存 にある
1.
を押して、編集する既存ファイルを指定する。
□ ここでは、11で作成した$HOME/Apr18 以下の sample.txt を指定する。
2.sample.txt を適当に書き換える。
□ かなキーを押せば、日本語入力ができるので、日本語入力もしてみよう。
半角英数文字に戻すときは英数キーを押す。
□ マウスで適当に範囲指定した後、
を押すと cut でき、
を押すと Undo できること
を確認しよう。
□カーソルを(↓、↑、←、→等で)移動し、
を押すと、カーソル位置に paste できる
ことを確認しよう。
□マウスで範囲指定した後、
移動し、
3.
を押すと copy でき、カーソルを(↓、↑、←、→等で)
を押すと、カーソル位置に paste できることを確認しよう。
を押して、別名で保存してみよう。
□ ここでは、$HOME/Apr18 以下に sample2.txt として保存してみる。
□ 新規ファイルの作成のとき同様にターミナルで、$HOME/Apr18 以下に sample2.txt があ
ることを確認してみよう。
6
7 UNIX 基本コマンドをマスターしよう pwd カレントディレクトリの表示 ls カレントディレクトリにあるファイルの一覧を表示 ls -l :ファイルサイズ、作成日時、所有者、アクセス権限等を表示 ls -a:隠しファイル(設定ファイル等)を表示 ls -R:ディレクトリ内のファイルとディレクトリを全て表示 man command1 UNIX コマンド(command1)のマニュアルを表示 例) man ls which command1 UNIX コマンド(command1)のフル path を表示 mkdir dir1 ディレクトリ(dir1)の作成 cd dir1 ディレクトリ(dir1) への移動 cd .. :ひとつ上のディレクトリ(親ディレクトリ)への移動 cd :ホームディレクトリへの移動 ls -R:ディレクトリ内のファイルとディレクトリを全て表示 rmdir dir1 ディレクトリの削除 ディレクトリの中にファイルがあると削除できない 参照) rm -r dir1 cp file1 file2 ファイル(file1)の内容を複製して file2 を作成 cp -r dir1 dir2 : ディレクトリ(dir1)の構造ごと複製して dir2 を作成 7
mv file1 file2 ファイル(file1)の名前を file2 に変更 mv file1 dir1 :ファイル(file1)をディレクトリ(dir1)以下に移動する mv dir1 dir2 :ディレクトリ(dir1)の名前を dir2 に変更する diff file1 file2 ファイル(file1)とファイル(file2)の内容を比較する rm file1 ファイル(file1)の削除 rm -r dir1 :ディレクトリ dir1 の全てを削除 cat file1 ファイル(file1)の内容を画面に表示 cat file1 file2 > file3: file1 と file2 を結合して file3 を作成 less file1 ファイル(file1)の内容を 1 頁づつ表示 file file1 ファイル(file1)の種類を表示 chmod 644 file1 ファイル(file1)の属性を 644 に設定 □ UNIX コマンドはその他にも存在するので
Google 等で「UNIX コマンド」をキーワードにして、検索してみてください。
8
8 エディタ(Emacs)の使い方(トレーニング) Emacs の基本的な使い方としては、5と6をマスターすれば十分ですが、
たとえば、非常に大きいプログラムなどは、より効率よく編集したいものです。
その際には、コントロールキーやメタキーを用いたキー操作が便利です。
※C-space など、Mac 上で下記とは異なるキーが割り当てられているものもあるので注意
操作が分からなくなったら, C-g (すなわち,Ctrl を押しながら g を押す)で 操作を取り消しましょう. 9
□ そのほかにも、正規表現を用いた文字列置換などの便利な使い方もあります。
検索して各自調べましょう。なお、マスターするのに Emacs Tutorial はおすすめです。
10