5.1 シェルとは何か?

従来、シェルとは、Bash(Bourne again Shell)のことでした。この章でも、Bashをシェルと呼びます。実際には、Bash以外にも、異なる機能と特性を持つシェルがあります。他のシェルの詳細については、YaSTでシェルを検索してください。

5.1.1 Bash設定ファイルの知識

シェルは、次のように呼び出すことができます。

  1. 対話型ログインシェル。コンピュータへのログイン時に、--loginオプションとともにBashを呼び出す場合か、SSHを使用してリモートコンピュータへログインする場合に使用します。

  2. 通常の対話型シェル。xterm,やkonsoleなどのツールの起動時には、通常、この形式を使用します。

  3. 非対話型シェル。コマンドラインからシェルスクリプトを呼び出す場合に使用します。

使用するシェルのタイプによって、異なる設定ファイルを読み込みます。次のテーブルには、それぞれ、ログインシェル設定ファイルと非ログインシェル設定ファイルが示されています。

表 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

ログアウト時に使用されます。

5.1.2 ディレクトリの構造

次のテーブルでは、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データを含みます。

次のリストでは、さらに詳しい情報を提供し、ディレクトリに含まれるファイルおよびサブディレクトリの例を示します。

/bin

rootと他のユーザの両者が使用できる基本的なシェルコマンドを含みます。それらのコマンドは、 lsmkdircpmvrmrmdirなどです。/binには、SUSE Linux Enterprise ServerのデフォルトシェルであるBashも含まれます。

/boot

ブートローダやカーネルのデータなど、ブートに必要なデータを含みます。これらのデータは、カーネルによるユーザモードプログラムの実行開始前に使用されます。

/dev

ハードウェアコンポーネントを記述したデバイスファイルを格納します。

/etc

X Window Systemなどのプログラムの動作を制御するローカル設定ファイルを含みます。/etc/init.dサブディレクトリは、ブートプロセスで実行されるスクリプトを含みます。

/home/username

システムにアカウントを持つすべてのユーザの個人データを格納します。このディレクトリ内のファイルは、その所有者またはシステム管理者しか変更できません。デフォルトでは、電子メールのディレクトリとパーソナルデスクトップの設定が、非表示のファイルおよびディレクトリとして、ここに格納されます。デスクトップ用個人設定データは、KDEユーザの場合は.kdeまたは.kde4、GNOMEユーザの場合は.gconfとして格納されます。

メモ: ネットワーク環境でのホームディレクトリ

ネットワーク環境で作業するユーザのホームディレクトリは、/home以外のファイルシステム内のディレクトリにマップできます。

/lib

システムのブートとルートファイルシステムでのコマンドの実行に必要な必須共有ライブラリを含みます。Windowsで共有ライブラリに相当するものは、DLLファイルです。

/media

CD-ROM、USBスティック、デジタルカメラ(USBを使用する場合)など、リムーバブルメディアのマウントポイントを含みます。/mediaでは、一般にシステムのハードディスク以外のあらゆるタイプのドライブが保持されます。リムーバブルメディアをシステムに挿入または接続し、マウントを完了すると、ただちに、そのメディアにこのディレクトリからアクセスできます。

/mnt

このディレクトリは一時的にマウントされるファイルシステムのマウントポイントを提供します。rootがここでファイルシステムをマウントできます。

/opt

追加ソフトウェアのインストール用に予約されています。オプションソフトウェアや大型アドオンプログラムのパッケージをここに格納できます。現在は、KDE3はここにありますが、KDE4とGNOMEは、/usrに移動されています。

/root

rootユーザのホームディレクトリ。rootの個人データがここに保存されます。

/sbin

sで示唆されるように、このディレクトリはスーパーユーザ用のユーティリティを格納します。/sbinには、/bin内のバイナリとともにシステムのブート、復元、および回復に不可欠なバイナリを含みます。

/srv

FTPやHTTPなど、システムによって提供されるサービスのデータを格納します。

/tmp

ファイルの一時的保管を必要とするプログラムによって使用されます。

/usr

/usrは、ユーザとは無関係であり、UNIX system resourcesを意味する略語です。/usr内のデータは静的な読み込み専用データです。このデータは、FHS(Filesystem Hierarchy Standard)に準拠するホスト間で共有できます。このディレクトリは、すべてのアプリケーションプログラムを含み、ファイルシステム内の第二階層を形成します。KDE4とGNOMEも、このディレクトリに格納されています。/usrには、/usr/bin/usr/sbin/usr/local/usr/share/docなど、多数のサブディレクトリがあります。

/usr/bin

一般ユーザがアクセスできるプログラムを含みます。

/usr/sbin

修復関数など、システム管理者用に予約されたプログラムを含みます。

/usr/local

このディレクトリには、システム管理者がディストリビューションに依存しないローカルな拡張プログラムをインストールできます。

/usr/share/doc

システムのドキュメントファイルおよびリリースノートを格納します。manualサブディレクトリには、このマニュアルのオンラインバージョンが格納されます。複数の言語をインストールする場合は、このディレクトリに各言語のマニュアルを格納できます。

packagesには、システムにインストールされたソフトウェアパッケージに含まれているドキュメントが格納されます。パッケージごとに、サブディレクトリ /usr/share/doc/packages/packagenameが作成されます。このサブディレクトリには、多くの場合、READMEファイルが含まれます。例、設定ファイル、または追加スクリプトが含まれる場合もあります。

HOWTOをシステムにインストールした場合は、/usr/share/dochowtoサブディレクトリも含まれます。このサブディレクトリには、Linuxソフトウェアの設定および操作に関する多数のタスクの追加ドキュメントが格納されます。

/var

/usrは静的な読み込み専用データを含みますが、/varは、システム動作時に書き込まれる可変データ(ログファイル、スプールデータなど)のディレクトリです。たとえば、システムのログファイルは、/var/log/messagesに格納され、rootだけがアクセスできます。