Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

入門編:Bashの概要とシェル環境

Bash の基本概念、シェルの役割と実行モード、初期化ファイルの読み込み順序、および実行環境の確認方法を解説します。

Bashとは何か

Bash(Bourne Again Shell)は、GNU プロジェクトによって開発されたオープンソースのコマンドラインシェルおよびスクリプト言語です。1979 年に開発された Unix の標準シェル「Bourne Shell(sh)」の後継として誕生し、POSIX 標準との互換性を保ちながら強力な拡張機能を備えています。

Linux ディストリビューション(Ubuntu、Debian、RHEL 等)の多くで既定のログインシェルとして採用されているほか、WSL(Windows Subsystem for Linux)や macOS、コンテナ環境(Docker)など、現代のインフラ管理や開発運用において世界中で最も広く利用されています。

シェルは、OS の中核である「カーネル」とユーザーの間に立ち、入力されたコマンドを解釈してプログラムを実行するコマンドインタープリタとしての役割を果たします。同時に、複数のコマンドを組み合わせて処理を自動化するプログラミング言語でもあります。

シェルの実行モード

Bash は動作する状況に応じて複数の実行モードが存在します。

» ログインシェルと非ログインシェル

ユーザーが SSH 接続やコンソール画面から ID とパスワードを入力して認証した際に起動するシェルを「ログインシェル」と呼びます。

一方、グラフィカル環境のターミナルウィンドウを新しく開いたときや、シェル内から別のシェルを起動したときは「非ログインシェル」として動作します。

» 対話的シェルと非対話的シェル

ユーザーがキーボードから直接コマンドを入力し、プロンプトとやり取りするモードを「対話的(インタラクティブ)シェル」と呼びます。

シェルスクリプトファイルを実行する際のように、事前に記述されたコマンド群を自動で順次実行するモードを「非対話的シェル」と呼びます。

設定ファイル(初期化スクリプト)の読み込み順序

Bash の起動時には、モードに応じて特定の設定ファイルが順番に読み込まれます。

» ログインシェルの場合

  1. /etc/profile(システム全体の共通設定)
  2. ~/.bash_profile、~/.bash_login、~/.profile の中から 最初に見つかった1つだけ を読み込む
  3. ログアウト時には ~/.bash_logout を実行

一般的には ~/.bash_profile の中で ~/.bashrc を呼び出すように記述し、設定の重複を防ぎます。

» 対話的非ログインシェルの場合

  1. /etc/bash.bashrc(システム全体の設定)
  2. ~/.bashrc(ユーザー個別の環境設定)

エイリアスやプロンプト設定(PS1)、日常的に使う関数は ~/.bashrc に記述するのが標準的な運用です。

バージョンの確認と環境整備

システムにインストールされている Bash のバージョンを確認します。

# バージョン情報の表示
bash --version

# 組み込み変数によるバージョン確認
echo "$BASH_VERSION"

macOS ではライセンス上の理由から、OS 標準の Bash が古いバージョン(3.2 系)に留められています。最新の連想配列機能やパフォーマンス改善(Bash 4.0 / 5.0 以降の機能)を利用したい場合は、Homebrew などのパッケージマネージャー経由で最新版をインストールして使用します。

# macOS での Homebrew による導入例
brew install bash