-
Notifications
You must be signed in to change notification settings - Fork 0
MS_Bash
- 戻る(シェル、スクリプティング)
- Bash
- Python on Windows
Unix シェルかつコマンド言語
(Windows だとシェルは CMD でコマンド言語は BAT、若しくは PowerShell)
-
GNU プロジェクトにおける Bourne Shell のフリーソフトウェア
による代替としてブライアン・フォックスによって作成された。 -
1989 年に初めてリリースされ、広く普及している。
- ほとんどの Linux ディストリビューション
- アップルの macOS におけるデフォルトのログインシェル
-
Windows 10 でも利用可能
- Windows Subsystem for Linux
- 旧称:Bash on Ubuntu on Windows / Bash on Windows
でも利用可能。
移行メモ: 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 から直接起動できる。
- Bash - Wikipedia
https://ja.wikipedia.org/wiki/Bash
Tags: シェル, インフラストラクチャ, Windows, Linux, クラウド, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。