群論と対称性 (1) MathLibre を使う


MathLibre を用いて簡単な計算機実習を行う。 MathLibre は Linux distribution の一つであり数学の研究、教育に特化したものになっている。 Linux は unix 系の OS (Operating System) である。 unix は以前は、いわゆるワークステーションで用いられるのが普通であったが、 通常の PC でも動くように設計開発されたものが Linux である。 Linux には Debian, Ubuntu など、 多くの distribution があり、その多くは無料で利用できる。 Linux などの unix 系の OS で動くソフトウェアの多くは GNU Public License に基づいており、やはり無料で利用できる。 このような理由や、その使いやすさから、数学などの多くのソフトウェアが Linux 用に開発され無料で公開されている。 Linux の基本的なシステムに、そのような数学用ソフトウェアを多く取り入れたものが MathLibre である。

信州大学理学部数学科の計算機室 (A棟5F) の PC では MathLibre が利用できるので、実習ではこれを利用する。 PC の利用にはユーザー名とパスワードが必要である。 分からない人は管理者に聞いて確認しておくこと。 聞かれても講義担当者(花木)には分からない。 端末はたくさんあるが作成したデータ等はどの端末からでも同じように操作することができる。 また MathLibre は無料で利用できるので、自分の PC や研究室の PC でも利用は可能である。 ただし、その際はデータを何らかの方法でやり取りしなければならない。 これについては後で説明する。

なお、計算機室は飲食厳禁である。 誤ってジュースをこぼすなどするとシステムが破壊されることがあるからである。 このような場合には研究や教育に支障が出る場合もあるので、決してしてはいけない。 ルールを破ってシステムに被害が出た場合には修復費用を個人に負担してもらうこともある。


実習予定


起動と終了

端末の電源が入っていなければ電源を入れる。 するとログイン画面が表示される。 電源が入っていればログイン画面が表示されていると思うが、それ以外の画面だった場合は他の人が使っていると思われるので、 別の端末を利用する。 ログイン画面にユーザー名とパスワードを入力すればログインできる。 メニューは画面左下にある。MS Windows などを使ったことがあれば特に迷うことはないだろう。

利用終了時にはメニューから「ログアウト」を選び、更に「シャットダウン」とすると自動的に電源が切れる。 別の人が続けて使う場合には「ログアウト」する。

演習 : ログインしてログアウト (シャットダウン) しなさい。


使ってみる

再度ログインして基本的なアプリケーションを利用してみよう。MS Windows などを使って普段行なっていることの多くは MathLibre 上でも問題なくできるであろう。

ここで一つ、数学用のソフトウェアを試してみよう。メニューから「Math」->「Fraqtive」を開いてみよう。 マンデルブロー集合が表示され、画像の上でマウスを動かすと右下にその点に対応するジュリア集合が表示される。 他のソフトウェアもたくさんあるので試してみるといいだろう。


Linux の基本 - ターミナルを使う

ここではターミナルを使っての操作を簡単に説明する。実際にターミナルを開いてコマンドを試しながら読んでほしい。 まずはディレクトリ (フォルダ) について説明する。 unix では、すべてのものが / (ルート) から始まるディレクトリの木構造で扱われる。 まずは、今自分がいる場所を確認しよう。


mathsci[10]$ pwd
/home/14sm/14sm100x
pwd (Positioning Working Directory, Print Working Directory) と入力して表示されたところが、 現在いる場所 (Current Directory) である。/ の下に home というディレクトリがあり、その下に 14sm があり、 というようになっている。システム上のすべてのファイルやディレクトリにはこのように一意的に名前が与えられている。 これを絶対パスという。 ファイル名を指定するときに絶対パスを用いれば混乱の恐れはないが、いちいち / からすべてを書いていたのでは面倒である。 そこで、現在の位置から見たファイル名を相対パスという。 現在の位置にあるファイルは、そのファイル名だけで参照できる。 また現在の位置にあるディレクトリ test の下にあるファイル test01 は test/test01 のように参照できる。 / から始まらないファイル名は相対パスであるとみなされる。 ディレクトリの移動は cd (Change Directory) で行う。 cd のあとに移動したいディレクトリ名を絶対パス、または相対パスで指定する。 単に cd とすればホームディレクトリに移動する。 ホームディレクトリとはそのユーザに与えられたディレクトリであり、普通のユーザーはホームディレクトリ以下にしか自分のファイルを作成できない。 先ほど pwd を実行して表示されたところがホームディレクトリである。 ディレクトリ名の指定には特別なものがあり、カレントディレクトリを . (ドット一つ)、親ディレクトリ (カレントディレクトリの一つ上のディレクトリ) を .. (ドット二つ) で表す。

mathsci[11]$ cd /usr
mathsci[12]$ pwd
/usr
mathsci[13]$ cd
mathsci[14]$ pwd
/home/14sm/14sm100x
mathsci[15]$ cd ..
mathsci[16]$ pwd
/home/14sm
ファイル操作に関するいくつかの簡単なコマンドを表にまとめておこう。
ファイル ファイル
cp file01 file02file01file02 にコピーする
mv file01 file02file01 のファイル名を file02 に変える
rm fileファイル file を削除する
mkdir dirディレクトリ dir を作る
rmdir dirディレクトリ dir を削除する (ディレクトリ内にファイルがあってはいけない)
cat fileファイル file の内容を表示する (本当はファイルを連結するためのコマンドである)
less fileファイル file の内容を表示する (長いテキストの場合はページ送りができる)
ls dirディレクトリ dir にあるファイルのリストを表示する (dir を省略するとカレントディレクトリを指定したことになる)
コマンドの使い方は「mkdir --help」のようにして確認することができる。 より詳細な情報が見たければ「man mkdir」としてマニュアルページを見ることもできる。

演習 : work01 という名前のディレクトリを作成しなさい。 また、そのディレクトリ内にエディタを用いて 2, 3 行の適当な内容で file01, file02 という名前のファイルを作成しなさい。

unix にはリダイレクトパイプという便利な機能があるので、それを説明する。 そのために、まず標準入出力について説明する。 プログラムを実行すると、何らかの入力を受け付ける状態になるものがある。例えば


mathsci[17]$ cat
hello
hello
のようなものである。 (ここで、1 つ目の "hello" は実行時に入力したもの、2 つ目の "hello" は出力されたものである。 プログラムを終了させるには Ctrl+D を入力する。) このように実行時にキーボードから入力するものを標準入力といい、 実行結果など、ターミナルに表示されるものを標準出力という。 例えば 100 個の数値を入力として与えたいとき、それをキーボードから誤りなく入力することは大変である。 そこで、標準入力から与えるデータをあらかじめファイルに記述しておき、それを標準入力として与えることができる。 このためには、例えば date_file という名前のファイルに hello と書き込んでおき

mathsci[17]$ cat < data_file
hello
のように実行する。 また出力をファイルに保存したい時は「command > output」のようにすれば output という名前のファイルに出力が保存される。 これらの標準入出力をキーボードや画面から変更する機能をリダイレクトという。 (このとき、ファイル output がもともと存在するときには、それは上書きされる。 追記したいときには「>」ではなく「>>」を利用する。)

演習 : 前に作成したファイル file01 と file02 を用いる。 まず「cat file01」として、file01 の内容が表示されることを確認せよ。 次に「cat file01 file02」として、file01 とfile02 の内容が続けて表示されることを確認せよ。 リダイレクトを用いて file01 と file02 の内容を連結したファイル file03 を作成せよ。 (cat は catenate (連結する) から付けられたコマンド名である。)

次にコマンドの出力を別のコマンドの入力に用いることを考える。 例えば「sort」というコマンドはファイルの行をソートするコマンドである。 通常は「sort filename」のように用いるが、ファイルを指定しないと標準入力を入力として機能する。 そこで、例えば cat と組み合わせて、その出力に対してソートを行うことができる。 これを行うには「cat file01 file02 | sort」のようにすればよい。 「|」は左側のコマンドの出力を右側のコマンドの標準入力として与える。これをパイプという。 例えば、何らかのプログラムの出力が長く、画面に収まらないとき「command | less」などとすれば出力をページ送りしながら見ることができる。

演習 : リダイレクトとパイプを用いて file01 と file02 の内容を連結し、更にソートしたファイル file04 を作成せよ。

unix (Linux) には単一の機能を持った小さなプログラムがたくさん存在する。 リダイレクトやパイプなどを使ってそれらの組み合わせから複雑な処理が可能になる。 色々と調べて試してみるといいだろう。


他の PC で MathLibre を使う

自分の PC など他の PC で MthLibre を利用するには、大きく分けて3つの方法がある。 なお、この説明で用いている MthLibre のヴァージョンは 2016.02.28 である。

なお、ここで説明した DVD ブート、USB ブートで計算機室の PC を利用することは禁止する。 誤った利用をするとシステムを破壊する可能性があるからである。 また、PC の内蔵 HDD にインストールすることもできるが、既存の環境を壊す恐れがあるので、 ここでは推奨しない。

オンラインストレージについて、少しだけ説明しておこう。 Google, Yahoo, MSN などある程度の容量までは無料で利用できるものが多くあり、 インターネットに接続できてブラウザが使えれば利用できるものが多い。 DropBox は専用のフォルダが常に同期され、 MathLibre にも標準でインストールされているので利用しやすい。


戻る
Akihide Hanaki (hanaki@shinshu-u.ac.jp)