MS-DOS ユーザのための Linux の基礎知識 いちに 1994/08/27 本稿では、MS-DOS と、Linux という UNIX との違いに着目し、必須と思われる 知識について解説しています。 Note: この文書はかなり以前に書かれたものなので、いまどきの Linux 環 境にはあてはまらない箇所があります。 (JF Project) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Table of Contents 1. はじめに 2. インストールする前に 2.1. インストールする前に 2.2. 壊してしまう前に 2.3. 文句を言う前に 2.4. 質問をする前に 3. 基本用語 3.1. バックスラッシュとスラッシュ 3.2. COMMAND.COM とシェル 3.3. バッチとシェルスクリプト 3.4. AUTOEXEC.BAT と/etc/rc 3.5. CONFIG.SYS とカーネル再構築 4. 仕様の差異 4.1. ドライブ名とパス名 4.2. 基本コマンド 4.3. ファイル名 4.4. ワイルドカード 5. 特有の用語 5.1. ログインとログアウト 5.2. ユーザレベル 5.3. スーパーユーザ 5.4. ホーム 5.5. シンボリック・リンク 5.6. パーミッション 5.7. プロセスとジョブ 5.8. ファイルシステム 5.9. 特殊ファイル 5.10. マウント 5.11. 共有ライブラリ 6. 運用上のノウハウ 6.1. あるはずのファイルがない時 6.2. 突然すべて動かなくなった時 6.3. もらったバイナリが動かない時 6.4. 万が一、落ちた時 6.5. 圧縮ファイルの種別がわからない時 6.6. テキストが正しく表示されない時 6.7. ログインできなくなった時 7. Linux で何をするのか 7.1. UNIX の勉強をしたい 7.2. 文章を書きたい 7.3. プログラムを書いてみたい 7.4. ゲームをしたい 7.5. 仕事に使いたい 8. おわりに 9. 参考文献 10. appendix 10.1. この文章の目的 10.2. 対象になる人 10.3. この文章の扱い 10.4. 章立て 1. はじめに Linux は、UNIX クローンの OS です。Linux は、パーソナル・コンピュータを 対象とした OS であり、まず IBM-PC 上に実装され、後に FM-TOWNS へも移植 されました。おそらく、これらのマシンを所有するユーザは、MS-DOS を主力と して使い、その機能について習熟していることと思います。 Linux は、完全なマルチタスク、強力なセキュリティ機能など、MS-DOS では提 供できない、数々の優れた機能を持っています。ユーザは、これらの機能を使 いこなすため、 Linux 特有の知識について学習する必要があります。しかし、 心配はいりません。MS-DOS は、階層ディレクトリやパイプなど、一部 UNIX の 機能を取り込んできた経緯があります。従って、MS-DOS を十分に理解している 人にとって、Linux はさほど難しいものではないでしょう。 本稿では、MS-DOS と、Linux という UNIX との違いに着目し、必須と思われる 知識について解説しています。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2. インストールする前に まず始めに、Linux を実際にインストールする前に知っておくべき知識につい て説明します。現在、Linux のインストールは、より手軽な方向へ進んでいま す。SLS Slackware 等の優秀なパッケージの出現や、雑誌記事の充実、国内外 の貢献者の努力によって、初心者を取り巻く環境は、随分と良くなったと思い ます。しかし、依然として、初心者が陥り易い間違いというものは存在します 。これらは技術的な問題というよりむしろ、心構えや姿勢の問題であることが 多いのです。ここでは、公衆の面前で恥をかかないために、最低限必要な知識 について触れます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1. インストールする前に インストーラが親切になっても、やはり注意力は必要です。判断を間違えれば 、最悪の場合、MS-DOS がインストールされている区画 [1] を消滅させる危険 性もあります。念のため、インストール前に MS-DOS の区画のバックアップを とっておくことをお勧めします。また、区画の対応をしっかり把握しておきま しょう。 MS-DOS 上で、区画を作成するには、fdisk [2] というコマンドを用います。 Linux でも、同名の fdisk というコマンドが用意されています。これは MS-DOS の物よりシンプルです。しかし、Linux の fdisk は区画を作成したり 消したりしても、'w' さえ押さなければ区画情報は書き込まれませんから、さ ほど恐れる必要はありません。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2. 壊してしまう前に Linux のシステムが起動しなくなった場合、ハードウェアの故障にせよ、おか しな操作をしたにせよ、必ず原因があるはずです。その原因を調べ、修復する ため、緊急用の起動フロッピー [3] を作成しておくことをお勧めします。具体 的にはインストール時に用いた起動フロッピーを保管しておくだけで良いので す。なにかあった時は、これを起動して原因を究明しましょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3. 文句を言う前に もし、MS-DOS に不備があるのなら、それを OEM 販売しているメーカー、もし くはMSKK [4] の責任でしょう。また、メーカーは、ユーザサポートをする義務 があるでしょう。しかし、Linux は売り物ではありません。店頭で売られてい るパッケージの値段は、Linux 自体の値段ではないのです。そこには、サポー ト料金などは含まれていません。また、ネットワークなどでサポートしている ように見える人達も、Linux 上に数々のソフトウェアを移植/制作している人達 も、ほとんどすべてがボランティアなのです。この点こそが、Linux と MS-DOS との、本質的な違いでしょう。従って、不備な点を見つけても文句を言うので はなく、「ここをこうしたら良くなるよ」「おかしいので直してみました」と いうように、自分の作業の成果を、全体にフィードバックすることを考えてく ださい。正に Linux はこうして発展してきたのですから。 この協調の理念が理解できないという人は、Linux を使用するべきではありま せん。この理念は、GNU と呼ばれるプロジェクトにも通じます。もし、これか らも、売り物ではないけれど非常に優れた〜例えば Linux のような〜ソフトウ ェアを使い続けたいならば、GNU の理念 [参考文献 1 ] を、正しく理解する必 要があります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4. 質問をする前に Linux では、サポートしている人達はボランティアです。質問をするにしても その前にソフトウェアに付属の説明書を読んだり、下調べをすることは、最低 限必要な態度でしょう。実際、BBS 上の電子掲示版などにかかれている質問で 、よく見られるのですが、「私は英語が苦手で」「初心者なもので」「時間が ないもので」という言葉を、あたかも免罪符のように扱う人が多いのです。だ から他人になんとかしてもらおう、というのならば、どんなハードを使い、ど んなソフトをインストールして、どういった試行錯誤を行ったか、書く事はマ ナーです。ボランティア精神も有限であることを、忘れてはいけません。 Linux は、UNIX に限りなく近いシステム [5] であるため、Linux を勉強する ためには、一般に発行されている、UNIX 関連の文献 [参考文献 2, 3, 4] を用 いることができるでしょう。また、貢献者の手により、Linux 関係の FAQ [6] なども日本語化されています。 ネットワークに参加できる人は、過去に同じような質疑応答がないか、チェッ クすることによって、有用な情報を得ることができるでしょうそうした試行錯 誤の後、問題が解決したならば、その情報を、ネットワークに還元してくださ い。こうすることによって、ひとりの苦労は、全体の共有財産となります。き っと、それを読んで助かる人もいることでしょうから。善意にすがった人が、 次の担い手にならなければ、善意も枯渇する [7] のです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3. 基本用語 ここでは、MS-DOS からスムーズに Linux へ入っていく上で、まず知っておか なくてはならない用語や動作の違いを、両者を対比させながら、説明します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1. バックスラッシュとスラッシュ MS-DOS のパスの区切りは、通常バックスラッシュです。日本語 MS-DOS 上では 、フォントの関係上、円マークであることもあります。しかし、Linux ではス ラッシュです。例えば MS-DOS で言うところの、\usr\bin\gcc は、 /usr/bin/ gcc となります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2. COMMAND.COM とシェル シェルとは、MS-DOS では COMMAND.COM と呼ばれるものに相当します。これは 、起動時に読み込まれて、システムに常駐し、ユーザに対して、コマンドライ ンを提供したり、バッチなどの解釈/実行してくれるものです。MS-DOS でお馴 染みの dir, cd, mkdir, type などのコマンドは、COMMAND.COM 自身が持って いる機能の一部で、内部コマンドと呼ばれます。 Linux では、機能に応じて、複数のシェルを選ぶことができます。シェルは、 起動時に読み込む、独自の設定ファイルを持っています。このファイルで、環 境変数の設定や、エイリアス [8] などの設定を行います。 シェルは、MS-DOS と同様に内部コマンドを持ちますが、含まれている機能は異 なります。例えば、dir コマンドとほぼ同等の役割を持つ ls コマンドは、シ ェルには含まれず、外部コマンドとなっています。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3. バッチとシェルスクリプト MS-DOS でいうバッチは、大変便利なものです。Linux では、一般にこういった 動作手順を記述するためのテキストファイルのことを、シェルスクリプトと言 います。その制御構造は、バッチよりも遥かに高機能で、ひとつの言語とも呼 べるものです。UNIX 用として発表されているツールには、インストーラとして 、シェルスクリプトが付いてくることもあります。 スクリプトの書式などは、シェルの種類によって違います。しかし最近のパッ ケージでは、始めから複数種のシェルを含んでいるので、大した問題にはなら ないでしょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4. AUTOEXEC.BAT と/etc/rc MS-DOS の AUTOEXEC.BAT は、PATH などの環境変数の設定や、プログラムの自 動実行などをするバッチです。これは Linux では、/etc の下にある rc ファ イルに相当します。 rc ファイルは、ハードディスクなどの各種装置を使える ようにしたり [9]、プログラムの自動実行などを行ないます。 パッケージによっては、ディスク管理用、ネットワーク用など、rc ファイルを 用途別に分けて、/etc/rc.d 下に置いてあるものもあります [10] 。最近のパ ッケージには専用のシェルスクリプトが存在し、ネットワーク関係の設定など は、ユーザが大幅に rc ファイルを書き換えなくても良いように工夫されてい ます。ユーザは、大抵の場合、日本語環境などのカスタマイズで、rc.local フ ァイルを書き換える程度です。 その他/etc 下には、いろいろな設定ファイルがあるので、UNIX 関連の文献 [参考文献 5 ] で調べることをお勧めします。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5. CONFIG.SYS とカーネル再構築 MS-DOS では、CONFIG.SYS と呼ばれるテキストファイルに、デバイスドライバ 名を記述しておくだけで、手軽に MS-DOS を機能拡張することができます。し かし、 Linux においては、これに相当する機能はなく、 OS に新しいデバイス ドライバを追加したい場合は、カーネル [11] を再構築する必要があります。 一部のパッケージでは、動的にデバイスドライバを付けたり外したりできるよ う、工夫した物もあるのですが、あまり使われていないようです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4. 仕様の差異 ここでは、 MS-DOS と Linux において、盲点となるであろう仕様の差異につい て説明します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.1. ドライブ名とパス名 ドライブ名とは、"A:" といったものです。例えば、ハードディスクの A: ドラ イブのファイルを指定するには、 A:\usr\bin\gcc としました。ドライブ名を 省略すると \usr\bin\gcc\ といった操作は、カレントドライブに影響されます 。自分は、 A: ドライブの \usr\bin\gcc を実行したつもりでも、カレントド ライブが B: で、B: ドライブに、\usr\bin\gcc があれば、それが実行されて しまいます。また、 B: ドライブがカレントドライブの時に、"cd A:\usr\bin" を実行しても、 A: ドライブに移動することはありません。 つまり、ドライブごとに、複数のカレントディレクトリが存在したり、同名の パスが存在することがありえるのです。分かっている人にはなんでもないこと ですがずいぶん不便な仕様ではないでしょうか。 Linux では、すべてのファイルはルートディレクトリにつながっているため、 あるパス名は、システムにひとつしか存在しません。もちろん、Linux も MS-DOS と同じように複数の装置が扱えますが、ドライブ名やカレントドライブ という概念はありません。カレントディレクトリは常にひとつだけです。これ らを実現するための仕掛けは、マウントと呼ばれる操作にあります。これは、 後に詳しく説明します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2. 基本コマンド MS-DOS における主な内部コマンドと、Linux の基本コマンドとの対応関係は、 以下の通りです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Table 1. MS-DOS と Linux の基本コマンド対応 ┌─────┬─────┬─────────────────────┐ │ MS-DOS │ Linux  │ 役割  │ ├─────┼─────┼─────────────────────┤ │ dir  │ ls -l  │ ディレクトリの内容を詳細情報と共に標準出│ │ │ │力へ │ ├─────┼─────┼─────────────────────┤ │ dir /w │ ls  │ ディレクトリの内容を標準出力へ │ ├─────┼─────┼─────────────────────┤ │ type  │ cat  │ ファイルの内容を標準出力へ │ ├─────┼─────┼─────────────────────┤ │ cd  │ cd  │ 指定したパスへカレントディレクトリを移動│ │ │ │する │ ├─────┼─────┼─────────────────────┤ │ copy  │ cp  │ ファイルのコピーを行う │ ├─────┼─────┼─────────────────────┤ │ ren  │ mv  │ ファイル名を変更する │ ├─────┼─────┼─────────────────────┤ │ attrib │ chmod  │ ファイル属性を変更する │ ├─────┼─────┼─────────────────────┤ │ del  │ rm  │ ファイルの削除を行う │ ├─────┼─────┼─────────────────────┤ │ md  │ mkdir  │ ディレクトリを作成する │ ├─────┼─────┼─────────────────────┤ │ rd  │ rmdir  │ ディレクトリを削除する │ └─────┴─────┴─────────────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MS-DOS では、これらのサービスは COMMAND.COM が提供していますが、Linux では、cd コマンドを除き、/bin の下の独立したプログラムが担っています。 また、機能的には大幅に異なっています。例えば、ls コマンドはファイル属性 などの詳細情報も参照できますし、mv コマンドは単なるリネームではなく、フ ァイル/ディレクトリの移動も可能です。rm コマンドは、ファイルだけでなく 、ディレクトリの削除なども行なえます。 この中で、特に注意しなければならないのは、rm コマンドです。MS-DOS の del コマンドは、"DEL*.*" とやると、いったん確認を求めてきます。しかし、 大概において Linux の rm コマンドは確認を求めずに削除してしまいます。ま た、MS-DOS では、消したファイルでも、undelete コマンド [12] によって、 運が良ければ復活することができますが、Linux では絶望だと思ってください 。大抵、シェルにはエイリアスと呼ばれる機能があるので、これを用いて rm コマンドに確認を求めるオプションを付加したものを、コマンドとして登録し て、 rm コマンドを用いる際は、必ず確認させると言う自衛手段を取る必要が あります。具体的には、シェルの初期化ファイルに、 alias rm='rm -i' という記述を追加します。エイリアスとは、このようにコマンドラインに入力 された文字列を解釈し、指定した別の文字列に変換する機能です。上記のよう な指定をしておくと、例えば、"rm abc.txt" と入力しても、" rm -i abc.txt" が実行されていることになります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3. ファイル名 MS-DOS ではファイル名に大文字も小文字もありませんが、Linux ではこれらを きちんと区別します。例えば、"Makefile" と、" makefile" は別個のファイル 名として扱われます。また、日本語 MS-DOS では可能だった、漢字やかなを用 いたファイル名は、Linux では存在しません。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4. ワイルドカード MS-DOS の COMMAND.COM は、ワイルドカードと呼ばれる冗長性を持たせたファ イル名指定が可能でした。そのひとつである"*"は、"abc", " makefile" など にマッチングしても、"abc.txt" にはマッチングしません。しかし、Linux の ワイルドカード "*" は、ピリオドを含めたすべてのファイル名にマッチングし ます。 rm コマンドと組み合わせて使用する場合には、注意が必要です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5. 特有の用語 シングルユーザ・シングルタスクの OS である MS-DOS の概念では説明しきれ ない、Linux 特有の用語と概念 [13] について説明します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1. ログインとログアウト マルチユーザ OS である Linux では、ユーザの管理をしっかり行なう必要があ ります。まず、システムに入るためには、ログイン名とパスワードを入力しな くてはなりません。このログイン名とパスワードは、/etc/passwd ファイル内 に記述されているユーザ情報によって照会されます。この一連の操作をログイ ンと呼びます。ログイン名は、8 文字までの英小字を用いて設定します。また 、一旦ログインしてしまえば、パスワードは、 passwd コマンドで変更するこ とが可能です。パスワードは、英字や一部の記号を用います。パスワードは暗 号化されて、システムに記録されます。 ひと通り仕事を終えたら、exit コマンドでシステムから抜けます。このことを ログアウトと呼びます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2. ユーザレベル シングルユーザの OS である MS-DOS では、誰が触っても、マシンに対してあ らゆる操作が許されていました。しかしこれでは、誤って重要なファイルが消 されたり、巨大なファイルでディスクスペースが浪費されたとしても、誰の仕 業なのかわかりません。悪意がなくとも、不心得者が一人いるだけで、他全員 に、甚大な被害を及ぼすこともありえます。 Linux ではマルチユーザのシステムであり、ユーザを大きく 3 つの立場に分け て、ファイルに対するアクセスに制限をもうけることによって、安全性を高め ています。これらの情報は、ファイル属性として、ファイルひとつひとつに存 在します。 オーナー これは、ファイルを作成したユーザを指します。ファイルのオーナーが誰 であるかという情報は、ユーザ ID として、ファイル属性に自動的に記録 されます。つまり、属性を参照することによって、そのファイルの作成者 を知ることができます。また、オーナーが、chown コマンドをしようする ことで、ファイル属性に書き込まれたユーザ ID を別のユーザに権限を移 管することもできます。 グループ グループとは、ファイルアクセスの権限の集合のことです。これは /etc/ group ファイル内に記述されています。各グループは、それぞれ固有のグ ループ ID を与えられています。ファイルは、それぞれグループ ID を属 性として持ち、そのグループに属しているユーザがアクセスすることを許 します。また、オーナーが chgrp コマンドをしようすることで、ファイル 属性に書き込まれたグループ IDを変更して、別のグループに権限を移管す ることもできます。 他者 ファイル属性において、オーナーでもなく、グループにも属していない立 場の人達は、他者と呼ばれます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.3. スーパーユーザ Linux には、ユーザレベルという立場を越えた存在として、スーパーユーザ [14] と呼ばれる人が存在します。ユーザの登録/削除や、ログイン名やパスワ ードなどの重要な情報が記述されている /etc 下のファイルの参照/編集など、 本当に重要な部分については、この人しかできないようにしておきます。こう しておけばスーパーユーザ自身のパスワードが洩れない限り、システムの安全 性は保たれるわけです。 また、スーパーユーザが、ファイル属性をしっかり管理しておくことで、シス テムに重要なファイルを、勝手に消されてしまったりといった危険性を回避す ることができます。 スーパーユーザ以外のユーザを、一般ユーザ [15] と呼びます。パーソナルユ ースでも、スーパーユーザと一般ユーザを使い分けることには、メリットがあ ります。スーパーユーザは、あらゆるファイルやファイル属性を自由に変更可 能であるがゆえに、普段からスーパーユーザでログインしていると、操作ミス でシステムを破壊してしまうことも考えられます。そのため、普段は、一般ユ ーザとしてログインしておいて、本当に必要な場合のみ、 su コマンドでスー パーユーザに移行するという形態が一般的です。 ユーザの情報は /etc/passwd ファイルに記述されています。各ユーザが、どの ように管理されているかを説明するため、その書式に簡単に触れます。 passwd ファイルは、以下のような行の繰り返して構成されています。 user1:*:203:6:user:/home/user1:/bin/sh これは、左から順に、ログイン名、暗号化されたパスワード、ユーザID、グル ープ ID、ユーザ名、ホームへのパス、ログイン時に起動されるシェルへのパス 、を示しています。":" は区切り文字です。 これらの設定は、スーパーユーザのみ行なうことができます。例えば、新たに ユーザを受け入れる場合は、まずスーパーユーザが、useradd コマンドを用い て /etc/passwd に一行記述を追加し、ユーザのログイン名と仮のパスワードを 設定します。その後、ユーザがログインして、好みのパスワードに変更すると いう作業が一般的です。特に、ネットワークを使用する環境においては、事故 を防止するため、これらの管理は厳重に行なわれる必要があります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.4. ホーム 多人数で使用することを前提とした場合、ユーザ毎に作業スペースが必要とな ります。Linux では、ホームと呼ばれる起点となるディレクトリを定め、ログ インするとまずそこへ飛ぶ仕組みになっています。ホームは、usermod コマン ドで変更でき、/etc/passwd ファイルに書き込まれます。他のどのディレクト リにいたとしても、"cd" と入力することで、自分のホームへ戻ってくることが できます。 また、シェルを始めとする一部のプログラムは、ホームに設定ファイルを必要 とします。これらの設定ファイルは、大抵、ピリオドで始まるファイル名を持 っています。これらは、普段隠されており、ls コマンドに、 "-a" オプション を付けることで存在を確認することができます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5. シンボリック・リンク さて、作業空間が、ホームとして固定されてしまうと、どのような問題が起き るでしょうか。こんな例を考えてみましょう。 /usr/home/akaike というホームを持った akaike さんが、最近頻繁に作業を行 うようになった場所が、/usr/spool/kenkyuusitu/ringi/kaikei だとします。 これでは、交互に移動するのもけっこう大変です。それでは、akaike の下に kaikei というディレクトリを作成し、その中に /usr/spool/kenkyuusitu/ ringi/kaikei 下の全ファイルをコピーすれば、"cd kaikei", " cd .." だけで 交互に移動できますね。でも、それらのファイルは、研究室の会計に関するも ので、他の人も見たり書き加えたりできるものだったとしたら、これは問題で す。皆で、自分のホームにコピーし、編集した後、書き戻そうとしたら、どう なるでしょうか。 この問題を少しだけ緩和する機能が、シンボリック・リンクです。上記の例で は、ホームにカレントディレクトリがある時、以下のコマンドを実行します。 ln -s /usr/spool/kenkyuusitu/ringi/kaikei . こうすることで、あたかもホームの下に kaikei というディレクトリがコピー されたように見えます。これは、他の人も同じ操作をすることで、同じことが できます。ただのコピーと違うのは、ホームに出来たディレクトリ kaikei は 、/usr/spool/kenkyuusitu/ringi/kaikei と実体を共有しているということで す。 それでは、"cd kaikei" で移動して見ましょう。中には、/usr/spool/ kenkyuusitu/ringi/kaikei のファイルが並んでいるはずです。ここで"cd .." を実行すると、どこへ移動するのでしょうか。残念ながら、/usr/home/akaike ではなく、/usr/spool/kenkyuusitu/ringi へ移動します。"cd" と実行するこ とで、ホームへ直に移動できますので、シンボリック・リンクと併用すること で、離れたディレクトリの参照が楽になると思います。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6. パーミッション MS-DOS のファイル属性では、せいぜいファイルのリードオンリーを設定したり 隠したりといったことしかできませんでしたが、 Linux では、ユーザレベルに 応じた細かい管理が可能です。このファイル属性はパーミッションとも呼ばれ ます。 裏を返せば、Linux はパーミッションを細かく管理しなければ、いろいろ困っ た事が起きる可能性もあるわけです。ディレクトリの内容が見れなかったり、 プログラムの存在するディレクトリを、正しく指定しているのに実行できなか ったりするのは、大抵このためです。パーミッションは、ユーザレベルに応じ て、以下のような、3 つのフラグ [16] を持っています。 読み込み可能フラグ (r) このフラグが立っているファイルは、読むことが可能となります。また、 ディレクトリの場合は、ディレクトリ内を参照することが可能となります 。 書き込み可能フラグ (w) このフラグが立っているファイルは、その内容を更新することが可能とな ります。しかし、ファイルを消せるという意味ではありません。また、デ ィレクトリの場合は、そのディレクトリ内に新たにファイルを登録したり 、既にあるファイルを消したりすることが可能となります。 実行可能フラグ (x) このフラグが立っているファイルは、実行することが可能となります。テ キストファイルの場合は、スクリプトと判断され、シェルがこれを解釈し て実行します。また、ディレクトリの場合は、そのディレクトリにカレン トディレクトリが移動することを許します。 これら、パーミッションの状態を参照するためには、ls コマンドを用います。 "-l" オプションを付けることによって、以下のような情報を得ることができま す。 -rw-r----- 1 akaike akaike 4597 Nov 16 01:38 test.tex drwxr-xr-x 3 root users 4096 Feb 17 03:27 mute/ lrwxrwxrwx 1 root users 18 Jan 10 23:13 src -> /usr2/IV3.1/iv/ この左端にある 10 バイトが、パーミッションの状態を表しています。一番左 端の1 バイトは、それがファイル(-) であるか、ディレクトリ(d) であるか、 シンボリック・リンク(l) であるか、を表しています。 その次から、3 バイトが1 組となって、オーナー, グループ, 他者のパーミッ ションを表しています。例えば、 "test.tex" の場合は、「ファイルであり」 「オーナーは読み書きが可能」、「グループからは読むことができ」、「他者 からは、そういうファイルがあることだけはわかるが、読むことも変更するこ ともできない」、ということを意味します。これらの、パーミッションを制御 するには chmod コマンドを用います。 また、上記の例において、左から3 番目の、"akaike", "root", "root"といっ た名前は、オーナー名(ユーザID) を表しています。4 番目の "akaike", "users" "users" といった名前は、グループ名(グループID) を表しています。 以降、ファイルサイズ、更新日時、ファイル名と続きます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7. プロセスとジョブ MS-DOS では、基本的に同時に 2 つ以上のプログラムが、動いていることはあ りえません。子プロセスは存在しますが、子が起動している時は、親は必ず停 止しています。しかし、Linux はマルチタスク OS ですから、複数のプログラ ムをバックグランド [17] で動かしたり、好きな時にフォアグランド [18] に 切替えたりすることができます。Linux は、それらを管理する仕組みを持って います。 システムから見た、動作しているプログラムの実行単位を、プロセスと呼びま す。各プロセスは、システムによってプロセスID を割り当てられ、統一的に管 理されます。プロセスは、ps コマンドを使用することによって、知ることがで きます。また、kill コマンドにプロセスID を指定することによって、動作中 のプロセスを強制的に終了させることもできます。 プロセスはシステムから見た管理方法ですが、シェルによっては、よりユーザ の視点に近い実行単位として、ジョブと呼ばれる管理方法を提供しているもの があります。各ジョブには、ジョブ番号が割り当てられ、統一的に管理されま す。 現在、どんなジョブがあるかは、 jobs コマンドを使用することによって、知 ることができます。ジョブには、動作中であるか、一時停止しているかなどの 状態を持っていて、これらは fg, bg コマンドにジョブ番号を与えることによ って、制御することができます。jobs, fg, bg などは、シェルの内部コマンド です。 プログラムをバックグランドで動かすには、コマンドの最後に " &" をつけて 、実行することで行ないます。また、普通に起動したプログラムでも、動作中 に CTRL-Z を入力することで、一時停止させることができます。 ここでは、例として、ソースリストの修正とコンパイルを同時に行なうことを 考えます。現在 jobs で得られた結果が以下のようになっていたとします。 [1] + Suspended emacs -nw test.c [2] - Suspended gcc test.c ここで、コマンドラインから、"bg %2" を実行すれば、バックグランドでコン パイラである gcc が実行されていきます。その時の jobs の結果を示します。 [1] + Suspended emacs -nw test.c [2] Running gcc test.c さらに、"fg %1" とすると、起動しておいたテキストエディタである emacs が フォアグラウンドになり、ユーザが操作できる状態になります。当然、test.c を編集しながらでも、gcc は裏で動いています。しかし、ここで test.c に重 大なミスが見つかったので、gcc を止めることにしました。emacs から、 CTRL-Z を入力して emacs を一時停止させ、コマンドラインに戻った後、"kill %1" とすれば、 [2] Terminated gcc test.c と表示されて、実行されていた gcc が、強制終了します。後は、おもむろに " gcc test.c &" と実行すれば、新たに gcc がバックグランドで動き始めます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.8. ファイルシステム Linux では、複数の種類のファイルシステムを持っており、ユーザは必要に応 じて、作成し使用することができます。 MINIX 互換ファイルシステム これは、MINIX と呼ばれる教育向けOS と同じファイルシステムを採用して います。ファイル名は、最大14 バイト付けることができます。区画サイズ は 64MB 未満です。mkfs コマンドで作成され、 fsck コマンドで検査/修 復を行なうことができます。現在では不便なので、ほとんど使われていま せん。 MS-DOS 互換ファイルシステム MS-DOS でフォーマットされた区画を、そのまま読むことができます。ファ イル名の制限は、MS-DOS をそのまま引き継いでいます。この区画の作成は MS-DOS 上で行ないます。 拡張ファイルシステム ファイル名を 255 バイト付けることができ、区画のサイズも 4TB まで取 ることが可能なファイルシステムです。ext2 fs とも呼ばれます。 mke2fs コマンドで作成され、e2fsck コマンドで検査/修復を行なうことができま す [19]。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9. 特殊ファイル システム内には、入出力装置を管理する専用のデバイスドライバ群が用意され ています。これらデバイスドライバそれぞれに、特殊ファイルがインタフェー スとして与えられています。この特殊ファイルを用いることによって、あたか も普通のファイルに読み書きするように、入出力装置にアクセスすることが可 能となります。この場合の入出力装置は、フロッピーディスクドライブや、ハ ードディスク、IC-CARD ドライブ、 CD-ROM ドライブなどの外部記憶装置のみ ならず、プリンタ、コンソール、RS232C、果てはメモリさえ該当します。分か りにくい説明ですが、「ユーザに見える形で、装置が管理されている」と思っ てください [20]。 これらの特殊ファイルは、Linux では /dev 下に格納されています。例えば、" /dev/fd0","/dev/lp0" などです。ハードディスクなどの基本的な装置に対応す る特殊ファイルは、インストール時に自動作成されます。後から、カーネルに デバイスドライバを追加した場合などは、ユーザが mknod コマンドを用いて、 特殊ファイルを作成することもあります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.10. マウント フロッピーディスクドライブや、ハードディスクドライブなどの記憶装置は、 特殊ファイルに割り当てられています。それでは、これらを扱うには、どうし たら良いのでしょうか。それには、マウントと呼ばれる操作を、行う必要があ ります。ここでは、フロッピーディスクを例にとって説明します。 MS-DOS では、フロッピーを差した時点では何も行いません。とりあえず読みに いって、駄目だったら、MS-DOS が"ドライブの準備ができていません."という お馴染みのエラーを吐き出します。考えてみると、非常にアバウトな構造です 。 Linux では、きちんとその装置が使用可能どうか、始めにチェックしなくて は、アクセスが許されない構造になっています。そのための操作を、マウント と呼びます。マウントには、mount コマンドを使用します。 MS-DOS では、起動時に装置を検索して、自動的にドライブ名を割り振ります。 しかし、Linux では、ドライブ名という概念がありません。mount コマンドは 、指定した特殊ファイルの指す記憶装置のルートディレクトリを、特定のディ レクトリ名に置き換え、そこからアクセスできるようにします。動作としては MS-DOS の join コマンドに似ています。非常に乱暴な表現ですが、特殊ファイ ル自身がドライブ名のようなもので、それを適時ディレクトリに結びつけてし ようするということになります。 例えば、A: ドライブにある MS-DOS フォーマットのフロッピーにアクセスする ために、/mnt を割り当てるとすると、 mount -t msdos /dev/fd0 /mnt と、なります。この場合のディレクトリの対応関係は以下のようになります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Table 2. ディレクトリの対応関係 ┌─────┬──────┐ │ MS-DOS │ Linux  │ ├─────┼──────┤ │ A:  │ /mnt  │ ├─────┼──────┤ │ A:\doc │ /mnt/doc │ └─────┴──────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 割り当てられた /mnt 下に元々あったファイルは、アクセスできなくなります ので、通常は空のディレクトリを割り当てます。 マウントの反対の操作を、アンマウントと呼びます。フロッピーを交換したい ときなどは、一度、umount コマンドを実行して、システムからそのフロッピー をシステムから切り離し、フロッピーを入れ換えた後、再度マウントを行う必 要があります。一応安全対策も施されていますが、むやみにフロッピーを差し 替えたりしていると、しばしば前に挿入していたフロッピーディスクの内容が 変更されなかったり、後から挿入したフロッピーディスクの内容が破壊されて しまいます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.11. 共有ライブラリ もし、複数の実行ファイルから、共通に使用できる部分だけを抜き出してまと めて置いておいたら、ディスクスペースが節約できるとは思いませんか。この 機能を実現するのが、共有ライブラリ [21] というものです。この共有ライブ ラリを用いて、コンパイルされた実行ファイルは、起動する際に共有ライブラ リを自力で読み込んで、共有ライブラリに入っている機能を使用しながら動作 します。従って、ディスクの定められた場所に、共有ライブラリがなければ、 そのプログラムは自分に必要な機能を使用できないため、動くことができませ ん。通常は /lib 下に共有ライブラリを入れておきます。 共有ライブラリを使用しない実行ファイルには、予め実行するために必要なす べての機能を含んでいます。共有ライブラリを使用したものより、サイズは大 きくなりますが、共有ライブラリの存在を気にすることなく、実行することが 可能です。 つまり、どちらの方式にも一長一短があるということです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6. 運用上のノウハウ Linux を運用していく上で、注意すべきこと、頭に留めておいてほしいことに ついて、簡単に説明します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.1. あるはずのファイルがない時 Linux では、突然電源を切ったり、リセットをかけてはいけません。なぜなら 、すでにディスクに書き込んだようにみえているファイルでも、実はまだメモ リ上に存在していて、ちゃんと書き込まれていないことがあるからです [22]。 これをきちんとディスクに反映する sync というコマンドがあります。また、 Linux を終了する場合は、正規のシャットダウン手順を守りましょう。 なぜ、こんな仕組みになっているのか、普通に MS-DOS を使っていた人には分 かり難いかもしれませんが、単に性能を上げるためだと思ってください。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2. 突然すべて動かなくなった時 あらゆる基本コマンドが突然動かなくなってしまった場合には、共有ライブラ リの問題を思い浮かべた方が良いでしょう。Linux では、システムに関するプ ログラムも共有ライブラリを使用しています。つまり、共有ライブラリがなく なった瞬間から、もう正常に動かなくなってしまうのです。通常、共有ライブ ラリは /lib にシンボリック・リンクを張ることで、参照されています。極端 な例ですが、"mv /lib /lib2" などとやってしまった場合は、今まで張ってあ ったシンボリックリンクが切れてしまいます。これは、新たに張り直さない限 り、リセットかけても元の状態には戻らず、新たにログインすらできなくなっ てしまいます。こういった状態になった場合は、起動フロッピーを用いて、壊 れた区画をマウントした後、リンクを修復する必要があります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3. もらったバイナリが動かない時 バイナリで配付するという形態は、MS-DOS では一般的であり、とても便利です が、Linux ではそうとも言い切れない面もあります。共有ライブラリの問題が あるからです。Linux では、このライブラリのバージョンが一致していないと 、そのプログラムは実行できません。これを防ぐには、共有ライブラリを用い ずにプログラムをコンパイルする方法がありますが、共有ライブラリ使用のも のと比べると、非常にサイズが大きくなります。これを、ネットワークなどで やりとりするのは、現実的ではありません。従って、頻繁にバージョンアップ が行われているソフトウェアについては、ソースを手に入れて、自前でコンパ イルした方が良いでしょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.4. 万が一、落ちた時 Linux は商用の OS と比べても遜色ないほど頑丈であり、安定しています。し かし、極々稀にシステムのバグなどで、完全にハングアップしてしますことが あります。そういった時は、どうしたら良いのでしょうか。普通は、 5 分程度 待って、ディスクにアクセスしたのを確認してから、リセットをします。今ま で、扱っていたファイルの安全が保証されるとは言い切れませんが、かなりの 確率で助かるはずです。この機構は、Linux では起動時に update というコマ ンドを常駐させることで実現しています。これは、一定時間毎に、sync を自動 実行します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.5. 圧縮ファイルの種別がわからない時 圧縮ファイルと言うと、MS-DOS では LHa や PKZIP が一般的ではないでしょう か。Linux では、UNIX-LHa 及び、GNU zipとして存在します。これらは、高圧 縮率を誇り、MS-DOS との親和性も高いため、最近使われ始めていますが、 UNIX の世界でより一般的なのは、tar + compress という形式です。元来アー カイバという呼称は、ファイルをまとめて書庫として管理するところから来て おり、圧縮という意味とは別ものです。このまとめて書庫にする部分をtar が 、圧縮/展開を、compress/uncompress が司っています。 tar + compress 形式 の一般的な拡張子は、".tar.Z"です。" zcat abc.tar.Z |tar xvf -" とする ことで展開することができます。最近では GNU tar が圧縮ファイルに対応して いるため、"tar xvzf abc.tar.Z" でも展開することが可能です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6. テキストが正しく表示されない時 MS-DOS から持ってきた文章が、破壊されているように見えても、そう落胆する ことはありません。おそらくそれは、実際に文章が破壊されているのではなく 、文字コードの問題でしょう。 MS-DOS 上では、 Shift-JIS と呼ばれる漢字コ ードが一般的です。しかし、Linux を始めとする UNIX の世界では、JIS もし くは EUC (ExtendedUNIX Code) と呼ばれる漢字コードが一般的であるため、こ のような現象が起きます。つまり表示できないだけなので、nkf などのユーテ ィリティを用いて、漢字コードを変換すれば良いのです。 また、システムのコンソールは漢字表示可能になっている必要があります [23] 。これらの設定が合っているのに、特定の行が化けたような症状になる場合は 、その行に半角カナが存在していることが考えられます。Linux では半角カナ は扱えませんので、注意が必要です。また、それを使わないのが、暗黙のルー ルとなっています。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.7. ログインできなくなった時 まず、ユーザの設定が間違っていることが多いのです。これは /etc/passwd フ ァイルを、エディタなどで直接書き換えていると起こりやすいのです。ユーザ 管理用として、useradd, usermod コマンド等がありますから、できるだけこれ を使って設定を変更しましょう。やむを得ず、直接書き換える場合には、シェ ル、ホームディレクトリの設定などに注意をしましょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7. Linux で何をするのか ここでは、補足として、より実践的ないくつかの問題について触れます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.1. UNIX の勉強をしたい これはそのものズバリ、うってつけの用途だと思います。学校や会社でワーク ステーションを使っている人でも、システム管理者である人は少ないと思いま す。標準的なパッケージをインストールするだけで、豊富なコマンド群が揃い 、いろいろなことを試すことができます。最悪システムを壊してしまっても再 インストールすれば良いのですから楽なものです。 システム管理の勉強をしたい人にの中は、「Linux は SystemV ですか BSD で すか?」という質問をする人がいます。実は、その答えは「どちらでもない」の です。それは、どちらにも似ていないという意味ではなく、Linux は両方の良 いところを好きなように採り入れて育ってきた OS だからです。 システム管理面では、ほとんど BSD そのものになっています。しかしディレク トリ構成などはインストールするパッケージの種別によって、BSD 風になった り、SystemV 風になったりします。プログラムを組む人は同意されると思いま すが、割り込み時のシステムコールの振舞は SystemV 風です。中途半端と感じ るかもしれませんが、だからこそ、Linux で勉強することは、決して無駄には ならないと思います。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.2. 文章を書きたい MS-DOS で有名な Vz, MIFES などのテキストエディタは、 Linux には存在しま せん。Linux を普通にインストールすると、/usr/bin 下に vi と呼ばれるテキ ストエディタがインストールされます。emacs, Nemacs,mule, joe などの、別 のテキストエディタを入手してインストールしない限り、テキストの編集はこ れを用いて行なう必要があります。 今のところ、ワード・プロセッサに相当するソフトウェアはありませんが、文 章処理システムである TeX を使用することもできます。その出力を元に、 dviout, GhostScript などを用いることで、文章を美しく表示/印刷することが できるでしょう。TeX は MS-DOS でも動きますが、周辺のユーティリティ群と の連係を考えると、Linux 上で動かすメリットがあります。また、Linux はデ ィスクアクセスが速いためか、全体的に MS-DOS 版よりも速く感じます。 X-Window System 関連のパッケージをインストールしていれば、TGif+, idraw などのドローイングツールを使用することもできます。 TeX で書かれた文章に 、ちょっとした図を差し込むことも可能です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.3. プログラムを書いてみたい プログラミングをこれから始めよう、という人の中には、MS-DOS が一番プログ ラミングが簡単だと思い込んでいる人もいるかもしれません。MS-DOS は単純な 構造の OS ですが、プログラミングまで単純という訳ではありません。 MS-DOS 上のコンパイラで開発を行なう人は、ほとんど例外なくハングアップという現 象に見舞われたことがあるはずです。大抵こうなると、ユーザは、リセットを する他はなく、やむなく再起動する画面を眺める羽目になります。しかし、 Linux は強力なメモリ保護を提供しており、ユーザがおかしなプログラムを作 って実行させても、システム全体がダウンしてしまうようなことは、まずあり えないのです。 また、MS-DOS が提供可能なメモリは少なく、大規模なプログラムを動かすため には、プログラマに知識と技術力が要求されます。しかし、 Linux は広大なメ モリ空間と、仮想記憶 [24] も提供しています。ユーザは、開発中、自分のプ ログラムがどのくらいメモリを消費するのか、意識しなくても、とりあえず動 作するものが作れます。また、MS-DOS のコンパイラに存在する、メモリモデル といった、面倒な制約もありません。 このように、様々な制限が緩い分だけ、MS-DOS よりLinux の方が初心者向けと 言える面も多いのです。 その環境も充実しています。Linux は、標準の開発環境として、 gcc を用いま す。gcc をインストールすれば、各種ユーティリティをインストールしたり、 Linux カーネルの再構築も可能となります。デバッカとしてはソースレベルの デバッグが可能な、gdb が使用できます。X-Window System 上でも、 Tck/Tk や、InterViews などの多種多様なツールキットを使用することができます。 言語は C/C++ 以外に、Basic, Lisp, SmallTalk といったものが使用できます し、FORTRAN, Pascal などは、f2c 及びp2c というユーティリティで、Cのプロ グラムに変換することができます。そして特筆すべきは、Linux のパッケージ には、これら豊富なユーティリティ群が既に含まれており、簡単にインストー ルできるということです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.4. ゲームをしたい この分野は、UNIX 環境よりも MS-DOS の方がパワフルで幅も広いと思います。 仕事や勉強の合間にできる、テトリスなどのパズル系のゲームは割と豊富です が、アクションやシューティングとなると数は少ないですし、MS-DOS でも同様 のゲームがあるので、このために Linux をインストールする必然性はないでし ょう。しかし NetHack を始めとしたロールプレイングゲームは、 Linux でや る価値があります。マルチタスクの特色を生かして、メモをとったり、電子辞 書を索きながら、難解で巨大なゲームを、攻略することができるからです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.5. 仕事に使いたい  果たして、MS-DOS で TCP/IP のネットワークに接続し、端末操作やファイル 転送などを行うのに、いくらかかるでしょうか。それはネットワークに接続す るマシンの台数分だけ、ライセンスを受けねばなりません。UNIX 環境下で見て も、IBM-PC + Linux の方が、下手なワークステーションより性能が良いことも 、しばしばです。コスト的にみて、Linux には大きなメリットがあります。  しかし、ひとつ忘れてはいけないことは、Linux は無保証であるということ です。インストールしたマシンで安定して動くかどうか、などは誰も保証して くれないのです。つまり、安くあがった分のコストは、「ユーザの労力」に変 化したと考えるのが、妥当でしょう。これを軽減するために、 Linux のコミュ ニティが、いかに重要であるか、理解されると思います。相互扶助の精神なし では、やっていけないのです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8. おわりに Linux の背景となっている UNIX は、広大で一種マニアックな空気がとりまく 世界[参考文献 7]です。本稿で説明されていることは非常に少なく、Linux を 管理していく上では不十分です。自分にあった文献を選び、一度通読すること をお勧めします。 しかし、Linux の管理方法を習得することは単なる入口に過ぎません。これを ひとつのステップとして、Linux の背景に広がる UNIX の世界を存分に楽しま れることを希望します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9. 参考文献 1. Think GNU, ビレッジ・センター 2. UNIX 基本操作から実践活用まで, 啓学出版 3. たのしい UNIX, アスキ−出版局 4. Unix プログラミング環境, アスキー出版局 5. UNIX システム管理入門, SOFT BANK 6. UNIX SYSTEM V ユーザ・リファレンス・マニュアル, 共立出版 7. Life with UNIX, アスキ−出版局 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10. appendix JF より: この文書作成の経緯が書かれた以下の記述は、もともと別文書と なっていましたが、便宜上、ここに収録しました。(y.senda) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.1. この文章の目的 1. UNIX 全般に通じる基本的な知識についてまとめる 2. 他の FAQ 集や、Linux 情報メモ等を使用する前段階の情報を、紹介する 3. 最近この世界に来た人が陥り易い態度とあるべき姿について言及する ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2. 対象になる人 MS-DOS 以上 UNIX 未満の人  「ファイルとは」というレベルから始めるのは、分量的にも無理を感じ たので、MS-DOS をある程度使って知っている人を対象にしています。これ 読んで、情報メモと、HOWTO 物を読めば、あまり設定で困ることはないで しょう。現に私は困ってませんから( 説得力がないかも :-) )。 礼儀をわきまえない人  なんだか市販品と勘違いしているのか、元からそういう性格なのかは分 かりませんが、最近富に、「調べもせずに質問して、解決したらほなさい なら」という人が多くなっていると感じます。  ただあまり、その人達を責めることはできなくて、その背景には雑誌の 影響があると思います。パッケージを付録に付けて使い方は記事にするけ ど、扱い方や義務・リスク等は(おもしろくないので)記事にしないという 姿勢が、こういう人達を増やす一因になっていると思います。しかもその パッケージが酷い不完全品だったりして手が付けられません ;-< それで、とりあえず自分のできることとして、こういう文章を書いてみま した。私みたいな初心者だってできることはあるんだゾ :=)という意味あ いも含んでいます。 礼儀をわきまえない人に困っている人  会議室などで献身的なサポートをされている方々には、頭が下がる思い です。私は多くの人に、こういう方々にうんざりされた瞬間に、終わりだ ということを自覚してもらいたいのです。だから、サポートに疲れた時は 「これ読め」と本稿を指していただければ幸いです :-) 役にたたないかも しれませんが、現状の私の実力では、これが精一杯なので許してください ;-< ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.3. この文章の扱い  実は、私が UNIX という物をよく知らないので(なら書くな、とは言わない で) 内容的には稚拙極まりないと思います。それでも、こんな文章が役立つの でしたら、適当にどこでも転載してください。圧縮形式、文字コード等は変更 してもかまいません。内容を変更もどんどんやっちゃってください。ただし、 その時は、私の名前は消してくださいね :-)  後、段落整形を手でやっているので、いろいろ変なところがあるのですが、 一応読めると思うので、許してください。誤字・脱字・内容間違い等は、メー ルでお願いします。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4. 章立て はじめに 1 インストールする前に 1.1 インストールする前に 1.2 壊してしまう前に 1.3 文句を言う前に 1.4 質問をする前に 2 基本用語 2.1 バックスラッシュとスラッシュ 2.2 COMMAND.COM とシェル 2.3 バッチとシェルスクリプト 2.4 AUTOEXEC.BAT と /etc/rc 2.5 CONFIG.SYS とカーネル再構築 3 仕様の差異 3.1 ドライブ名とパス名 3.2 基本コマンド 3.3 ファイル名 3.4 ワイルドカード 4 特有の用語 4.1 ログインとログアウト 4.2 ユーザレベル 4.3 スーパーユーザ 4.4 ホーム 4.5 シンボリック・リンク 4.6 パーミッション 4.7 プロセスとジョブ 4.9 特殊ファイル 4.10 マウント 4.11 共有ライブラリ 5 運用上のノウハウ 5.1 あるはずのファイルがない時 5.2 突然すべて動かなくなった時 5.3 もらったバイナリが動かない時 5.4 万が一、落ちた時 5.5 圧縮ファイルの種別がわからない時 5.6 テキストが正しく表示されない時 5.7 ログインできなくなった時 6 Linux で何をするのか 6.1 UNIX の勉強をしたい 6.2 文章を書きたい 6.3 プログラムを書いてみたい 6.4 ゲームをしたい 6.5 仕事に使いたい おわりに (SGML conversion: yuji senda) Notes [1] パーティションとも呼ばれ、ひとつのハードディスクを複数の領域に区切 ったものを指します。 [2] IBM-PC の場合は fdisk, TOWNS の場合は TOWNS-MENU の区画設定で行い ます。 [3] ブートフロッピーとも呼ばれます。 [4] 俗名、日本マイクロソフトのことです。 [5] UNIX 本家の AT&T のコードを全く含まないため、ユーザは、面倒な制約 [参考文献 1 ]から逃れることができます。 [6] Frequently Asked Question. 頻繁に出る質問と答えをまとめた物です。 [7] Linux とその環境を盛り立てたいという精神が、ボランティア活動に結び 付いていると考えれば、これはあたりまえと言えるでしょう。 [8] alias. 別名機能とも呼ばれます。 [9] この操作のことをマウント(mount)と呼びます。 [10] これは、UNIX には、大きく分けて2 系列存在し、それぞれ管理形態が異 なることに起因します。 [11] kernel. システムの中核を成すプログラムだと思ってください。 [12] MS-DOS5.0 からは標準装備されています。 [13] Linux 特有というより、UNIX の世界では、一般的で、基礎的な事項です 。 [14] 一般に、ルート, システム管理者などとも呼ばれます。 [15] 単にユーザ、あるいは一般利用者とも呼ばれます。 [16] 旗が、立っているか、立っていないかというような、2 値情報を意味しま す。 [17] 裏で勝手に動いている状態を指します。 [18] ユーザが対話的に操作している状態を指します。 [19] 古い版では、mkefs,efsck という名前であることがあります。 [20] MS-DOS をよく知っている人ならば、con, aux などを思い浮かべたことと 思います。 [21] シェアードライブラリとも呼びます。 [22] 一般にキャッシュと呼ばれている機能です。MS-DOS では smartdrv とい うコマンドがこの役割を果たします。 [23] TOWNS Linux のコンソールは、キーボードから漢字コードの切替えが可能 です。また、IBM-PC Linux では、 KON と呼ばれるソフトウェアをシステ ムに組み込むことで、漢字表示が可能となります。 [24] 実際に積んでいるメモリよりも大きいプログラムを、動作させるための仕 掛けのことです。