Skip to content

MS_Bash

nishi_74322014 edited this page Aug 31, 2026 · 1 revision

Bash

概要

Unix シェルかつコマンド言語
(Windows だとシェルは CMD でコマンド言語は BAT、若しくは PowerShell

  • GNU プロジェクトにおける Bourne Shell のフリーソフトウェア
    による代替としてブライアン・フォックスによって作成された。

  • 1989 年に初めてリリースされ、広く普及している。

    • ほとんどの Linux ディストリビューション
    • アップルの macOS におけるデフォルトのログインシェル
  • Windows 10 でも利用可能

    でも利用可能。

移行メモ: macOS の既定のログイン シェルは、
macOS Catalina(2019)以降 zsh に変更されている
(Bash は引き続き同梱されるが既定ではない)。
ライセンスが GPLv3 になった Bash 4 系を Apple が同梱しないため、
macOS に付属する Bash は 3.2 系のままである点にも注意。

補足(Windows における位置づけ): 本ページが挙げているとおり、
Windows で Bash を使う正規の経路は WSL である。
ただし、それ以外にも Bash が動く場面がいくつかあり、混同しやすい。

経路 実体 注意点
WSL 本物の Linux カーネル上の Bash Windows 側とはファイル システムもプロセスも別
Git for Windows(Git Bash) MSYS2 由来の移植版 パス変換の癖がある。フル機能の Linux ではない
Cygwin / MSYS2 POSIX 互換レイヤー上の Bash 同上
コンテナ内 Linux コンテナの Bash ホストとは完全に分離

シェル(スクリプト)の移行
CMD / WSH の移行先候補として Bash を挙げる場合、
どの経路の Bash を前提にするかで成立条件が変わる。
特に、Windows 固有の管理操作(レジストリ、サービス、WMI)を
扱う必要があるなら PowerShell の方が適する。

補足(Windows 側との相互運用でつまずく点): WSL の Bash から
Windows 側を扱う場合、次の差異が典型的な躓きどころになる。

  • パス — Windows 側は /mnt/c/... にマウントされる。
    wslpath コマンドで相互変換できる。
  • 改行コード — Windows で編集したスクリプトが CRLF になっていると、
    bash: \r: command not found のような形で失敗する。
  • パーミッション/mnt/c 配下は既定でパーミッションが正しく表現されず、
    chmod +x が効かないことがある(metadata オプションで改善)。
  • 性能/mnt/c 配下のファイル I/O は遅い。
    作業ファイルは WSL 側のファイル システムに置く方が速い
    (→ Docker for Windowsのネットワーク設定 でも同様)。
  • Windows の実行ファイルを呼べるnotepad.exe のように
    拡張子まで書けば Bash から直接起動できる。

参考

本 Wiki 内


Tags: シェル, インフラストラクチャ, Windows, Linux, クラウド, Azure

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally