シェルとは何か?
従来、シェルとは、Bash(Bourne again Shell)のことでした。この章でも、Bashをシェル
と呼びます。実際には、Bash以外にも、異なる機能と特性を持つシェルがあります。他のシェルの詳細については、YaSTでシェルを検索してください。
シェルは、次のように呼び出すことができます。
対話型ログインシェル。コンピュータへのログイン時に、--loginオプションとともにBashを呼び出す場合か、SSHを使用してリモートコンピュータへログインする場合に使用します。
通常の
対話型シェル。xterm,やkonsoleなどのツールの起動時には、通常、この形式を使用します。
非対話型シェル。コマンドラインからシェルスクリプトを呼び出す場合に使用します。
使用するシェルのタイプによって、異なる設定ファイルを読み込みます。次のテーブルには、それぞれ、ログインシェル設定ファイルと非ログインシェル設定ファイルが示されています。
表 5-1 ログインシェル用Bash設定ファイル
|
ファイル |
説明 |
|---|---|
|
/etc/profile |
このファイルは変更しないでください。変更しても、次の更新で変更内容が破棄される可能性があります。 |
|
/etc/profile.local |
/etc/profileを拡張する場合は、このファイルを使用します。 |
|
/etc/profile.d/ |
特定プログラムのシステム全体に渡る設定ファイルを含みます。 |
|
~/.profile |
ログインシェル用のユーザ固有の設定をここに挿入します。 |
表 5-2 非ログインシェル用Bash設定ファイル
|
/etc/bash.bashrc |
このファイルは変更しないでください。変更しても、次の更新で変更内容が破棄される可能性があります。 |
|
/etc/bash.bashrc.local |
Bashのシステム全体に渡る変更を挿入する場合のみ、このファイルを使用します。 |
|
~/bashrc |
ユーザ固有の設定をここに挿入します。 |
さらに、Bashでは、次のファイルも使用します。
表 5-3 Bash用特殊ファイル
|
ファイル |
説明 |
|---|---|
|
~/.bash_history |
入力したすべてのコマンドのリストを含みます。 |
|
~/.bash_logout |
ログアウト時に使用されます。 |
次のテーブルでは、Linuxシステムの最も重要なハイレベルディレクトリの短い概要を示します。それらのディレクトリおよび重要なサブディレクトリの詳細については、後続のリストを参照してください。
表 5-4 標準的なディレクトリツリーの概要
|
ディレクトリ |
目次 |
|---|---|
|
/ |
ルートディレクトリ—ディレクトリツリーの開始点 |
|
/bin |
システム管理者および通常ユーザの両者が必要とするコマンドなどの必須バイナリファイル。通常、Bashなどのシェルも含みます。 |
|
/boot |
ブートローダの静的ファイル |
|
/dev |
ホスト固有のデバイスのアクセスに必要なファイル |
|
/etc |
ホスト固有のシステム設定ファイル |
|
/home |
システムにアカウントを持つすべてのユーザのホームディレクトリを格納します。rootのホームディレクトリだけは、/homeでなく、/rootにあります。 |
|
/lib |
必須の共有ライブラリおよびカーネルモジュール |
|
/media |
リムーバブルメディアのマウントポイント |
|
/mnt |
ファイルシステムを一時的にマウントするためのマウントポイント |
|
/opt |
アドオンアプリケーションのソフトウェアパッケージ |
|
/root |
スーパーユーザrootのホームディレクトリ |
|
/sbin |
必須のシステムバイナリ |
|
/srv |
システムで提供するサービスのデータ |
|
/tmp |
一時ファイルを格納するディレクトリ |
|
/usr |
読み込み専用データを含む第二階層 |
|
/var |
ログファイルなどの可変データ |
|
/windows |
システムにMicrosoft Windows*とLinuxの両方がインストールされる場合のみ利用可能。Windowsデータを含みます。 |
次のリストでは、さらに詳しい情報を提供し、ディレクトリに含まれるファイルおよびサブディレクトリの例を示します。
rootと他のユーザの両者が使用できる基本的なシェルコマンドを含みます。それらのコマンドは、 ls、mkdir、cp、mv、rm、rmdirなどです。/binには、SUSE Linux Enterprise ServerのデフォルトシェルであるBashも含まれます。
ブートローダやカーネルのデータなど、ブートに必要なデータを含みます。これらのデータは、カーネルによるユーザモードプログラムの実行開始前に使用されます。
ハードウェアコンポーネントを記述したデバイスファイルを格納します。
X Window Systemなどのプログラムの動作を制御するローカル設定ファイルを含みます。/etc/init.dサブディレクトリは、ブートプロセスで実行されるスクリプトを含みます。
システムにアカウントを持つすべてのユーザの個人データを格納します。このディレクトリ内のファイルは、その所有者またはシステム管理者しか変更できません。デフォルトでは、電子メールのディレクトリとパーソナルデスクトップの設定が、非表示のファイルおよびディレクトリとして、ここに格納されます。デスクトップ用個人設定データは、KDEユーザの場合は.kdeまたは.kde4、GNOMEユーザの場合は.gconfとして格納されます。
メモ: ネットワーク環境でのホームディレクトリ
ネットワーク環境で作業するユーザのホームディレクトリは、/home以外のファイルシステム内のディレクトリにマップできます。
システムのブートとルートファイルシステムでのコマンドの実行に必要な必須共有ライブラリを含みます。Windowsで共有ライブラリに相当するものは、DLLファイルです。
CD-ROM、USBスティック、デジタルカメラ(USBを使用する場合)など、リムーバブルメディアのマウントポイントを含みます。/mediaでは、一般にシステムのハードディスク以外のあらゆるタイプのドライブが保持されます。リムーバブルメディアをシステムに挿入または接続し、マウントを完了すると、ただちに、そのメディアにこのディレクトリからアクセスできます。
このディレクトリは一時的にマウントされるファイルシステムのマウントポイントを提供します。rootがここでファイルシステムをマウントできます。
追加ソフトウェアのインストール用に予約されています。オプションソフトウェアや大型アドオンプログラムのパッケージをここに格納できます。現在は、KDE3はここにありますが、KDE4とGNOMEは、/usrに移動されています。
rootユーザのホームディレクトリ。rootの個人データがここに保存されます。
sで示唆されるように、このディレクトリはスーパーユーザ用のユーティリティを格納します。/sbinには、/bin内のバイナリとともにシステムのブート、復元、および回復に不可欠なバイナリを含みます。
FTPやHTTPなど、システムによって提供されるサービスのデータを格納します。
ファイルの一時的保管を必要とするプログラムによって使用されます。
/usrは、ユーザとは無関係であり、UNIX system resourcesを意味する略語です。/usr内のデータは静的な読み込み専用データです。このデータは、FHS(Filesystem Hierarchy Standard)に準拠するホスト間で共有できます。このディレクトリは、すべてのアプリケーションプログラムを含み、ファイルシステム内の第二階層を形成します。KDE4とGNOMEも、このディレクトリに格納されています。/usrには、/usr/bin、/usr/sbin、/usr/local、/usr/share/docなど、多数のサブディレクトリがあります。
一般ユーザがアクセスできるプログラムを含みます。
修復関数など、システム管理者用に予約されたプログラムを含みます。
このディレクトリには、システム管理者がディストリビューションに依存しないローカルな拡張プログラムをインストールできます。
システムのドキュメントファイルおよびリリースノートを格納します。manualサブディレクトリには、このマニュアルのオンラインバージョンが格納されます。複数の言語をインストールする場合は、このディレクトリに各言語のマニュアルを格納できます。
packagesには、システムにインストールされたソフトウェアパッケージに含まれているドキュメントが格納されます。パッケージごとに、サブディレクトリ /usr/share/doc/packages/packagenameが作成されます。このサブディレクトリには、多くの場合、READMEファイルが含まれます。例、設定ファイル、または追加スクリプトが含まれる場合もあります。
HOWTOをシステムにインストールした場合は、/usr/share/docにhowtoサブディレクトリも含まれます。このサブディレクトリには、Linuxソフトウェアの設定および操作に関する多数のタスクの追加ドキュメントが格納されます。
/usrは静的な読み込み専用データを含みますが、/varは、システム動作時に書き込まれる可変データ(ログファイル、スプールデータなど)のディレクトリです。たとえば、システムのログファイルは、/var/log/messagesに格納され、rootだけがアクセスできます。