Linuxでbash以外にもshがいるのはなぜ?
質問Linuxでbash以外にもshがいるのはなぜ?
解答とても良い質問です。Linux に bash と sh の両方が存在する理由 は、歴史的経緯と互換性維持のためです。以下で詳しく説明します。1. sh は「Bourne Shell」(1970年代) の伝統的標準Unixの初期から存在する、最初の標準シェルが /bin/sh です。sh は スクリプト実行の共通インターフェイス として長く使われてきました。そのため、多くのシェルスクリプト(特に古いソフトウェアやシステムスクリプト)は /bin/sh を前提に動作します。2. bash は後発の高機能シェルbash(Bourne Again SHell)は、GNUプロジェクトが開発した Bourne Shell互換の上位互換シェル。sh 互換を保ちつつ、以下のような拡張機能があります:コマンド履歴 (history)コマンド補完 (tab completion)配列や算術式の拡張[[ ]] 構文などの便利な文法3. なぜ両方がいるのか後方互換性のため:多くの古いスクリプトは /bin/sh と書かれているため、bash に完全移行すると互換性が壊れる可能性があります。システムの互換性維持:Linuxディストリビューションでは、/bin/sh → /bin/bash へのシンボリックリンク(Ubuntu では /bin/dash)として動作させています。つまり「sh」は POSIX互換モードのbash/dash として機能します。4. 判…
