
Bashは1989年にGNUプロジェクトのブライアン・フォックス(Brian Fox)が公開したコマンドインタプリタで、正式名称は「Bourne-Again SHell」です。AT&Tベル研究所のスティーブン・ボーン(Stephen Bourne)が1979年に設計したBourne Shell(sh)を、自由ソフトウェアとして書き直したうえでKornシェルやCシェルの便利機能を取り込んだ点が出発点でした。現在ではLinuxディストリビューションの既定ログインシェルとして広く採用され、サーバー運用や自動化スクリプトの基盤になっています。本記事ではBashの中核機能と歩み、そして他シェルとの違いを整理します。
この記事の目次
- 対話と自動化を両立する設計
- shから書き直されGNUの一部へ
- 実務での使われ方
- Zsh・fish・PowerShellとの位置関係
- まとめ
対話と自動化を両立する設計

Bashは「人が打つコマンドラインの道具」と「ファイルに書いて流すプログラミング言語」の両方を兼ねる設計が特徴です。ターミナルで対話的に動かすときは、矢印キーでの履歴呼び出し、Tabによるファイル名やコマンド名の補完、Ctrl+Rの逆方向インクリメンタル検索といったReadline由来の編集機能が常に効きます。シェル変数、エイリアス、ジョブ制御も日常操作を軽くするための仕掛けとして組み込まれています。
一方でスクリプトとして使うときは、if/case/for/whileといった制御構文、関数定義、配列、連想配列を備えた立派な手続き型言語の顔を見せます。パイプライン「|」とリダイレクト「> < >>」を組み合わせ、標準入力・標準出力・標準エラーをつなぎ替えながら小さなコマンドを連結する流儀は、「一つのことをうまくやる」というUnix哲学を体現する書き味になっています。
shから書き直されGNUの一部へ

Bourne ShellはUnix Version 7(1979年)に同梱されたシェルで、それまでのThompson ShellやCシェルが抱えていた課題を整理した実用的な処理系でした。しかしソース公開の制約があったため、リチャード・ストールマンが主導するGNUプロジェクトは互換シェルを必要としており、1988年にブライアン・フォックスが開発を開始、1989年6月にバージョン1.0を公表しました。「Bourne-Again」という名称はBourneの再来であると同時に、英語の「born again(再生した)」をもじったジョークです。
1990年代以降、Linuxディストリビューションが軒並みBashを標準ログインシェルに採用したため、「Linuxを触る=Bashを使う」という構図がほぼ確立しました。macOSも長らく既定シェルでしたが、ライセンスがGPLv3へ移行した2007年以降はバージョン3.2系で固定され、2019年のCatalinaからは既定がZshへ切り替わっています。それでもサーバー側のシェルスクリプト資産はBash前提で書かれることが多く、影響力は揺らいでいません。
実務での使われ方

Bashが最も活躍するのは、サーバー側で繰り返し走らせる自動化スクリプトの世界です。cronやsystemd timerから呼び出され、ログのローテーション、バックアップの取得、データベースのダンプ転送、監視結果の整形といった作業をこなします。シェル一行で済む処理はそのままワンライナーで、複雑になれば関数とtrapによるエラー処理を備えた長尺スクリプトへと自然に拡張できます。
コンテナ時代にもBashの存在感は薄れていません。Dockerfileの「RUN」行で叩かれるのはほぼ常にBashであり、GitHub ActionsやGitLab CIのジョブ定義も、最終的にはシェルコマンドの羅列に落ちます。開発者個人の環境でも、~/.bashrcに補完関数やプロンプト装飾、エイリアスを書き貯めて自分専用の作業環境を作る文化が根強く残っています。
Zsh・fish・PowerShellとの位置関係

対抗馬としてよく比べられるのが、同じくUnix系のZshとfishです。ZshはBashの上位互換に近い文法を持ちつつ、再帰的グロブやプラグイン経由の派手なテーマで人気を集め、macOSの既定シェルにも採用されました。fishは設定なしで色付き補完が効き、文法をBashから大胆に変更して初心者の学習コストを下げる路線です。どちらも「Bashの便利でない部分を改善する」発想で生まれました。
MicrosoftのPowerShellはまったく別系統で、テキストではなくオブジェクトをパイプで渡す設計を取ります。WindowsサーバーやAzureの管理ではこちらが既定ですが、Linux/macOSへの移植も進み、両世界を行き来する管理者が増えました。それでも、互換性と教材の厚みという点でBashは抜きん出ており、「迷ったらBashで書いておけば後で困らない」という安心感が依然として現場の選択理由になっています。
まとめ
BashはGNUが書き上げた汎用シェルとして、Linuxサーバーとシェルスクリプトの世界を30年以上支え続けています。華やかな新シェルが登場しても、互換性と教材の豊富さから第一選択の地位は揺らがず、自動化の現場で必ず触れる基本ツールとして学んでおく価値が高い一本です。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント