本記事では Windows 上でおしゃれな bash を使うことを目標とする。今回は WSL は使わない。
最終的には、以下のような見た目のコマンドラインとなった。
背景
まず、Windows におけるコマンドプロンプトといえば、「cmd.exe」, 「PowerShell」だろう。
ただし、仕事で mac を使用していることもあり、できれば mac に使用感を近づけたい。したがって、今回は bash を採用する。
また、こういったコンソール系の見た目はこだわりたい派なので、備忘録として本記事を残す。
Windows で使える bash
Windows で主に使われてる bash は以下の通りである。
-
WSL
-
MSYS2
-
Git bash
WSL は仮想環境、Git Bash はあまり良いイメージがないという消極的な理由から、MSYS2 を今回は採用した。
MSYS2 のインストール
インストーラーはこちら(https://www.msys2.org/) からダウンロードした。
特に特別な設定項目はないので、適当にインストールする。
インストール後、“MSYS2 MinGW x64” をスタートメニューから検索し、起動することができる。
起動後の画面
これで bash が使えるようになった。 ls コマンドが使えるので、試してほしい。
ls
MSYS2 は pacman といわれるパッケージマネージャーを採用している。パッケージ DB?のバージョンを最新にするため、次のコマンドを実行した。
pacman -Syu
いくつか質問されたが、全て”Y”で問題ないはず。とりあえず git を入れた。
pacman -S git
MSYS2 の設定
環境変数
ここから設定周りを整える。まずは環境変数だ。
Windows の環境変数を継承するために、以下の設定を行う。
MSYS2_PATH_TYPE の値を「inherit」と設定することで継承することができる。
ホームディレクトリの変更
恐らく、デフォルトでのホームディレクトリは MSYS2 のインストールディレクトリ配下の home フォルダとなっているだろう。今回は普通の Window ユーザフォルダをホームディレクトリとして扱いたいので、以下の設定を行う。
[MSYS2 インストールディレクトリ]/etc/nsswitch.conf を開き、以下の行を追加する。
db_home: windows
ターミナルを再起動することで、ホームディレクトリが変更されたことが確認できた。
Windows Terminal で MSYS2 を開く
ターミナルエミュレーターはMicrosoftStoreから WindowsTerminal をインストールした。ターミナルエミュレーターは他にも選択肢があるが、そこまで違いがないので、こちらから任意のものを選んでほしい。
まず、WindowsTerminal の起動し、設定から「Json ファイルを開く」をクリックする。
エディタが自動で起動するので、profiles > list に以下の Json を追加する。
{
"bellStyle": "window",
"colorScheme": "iceberg-light",
"commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64",
"experimental.retroTerminalEffect": false,
"guid": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}",
"icon": "C:/msys64/mingw64.ico",
"name": "MINGW64 / MSYS2",
"opacity": 70,
"startingDirectory": "C:\\Users\\%USERNAME%",
"useAcrylic": true
}
これで WindowsTerminal から MSYS2 が起動できる。
starship をインストール
次に、shell をカスタマイズする「starship」というパッケージをインストールした。
以下のコマンドからインストールできる。
pacman -S mingw-w64-x86_64-starship
また、次のコマンドで初期起動の設定を行う。必ずホームディレクトリで実行してくれ。
echo '$eval "$(starship init bash)"' >> .bashrc
Windows Terminal の見た目を変更する
最後の仕上げとして、Windows Terminal の見た目をかっこよくする。
こちらのサイトから好きなテーマを選ぶ。「Get theme」をクリックすると、クリップボードに Json がコピーされる。
コピーされた Json を WindowsTerminal の設定 Json へそのまま貼り付けることで、選んだテーマが適用される。少し透過させることでオサレになるぞ。
最終形態として以下のようなターミナルになった。満足。
bash 勉強本
コマンド関連おすすめ入門書