計算機システムの使い⽅ver. 2018/4/19
計算物理学２は、サテライト室の端末を使います。まず、パソコンの電源を⼊れ、ubuntu（Linux）OS を選択し、ログインウインドウに[ログイン名]と[パスワード]を順に⼊⼒して端末にログインして下さい。
計算物理学２の授業で必要な計算機システムの操作は・端末の起動、基本的なコマンド操作
・プログラムのソースコードを書くエディタ操作
・プログラムのコンパイル
・プログラムの実⾏
・プログラムの結果の出⼒(図作成)です。それぞれを以下で説明します。
○端末の起動・ubuntu を起動したデスクトップ画⾯で[Ctrl]+[Alt]+T を押すと端末が起動します。
・デスクトップ画⾯で右クリックして「端末を開く(E)」を選択しても起動できます。
・クイック起動メニューの「コンピュータを検索」で terminal と検索しても端末が起動できます。
○端末の(Linux の)基本的なコマンド操作
Linux端末では基本的にキーボードを使ってコマンドを⼊⼒することによって各種操作を⾏います。また、Windowsのフォルダに相当するファイルシステムは、ディレクトリという⼀番上のルートディレクトリ"/"から始まるツリー構造で管理されています。端末を起動すると通常はホームディレクトリと呼ばれる各ユーザー専⽤のディレクトリから始まります。ここでは、ターミナル上での基本的なコマンドとディレクトリに対する操作を説明します。 基本的に必要なコマンドは、ファイル・ディレクトリを⾒る・作成する・消去する・移動するの４つです。
以下で$はコマンド・プロンプトなので⼊⼒しないでください。またコマンドを⼊⼒したらenterキーを押すことで実⾏されます。
(A) ファイル・ディレクトリを⾒る

1

ls はディレクトリの中にあるファイルの名前の⼀覧を表⽰するコマンドである。

$ lsa.out*

example.f90

output.txt work/

pwd は今いるディレクトリを絶対パス(/から始まるツリー構造)で表⽰します (printworking directory)$ pwd/home/hinohara.nobuo.ga(B)ディレクトリを作成する
mkdir はディレクトリを作成(make directory)し、 rmdir はディレクトリを消去する(remove directory)コマンドです。
$ mkdir ディレクトリ名$ rmdir ディレクトリ名のように使います。rmdir でディレクトリを消去する場合は、そのディレクトリは予め空になっていないと削除できません（後述のrm –r [ディレクトリ名] を使えば中⾝も含めて全て消去できます）。
(C) rm はファイルを消去するコマンドです(remove)$ rm [ファイル名]のように使う。ディレクトリも消したい場合は-rオプションをつけます。
$ rm -r [ディレクトリ名]
いずれの場合も⼀度消してしまったファイルは復元できないため操作ミスに注意してください。
(D) cp はファイルを複製するとき(copy)、mv はファイル名を変更する（move）ときに使うコマンドです。mvで既に存在するファイル名を指定すると以前のは無くなるので注意。
$ cp [ファイル名1] [ファイル名2]（ファイル名1をファイル名2にコピーする）$ mv [ファイル名1] [ファイル名2]（ファイル名1をファイル名2と名前を変える）$ mv [ファイル名] [ディレクトリ名/]（ファイル名をディレクトリ名の下に移動する）(E) cd は別のディレクトリに移動するために使⽤する。(change directory)$ cd ディレクトリ名2

ディレクトリ名を省略するとホームディレクトリに移動します。
カレントディレクトリは "." で表します。
ひとつ上のディレクトリは".."を表します。
ホームディレクトリは"~"で表します。
例︓カレントディレクトリにあるcompphys2ディレクトリに移動$ cd compphys2/ あるいは $ cd ./compphys2/ (最後のスラッシュはなくてもよい)
例︓⼀つ上のディレクトリに移動$ cd ../
例︓2つ上のディレクトリに移動$ cd ../../
例︓ホームディレクトリの下にあるDesktopディレクトリに移動$ cd ~/Desktop/

Linux のコマンド⼀覧
コマンド
pwd

機能・操作
カレントディレクトリの表⽰(print working directory)
カ レ ン ト デ ィ レ ク ト リ の 変 更 ( デ ィ レ ク ト リ の 移 動 , change

cdデ ィ レクトリ

mkdir

rmdirdirectory)
利⽤法 : cd 移動先ディレクトリ
ディレクトリの作成 (make directory)
利⽤法 : mkdir 作成するディレクトリ
ディレクトリの削除 (remove directory)
利⽤法︓ rmdir 削除する空のディレクトリ
ディレクトリ情報の表⽰ (list)-l オプション : 詳細情報の表⽰-t オプション︓作成時間順でソート

フ ァ イル-S オプション︓ファイルサイズ順でソート
ls-r オプション︓逆順にソート-h オプション︓ファイルサイズを-R オプション : ディレクトリの中まで辿って表⽰
利⽤法 1: ls
利⽤法 2: ls ディレクトリ

3

利⽤法 3: ls -l ファイル 1 ファイル 2 ...
詳細情報の⾒⽅drwxr-xr-x 16 hinohara.nobuo.ga staff
512
data/
第⼀コラム d はディレクトリであることを表す。

2 10 06:08rwxrwxrwx はそのファイル・ディレクトリのパーミッションを表す 。 r: readable( 読 み 込 み 可 能 ) w: writable( 書 き 込 み 可 能 ), x:executable(実⾏可能)。はじめの 3 つはファイル所有者の権限、次の3 つはグループの権限、最後の 3 つは任意のユーザの権限を表す。
パーミッションは chmod コマンドで変更できる。
第⼆コラムは
第 3・４コラムはファイル所有者名、グループ名、第５コラムはファイルサイズ、第６コラム以降は最終更新⽇時を表す。
ファイル 、ディレクトリの複製-r オプション : ディレクトリ全体の複製
cp

利⽤法 1: cp コピー元ファイル コピー先ファイル
利⽤法 2: cp コピー元ファイル 1 コピー元ファイル 2 ... コピー先
ディレクトリ
利⽤法 3: cp -r コピー元ディレクトリ コピー先ディレクトリ
ファイル 、ディレクトリの削除
削除したファイルやディレクトリは復活できないので注意して使⽤すること。

rm-r オプション(recursive) : ディレクトリも削除-i オプション(interactive)︓削除を実⾏する前に確認。安全のためデフォルトに設定することも多い。
利⽤法 1: rm 削除ファイル 1 削除ファイル 2 ...
利⽤法 2: rm -r 削除ディレクトリ 1 削除ディレクトリ 2 ...
ファイル、ディレクトリの移動、名前の変更
利⽤法 1: mv 変更前ファイル名 変更後ファイル名

mv

利⽤法 2: mv 変更前ディレクトリ名 変更後ディレクトリ名利⽤法 3: mv 移動 file1 移動ファイル 2 ... 移動先ディレクトリ
変更後ファイル名と同名のファイルがすでに存在する場合は上書き

4

されてしまうので注意
cat

ファイルの内容を出⼒利⽤法 : cat ファイル名
ファイルの内容をページごとに出⼒表⽰・編集・検索

less

利⽤法 : less ファイル名
スペースでスクロール

vi
emacs
grep

テキストエディタ
テキストエディタ-nw オプション︓端末内で起動(別 window が開きません)
ファイル検索Fortran90/95 プログラムをコンパイルして実⾏ファイルを作成-o オプション : 作成する実⾏ファイル名の指定。指定しないとa.out という名前の実⾏ファイルが作成される。

gfortran(g95)-O オプション等 : プログラムの最適化．計算機によって異なる．
利⽤法 : gfortran コンパイルするプログラム名 (ex: file.f)-o 作

成する実⾏ファイル名 (ex: file.exe)
実⾏法 ︓プ ロ グ% ./file.exe（%はコマンドプロンプトなので、打ち込まない事）

ラム

C ⾔語プログラムをコンパイルして実⾏ファイルを作成。
-o オプション : 作成する実⾏ファイル名の指定。指定しないとa.out という名前の実⾏ファイルが作成される。
-O オプション等 : プログラムの最適化．計算機によって異なる．
gcc

利⽤法 : gcc コンパイルするプログラム名(ex: file.c)
実⾏ファイル名(ex: file.exe)
実⾏法 ︓% ./file.exe（%はコマンドプロンプトなので、打ち込まない事）

5-o 作成する

○プログラムの作成
Fortran90 のプログラムは半⾓の英数⽂字、⼀部の半⾓記号で構成されます。⽇本語⼊⼒モードではなく、英数⼊⼒モードを使⽤して下さい。
エディタの起動
プログラムはエディタで書きます。ここではテキストエディタ Emacs の使い⽅を説明します。プログラムを作成したいディレクトリに移動した後に、Emacs の起動は端末で$ emacs プログラムファイル名 &とすると emacs が起動し、指定した名前のファイルの編集ができます。同名のファイルが存在しない場合は新規作成となります。最後の&についてですが、基本的にコマンドを実⾏(emacs を実⾏)すると emacs を終了するまでその端末を使えませんが、&をつけて実⾏する
ことにより、別プロセスとして emacs が実⾏されるため、emacs が起動中も端末も同時に使うことができます。
Fortran 90 のプログラムファイル名は example.f90 などのように.f90 という拡張⼦にしてください。(emacs で Fortran90 プログラムであると⾃動判別されて、⾒やすく表⽰されます)
Emacs の使い⽅
Emacs では Ctrl キーを押しながらアルファベットキーを押すことで様々な操作ができます。
例えば Ctrl キーを押しながら x、s を順番に押す操作を Ctrl-x, Ctrl-s と表記します。
Emacs がすでに起動した状態でファイルを開く(Ctrl-x Ctrl-f)
⼀番下の⾏でファイル名を尋ねられるので⼊⼒します。ホームディレクトリからのパスで表⽰されます。
ファイルを保存(Ctrl-x Ctrl-s)上書き保存されます。プログラム作成中はこまめに保存するようにしてください。実⾏するとWrote /Users/hinohara.nobuo.ga/compphys2/example.f90などとファイルがどこに保存されているか⼀番下の⾏に表⽰されます。
Emacs を終了 (Ctrl-x Ctrl-c)
ファイルを保存していない場合は保存するかどうか聞かれます。

6

検索 (Ctrl-s または Ctrl-r)
Ctrl-s と打つと⼀番下のラインに I-search: と出ますので検索する⽂字列を⼊⼒してください。
⾃動的に現在のカーソルの位置から最も近い検索候補に移動します。次の検索候補に移動するには Ctrl-s を続けて打つと移動できます。Enter キーや⽮印キーなどを打ったり Ctrl-g と終了します。
Ctrl-r と打つと I-search backward:と出ます。現在のカーソル位置から逆向きに検索が実⾏されます。使い⽅は Ctrl-s と同様です。
コマンド中断Ctrl-gでコマンド⼊⼒を中断します。操作中コマンドに処理が移動してなんだかよくわからなくなったら Ctrl-g でファイル編集操作に戻ってください。
⼀⾏消去
Ctrl-k ⾏の中でカーソルよりも右側を消去します。消去された⽂字列はキルリング(クリップボードのようなもの)に保存されます。
元に戻す
Ctrl-x u

最後に⾏った動作をやめます。

貼り付け
Ctrl-y キルリングにあるデータを貼り付けます。
置換 (Esc を押して%を押す)
Query Replace︓と聞かれるので置換したい⽂字列を⼊⼒します。
With: に置換する⽂字列を⼊⼒します。
現在のカーソルの位置から検索を開始し、⼀つずつ置換するかどうか聞かれるので y/n で処理をすすめます。
ウインドウ分割を解除
Ctrl-x 1 emacs を起動するとウィンドウが分割されていて下半分にメッセージが表⽰されて7

いますが、ウィンドウ分割を解除して全ウィンドウを編集部分に使うことができます。
○コンパイル
さて、プログラムが出来上がったら次はコンパイルを⾏います。プログラムにエラーがあるとコンパイルで失敗しますのでその場合は再びプログラムファイルを編集する必要があります。emacs は終了せずに端末に戻りコンパイルを⾏ってみましょう。
作成したプログラム(ソースプログラム)をコンピュータが実⾏できる形式に変換する作業をコンパイルといいます。さらに、コンパイルによって⽣成された機械語のプログラムを実⾏ファイルと呼びます。コンパイルは保存されたファイルに対して⾏うため、コンパイルしようとするソースプログラムを必ずコンパイルに前に保存しておく必要があります。
プログラムのコンパイルと実⾏は端末で⾏います。まずは作成したプログラムがあるディレク
トリに移動します。
$ cd compphys2
続いて ls でプログラムがディレクトリにあることを確認しましょう。
$ lsexample.f90
Fortran90 プログラムのコンパイルは gfortran というコマンドで実⾏します。
$ gfortran プログラム名 -o 実行ファイル名を⼊⼒して下さい。例えば、プログラムを example.f90 という名前で作成した場合$ gfortran example.f90 -o example.exeとなります。すぐにコンパイル結果が表⽰されます。 コンパイルが成功すれば通常はメッセージが表⽰されずにコマンドプロンプトがもう⼀⾏表⽰されますが(ls で実⾏ファイルができていることを確認してください)、プログラムに誤りがある場合にはエラーメッセージが表⽰されます。エラーがある場合はプログラムの実⾏ができませんので、プログラムを修正し、保存して再度コンパイルする必要があります。
C ⾔語の場合は gcc というコンパイラを⽤いてコンパイルします。
$ gcc example.c -o example.exe○コンパイル結果について
ファイル名:先頭からの⾏数:8エラーが発⽣した⾏が表⽰され、原因と思われる箇所の下に 「^」の⽂字または数字があります。その下にエラーの説明があります。このような場合は、プログラムに⽂法上の誤りがあり、コンパイルが正常に終了していません。プログラムを⾒直して、保存し、再度コンパイルして下さい。(あるいはプログラム修正後、保存を忘れていませんか︖) エラーの表⽰された⾏(もしくはその１つ前の⽂)を確認して修正して下さい。(１つの誤りで多くのエラーが表⽰されることがあるので、先頭のエラーから１つずつ修正して、保存、コンパイルを繰り返してみて下さい)
例︓
example.f90:6:2
b = 2.0s01
Error: Unclassifiable statement at (1)
ここでは b に 2 を代⼊するところで b= 2.0d0 とすべきところをタイプミスしているためエラーが出ています。

○実⾏
正常にコンパイルが終了したら、そのプログラムを実⾏させます。ターミナルの画⾯で、$ ./実行ファイル名と⼊⼒して下さい。先ほどの例では$ ./example.exeとなります。
実際にプログラムを組んでみるとコンパイルには成功したのに実⾏結果が思い通りに得られないことがあります。その場合には、プログラムに何らかの問題（計算式の書き間違い、変数名の誤りやプログラムの構造上の問題）がありますので、プログラムを⾒直して修正し、再コンパイルしてください。プログラムはまめに保存してください。
実⾏させたプログラムが何らかの原因で終了しない場合は Ctrl-C で強制終了させることができます。

9Fortranのサンプルプログラム (example.f90)!よりも右側はコメント⽂です。プログラムソースコードに⼊⼒する必要はありません。また、以下では⽇本語のコメントを書いていますが、⾃分でコメント⽂を作成する際には英語で⼊⼒することをおすすめします。(⽇本語の全⾓スペースなどがコメント⽂ではない部分に紛れ込むとコンパイルが通らなくなります)

PROGRAM EXAMPLEIMPLICIT NONEREAL*8 :: a, b! プログラム名の指定。
! 暗黙型宣言を無効にします(毎回書いてください)! aとbを倍精度実数型変数として定義

a=1.0d0
b=2.0d0
WRITE(*,*) "sum of a and b =", a+bWRITE(*,*) "difference of a and b =", a-bWRITE(*,*) "product of a and b =", a*bWRITE(*,*) "quotient of a and b=", a/b
END PROGRAM EXAMPLE! aに1.0を代入! bに2.0を代入! aとbの和を標準出力に表示! aとbの差を標準出力に表示! aとbの積を標準出力に表示! aとbの商を標準出力に表示

C⾔語のサンプルプログラム (example.c)#include<stdio.h>
int main(){double a, b;
a = 1.0;b = 2.0;
printf("sum of a and b = %lf\n", a+b);
printf("difference of a and b = %lf\n", a-b);
printf("product of a and b = %lf\n", a*b);
printf("quotient of a and b = %lf\n", a/b);
return 0;}

10

○リモートアクセス
筑波⼤学の全学計算機システムにはサテライト室以外からでも、学内ネットワークに接続した他のコンピュータから、あるいは学外からアクセスすることもできます。⾃分のコンピュータを持っている⼈はぜひ設定してみてください。Linuxシステムについては
https://www.u.tsukuba.ac.jp/remote/のLinuxデスクトップに接続する・UNIXシェルを利⽤する、を参照してください。

○まとめと演習
・Linuxを起動し、計算機システムにログインする。
・端末の使い⽅、emacsの使い⽅、コンパイルの⽅法、プログラムの実⾏の⽅法
・計算物理学2⽤のディレクトリを作成、その中にFortranあるいはCのサンプルプログラムをemacsで作成し、コンパイル、実⾏する。
・全学計算機システムへのリモートアクセスの⽅法を試みる。

11