パスの設定

C言語で書かれたプログラム(ソースファイル)は, コンパイルという作業を行うことで, ただちに実行可能なプログラム(実行ファイル)となります. この授業では,C言語で書いたプログラムを授業用のディレクトリの真下に保存し, コンパイルして実行ファイルを作ります. プログラムの作成とコンパイルの方法については別ページで説明します.

パスを通す目的

授業用ディレクトリ(densan2)に, list0101 という名前のプログラム(実行ファイル)があるとします. ターミナルで


~/densan2/list0101

と入力して [Return] キーを押せば, このプログラムを走らせることができます. ~(チルダ)はホームディレクトリを意味します. 上のコマンドは, 「ホームディレクトリの下の,densan2 ディレクトリの中にある, list0101 というプログラムを実行せよ」という意味です.

現在のワーキングディレクトリが授業用ディレクトリであり, そこに list0101 という名前のプログラムがある場合,


./list0101

としてもプログラムを実行できます. ドット(.)は現在のワーキングディレクトリを意味します.

授業用ディレクトリの真下にある実行ファイルは, 単にそのファイル名を入力すれば実行できるようにしておきたいと思います. つまり,


list0101

とだけ入力して [Return] キーを押せばプログラムを実行できるようにします.

このためには, 授業用ディレクトリにパスを通すという作業が必要になります. この方法を説明します.

現在のパスの確認

われわれユーザが何もしなくても, すでにいくつかのディレクトリにはパスが通されています. 現在のパス設定を確認してみましょう. ターミナルで,


echo $PATH

と入力して [Return] キーを押してください(echo の後に半角スペースが必要). 下図のように,パスの初期設定が表示されます.

echo $PATH パスの初期設定

パスが通されているディレクトリが,コロン(:)で区切られて表示されています.

パスが通されているディレクトリにある実行ファイルは, ターミナルでそのファイル名を入力するだけで実行できます. パスが通されていないディレクトリにある実行ファイルは, ファイル名を入力するだけでは実行できません.

一時的にパスを追加する

初期設定のパスに,授業用ディレクトリを追加します. まずは一時的にパスを追加してみましょう. ターミナルで,


export PATH=$PATH:~/densan2

と入力して [Return] キーを押してください(export の後に半角スペースが必要). 等号の右辺では PATH の前にドルマーク($)が必要ですから, 落とさないようにしてください. これで,授業用ディレクトリ densan2 がパスに追加されました. 確認してみましょう.ターミナルで,


echo $PATH

と入力して [Return] キーを押してください(echo の後に半角スペースが必要).

echo $PATH 追加されたパス

表示されたディレクトリのリストの最後を見てください. /home/3664772825/densan2 と表示されていますね. 初期設定のパスに対して, 授業用ディレクトリ(densan2)が追加されたことがわかります.

設定ファイルでパスを追加する

ターミナルから export コマンドで追加したパスは一時的です. ターミナルを終了し,次にターミナルを起動したときには, 無効になっています. ターミナルを起動したときに, 授業用ディレクトリが自動的にパスに追加されるようにしておきましょう.

ホームディレクトリに,.bash_profile というファイルを作ります. ファイル名の先頭にあるドット(.)もファイル名の一部です. このファイルの中に設定を書いておくと, ターミナルを起動するときに読み込まれ,有効となります.

設定ファイルはターミナル起動時に読み込まれるので, 設定ファイルを作る前に,ターミナルを終了させておきましょう. (すでにターミナルが起動している状態で, 改めて設定ファイルを読み込むことは可能です.)

この授業では,C言語のプログラムを書くために, Emacs(イーマックス)というエディタを使用します. 設定ファイル .bash_profile を,この Emacs を使って書いてみましょう.

Emacs を起動するには, 紫色のボールのようなアイコンをマウスでクリックします. 教室の Mac では,ターミナルのアイコンの2つ右隣にあります.

Emacs icon

アイコンをクリックすると,下図のように Emacs が起動します.

起動した Emacs

表示される文字が小さすぎると感じるなら, 文字サイズの変更をしてください. モニターの最上段に表示されている Emacs のメニューで, Options をマウスでクリックしてください. Set Default Font... という項目が見えますので, これをマウスでクリックしてください.

Set Default Font...

Fonts という小さいウィンドウが現れます. 一番右側に Size の設定がありますので, 好みのフォントサイズをマウスで選択してください. 選択すると Emacs の表示が変わります.

Font Size

Emacs では,既存のファイルの編集だけでなく, 新規ファイルの作成においても,ファイルを開くという操作を最初に行います. これはメニューからマウスを使って行うこともできますが, ここではキーボードからのコマンド入力で行ってみましょう.

コントロールキー [Ctrl] を押しながら,[X] キーを同時に押して, 両方のキーから指を離してください. すると, Emacs のウィンドウの一番下にある細い領域 (「ミニバッファ」と呼ばれます)に, 下図のように C-x- と表示されます.

C-x

続いて,コントロールキー [Ctrl] を押しながら,[F] キーを同時に押して, 両方のキーから指を離してください. Emacs のコマンドの解説では, この一連の操作を C-x C-f と表記します. このコマンドを実行すると, ミニバッファの表示は下図のようになります.

Find file

うまくいかなければ, コントロールキー [Ctrl] を押しながら,[G] キーを同時に押してください. この操作は入力中のコマンドを中止します. 入力中のコマンドを中止すると,ミニバッファに Quit と表示されます. そうしたら,最初(C-x)からやり直してください.

ミニバッファに Find file: と表示されたら, 適切なディレクトリの下に, 作成したいファイル名(.bash_profile)を入力して [Return] キーを押します. ミニバッファには上図のように


Find file: /

と表示されているでしょう. 設定によっては表示が異なりますが,Find file: と表示されていれば問題ありません. 下図のように,


Find file: ~/.bash_profile

と入力して,[Return] キーを押してください. チルダ記号(~)はホームディレクトリを意味しますので, この表示に続けてファイル名を入力すれば, ホームディレクトリにファイルが作成されることになります. ファイル名の先頭にドット(.)を忘れないようにしてください.

Open ~/.bash_profile

文字入力のできる,白紙の画面が現れます. 下図のように,一番上の行に


export PATH=$PATH:~/densan2

と書いてください. 授業用ディレクトリへのパスを一時的に追加したとき, ターミナルから入力したものと同じです. densan2 は授業用ディレクトリの名前です. この設定は,誤ると現在のパス設定を無効にしてしまうことがあり, 深刻な結果をもたらします. 現在のパスを無効にしてしまうと, ターミナルからコマンド入力ができなくなってしまいます. 慎重に行ってください.

.bash_profile

ファイルを保存します.ファイル保存のための操作は, ファイルを開いたときの操作と類似しています. コントロールキー [Ctrl] を押しながら,[X] キーを同時に押して, 両方のキーから指を離してください. Emacs のウィンドウの一番下にある細い領域(「ミニバッファ」と呼ばれます)に, C-x- と表示されます. 続いて,コントロールキー [Ctrl] を押しながら,[S] キーを同時に押して, 両方のキーから指を離してください. すると,下図のように, ファイルが保存されたというメッセージがミニバッファに表示されます. Emacs のコマンドの解説では, この一連の操作を C-x C-s と表記します.

save .bash_profile

C-x C-s は「上書き保存」のコマンドです. 「名前を付けて保存」をしたい場合には,C-x C-w とします. [s] キーの代わりに [W] キーを押します. そうすると,ミニバッファにファイル名を入力できます.

パスが追加されたことを確認しておきましょう. ターミナルを立ち上げ,


echo $PATH

と入力して [Return] キーを押してください(echo の後に半角スペースが必要). 下図のように, 授業用ディレクトリがパスの最尾に追加されていることがわかります.

.bash_profile の設定により追加されたパス

すでにターミナルを立ち上げている状態で設定ファイル(.bash_profile)を書いたならば, この設定ファイルを読み込ませないと,設定が有効になりません. ターミナルで,


source ~/.bash_profile

と入力して [Return] キーを押してください(source の後に半角スペースが必要).

Emacs の終了

ターミナル起動時に設定ファイル(.bash_profile)が読み込まれ, 授業用ディレクトリへのパスが追加されたことを確認したら, Emacs を終了させましょう.

メニューから終了させてもよいのですし, [command] キーと [Q] キーを同時に押しても Emacs を終了できますが, ここでもキー入力で終了させてみましょう. コントロールキー [Ctrl] を押しながら,[X] キーを同時に押してください. 続いて,コントロールキー [Ctrl] を押しながら,[C] キーを同時に押して, 両方のキーから指を離してください. これで Emacs が終了されます. Emacs のコマンドの解説では, この一連の操作を C-x C-c と表記します.