UBUNTU は Linux Distribution のうち最もユーザー数の多いものである。Linux は unix 系の OS (Operating System) である。 unix は以前は、いわゆるワークステーションで用いられるのが普通であったが、 通常の PC でも動くように設計開発されたものが Linux である。Linux には Debian, Ubuntu など、 多くの distribution があり、その多くは無料で利用できる。 Linux などの unix 系の OS で動くソフトウェアの多くは GNU Public License に基づいており、やはり無料で利用できる。 このような理由や、その使いやすさから、数学などの多くのソフトウェアが Linux 用に開発され無料で公開されている。
ログインして基本的なアプリケーションを利用してみよう。MS Windows などを使って普段行なっていることの多くは MathLibre 上でも問題なくできるであろう。
Web ブラウザ
Firefox が利用できる。特に困ることはないだろうが、普段 google chrome を使っているならば、それをインストールして使うこともできる。
オフィスソフト
(追加でインストールすれば) Microsoft Office とほぼ同等の機能を持ったオフィスソフト LibreOffice が利用できる。 Word に相当する Writer、 Excel に相当する Calc、 PowerPoint に相当する Impress などがある。MS Office で作成したファイルを読み込んだり、MS Office の形式でファイルを保存したりすることもできる。 ただし MS Office で開くときとはレイアウトがずれたりするので注意が必要である。
エディタ
プログラムなどのテキストファイルを作成するアプリケーションである。 MS Windows ではメモ帳に相当するが、様々な機能拡張がなされている。 ここでは基本的な「テキストエディター」を用いるものとする。 計算機をある程度使うようになると、最も利用するアプリケーションとなるであろう。
演習 : エディタを使って、何かテキストファイルを作成し、適当な名前で保存しなさい。 一度エディタを終了したあと、もう一度そのファイルをエディタで開きなさい。
ファイルマネージャ
ファイルの操作はメニューから「アクセサリ」->「ファイルマネージャ」を起動して、感覚的に行うことができる。
演習 : ファイルマネージャを使って、先ほど作成したファイルの名前を変更しなさい。 また適当な名前のフォルダを作成し、そのファイルをそこに移動しなさい。
ターミナル (端末)
これまで試したものは GUI (Graphical User Interface) をもち、MS Windows などに慣れていれば、 それほど戸惑うこともないであろう。 しかし、Linux を使いこなすにはコマンドをキーボードから直接入力して操作することのほうが重要である。 このようなインターフェイスを CUI (Character User Interface) という。 コマンドを入力する画面をターミナルという。 メニューから「その他」->「Gnome Terminal」を開く。 ここにコマンドを入力するのであるが、コマンドを知らなければ何もできない。 とりあえず「exit」と入力してターミナルを閉じよう。 今後「コマンドラインから〜を実行する」などと言えば、ターミナルからコマンドを実行することを意味する。 簡単なコマンドをあとで説明する。
ここではターミナルを使っての操作を簡単に説明する。実際にターミナルを開いてコマンドを試しながら読んでほしい。 まずはディレクトリ (フォルダ) について説明する。 unix では、すべてのものが / (ルート) から始まるディレクトリの木構造で扱われる。 まずは、今自分がいる場所を確認しよう。
name@machine:~$ pwd
/home/name
pwd (Positioning Working Directory, Print Working Directory) と入力して表示されたところが、 現在いる場所 (Current Directory) である。/ の下に home というディレクトリがあり、その下に name があり、 というようになっている。システム上のすべてのファイルやディレクトリにはこのように一意的に名前が与えられている。 これを絶対パスという。 ファイル名を指定するときに絶対パスを用いれば混乱の恐れはないが、いちいち / からすべてを書いていたのでは面倒である。 そこで、現在の位置から見たファイル名を相対パスという。 現在の位置にあるファイルは、そのファイル名だけで参照できる。 また現在の位置にあるディレクトリ test の下にあるファイル test01 は test/test01 のように参照できる。 / から始まらないファイル名は相対パスであるとみなされる。 ディレクトリの移動は cd (Change Directory) で行う。 cd のあとに移動したいディレクトリ名を絶対パス、または相対パスで指定する。 単に cd とすればホームディレクトリに移動する。 ホームディレクトリとはそのユーザに与えられたディレクトリであり、普通のユーザーはホームディレクトリ以下にしか自分のファイルを作成できない。 先ほど pwd を実行して表示されたところがホームディレクトリである。 ディレクトリ名の指定には特別なものがあり、カレントディレクトリを . (ドット一つ)、親ディレクトリ (カレントディレクトリの一つ上のディレクトリ) を .. (ドット二つ) で表す。
name@machine:~$ cd /usr
name@machine:/usr$ pwd
/usr
name@machine:/usr$ cd
name@machine:~$ pwd
/home/name
name@machine:~$ cd ..
name@machine:~$ pwd
/home/name
ファイル操作に関するいくつかの簡単なコマンドを表にまとめておこう。
cp file01 file02 ---- file01 を file02 にコピーする
mv file01 file02 ---- file01 のファイル名を 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 にはリダイレクトとパイプという便利な機能があるので、それを説明する。 そのために、まず標準入出力について説明する。 プログラムを実行すると、何らかの入力を受け付ける状態になるものがある。例えば
name@machine:~$ cat
hello
hello
のようなものである。 (ここで、1 つ目の "hello" は実行時に入力したもの、2 つ目の "hello" は出力されたものである。 プログラムを終了させるには Ctrl+D を入力する。) このように実行時にキーボードから入力するものを標準入力といい、 実行結果など、ターミナルに表示されるものを標準出力という。 例えば 100 個の数値を入力として与えたいとき、それをキーボードから誤りなく入力することは大変である。 そこで、標準入力から与えるデータをあらかじめファイルに記述しておき、それを標準入力として与えることができる。 このためには、例えば date_file という名前のファイルに hello と書き込んでおき
name@machine:~$ 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) には単一の機能を持った小さなプログラムがたくさん存在する。 リダイレクトやパイプなどを使ってそれらの組み合わせから複雑な処理が可能になる。 色々と調べて試してみるといいだろう。