Linux (など、Unix系のOS) をつかう


Linux という OS

OS (Operating System, オペレーティングシステム) は、計算機の動作の基盤となっているソフトウェアである。 計算機上ではOSが動き、その上でユーザーのプログラムが動く。

MS Windows や MacOS などの OS は、 画面に出たメニューを選択する Graphical User Interface が発達しており、 パソコンを対話型でつかうのにむいている。 他方、時間のかかる計算をさせたり、 同じプログラムをデータをとりかえて多数回実行したりするには、 command-line interface で計算機にコマンドをあたえて、 人がついていないあいだに実行させるようなつかいかた (下の [プログラムをバックグラウンドで実行する] 参照)をしたいことがある。 それには、Unix系のOSがむいている。

Unix は Bell研究所の人たちが開発した OS であり、1971年に version 1 ができた。 その後、Unix は 有料となった。 そこで、Unix と同じようにつかうことができ、 free (「無料」でもあるがそれだけの意味ではない) のものをつくろうという (複数の) 活動がおこった。 Linux はそのひとつであり、 Linus Torvalds (当時 フィンランドの学生) がつくりはじめ、 1991 年の version 0.01 からはじまった。 Linux は Unix のプログラムをひきついでいないが、 Unix のつかいがってをひきついでいるので、 わたしは「Unix系 OS」というとき、Liunx をふくめている。


ディレクトリ (directory)、その 木 (tree) 構造

Unix系OSの「ディレクトリ」と MS Windows の「フォルダ」(folder) は、 日常への比喩としてはちがっているが、同じ機能である。

ひとつの計算機がもつファイル群は、 「根」(root) から枝分かれする木 (tree) のような構造になる。 (図示するときは、根を下ではなく左上に書くことが多い。)

それぞれのファイルは「根」をあらわす「/」(スラッシュ) からはじまる full path (「絶対パス」ともいう) であらわすことができる。 たとえば「 /home/masuda/work20220426/file1.txt 」のような形になる。 【「/」ではじめないと、 現在の作業中のディレクトリ (つぎに説明する) からの「相対パス」を 指定することになる。】

「作業中のディレクトリ」 (current directory または working directory)

Unix系OSのユーザーは、各時点で、どこかのディレクトリに注目している状態にある。 そのディレクトリにあるファイルを、path指定なしでファイル名だけであつかうことができる。 他のファイルも、作業中のディレクトリからの相対パスであらわすことができる。

「作業中のディレクトリ」を知るためのコマンドが「pwd」である。

「作業中のディレクトリ」を変更するコマンドが 「cd」である。 「ディレクトリを移動する」ともいうが、 このばあい、ディレクトリツリー上に存在するディレクトリを移動させるのではなく、 作業者が注目している位置が変わるのである。

【ディレクトリツリー上でディレクトリの位置を移動させる (ディレクトリツリーを改変することになる) には「mv」コマンドをつかう。】

ホームディレクトリ (home directory)

各ユーザーは「ホームディレクトリ」をもっている。 ログインしたとき、ホームディレクトリが作業中のディレクトリになる。

ちかごろの Linux の標準的なディレクトリ構成では、 各ユーザーのホームディレクトリ名は「/home/ユーザー名」の形である。 各ユーザーは、ホームディレクトリの下 (フォルダのたちばでいえば「...の中」) に ファイルやディレクトリをつくることができる。


標準入力と標準出力

Unix系OSでうごくプログラムの多くは、標準入力からデータを読み、標準出力に書くようにつくってある。

とくに指定しなければ、標準入力はキーボード、標準出力は端末画面である。

(プログラムをかきかえず、実行時に) 標準入力、標準出力を、それぞれファイルにつけかえることができる。 「リダイレクション (redirection)」という。 標準入力には「< ファイル名」、標準出力には「> ファイル名」で指定する。

ひとつのプログラムの標準出力をつぎのプログラムの標準入力とする「パイプライン処理」ができる。 「|」 (縦棒) で指定する。


エディタ

テキストファイルの内容を書きかえるのに、エディタ (editor) という種類のプログラムをつかう。

1次元の行単位で編集する「ラインエディタ」と、複数の行を2次元に表示して編集する「スクリーンエディタ」がある。

Unix では、まず ed というラインエディタ、ついで vi というスクリーンエディタがつくられた。

【Unix系OSのシステム管理者は vi をつかえるようにしておくべきだといわれるが、 増田は ed はつかえるのだが vi の操作を身につけていない。】

emacs はスクリーンエディタで、Unix本来のものではないが、 GNUというプロジェクトでつくられた emacs がひろく普及している。

ここでは emacs をつかうものとして指導する。 ただし、オプションなしで起動すると X Window の機能が必要で動作が重くなるので、 「-nw」(no window) オプションで起動することをすすめる。


[emacs をつかう]


そのほかの、ファイルやディレクトリを操作するコマンド


Python (version 3) の起動

(luce および hamana の設定では、つぎのような形で、Python のプログラム hello.py を実行することができる。)


[シェルについての補足]


[プログラムをバックグラウンドで実行する]


参考になる本


余談


2024-03-27
増田 耕一 (MASUDA Kooiti)
増田の個人サイトでの [計算機をつかった気象分野の教材] [セミナー B, F, G 合同] [セミナーF] [教材目録ページ] [日本語入り口ページ] [ホームページ]