Skip to content

WindowsでWSL使わずにかっこいいbashを使いたい

Published:

本記事では Windows 上でおしゃれな bash を使うことを目標とする。今回は WSL は使わない。
最終的には、以下のような見た目のコマンドラインとなった。

goul-teminal

背景

まず、Windows におけるコマンドプロンプトといえば、「cmd.exe」, 「PowerShell」だろう。
ただし、仕事で mac を使用していることもあり、できれば mac に使用感を近づけたい。したがって、今回は bash を採用する。

また、こういったコンソール系の見た目はこだわりたい派なので、備忘録として本記事を残す。

Windows で使える bash

Windows で主に使われてる bash は以下の通りである。

WSL は仮想環境、Git Bash はあまり良いイメージがないという消極的な理由から、MSYS2 を今回は採用した。

MSYS2 のインストール

インストーラーはこちら(https://www.msys2.org/) からダウンロードした。
特に特別な設定項目はないので、適当にインストールする。

インストール後、“MSYS2 MinGW x64” をスタートメニューから検索し、起動することができる。
起動後の画面

msys2-terminal-window

これで bash が使えるようになった。 ls コマンドが使えるので、試してほしい。

ls

MSYS2 は pacman といわれるパッケージマネージャーを採用している。パッケージ DB?のバージョンを最新にするため、次のコマンドを実行した。

pacman -Syu

いくつか質問されたが、全て”Y”で問題ないはず。とりあえず git を入れた。

pacman -S git

MSYS2 の設定

環境変数

ここから設定周りを整える。まずは環境変数だ。
Windows の環境変数を継承するために、以下の設定を行う。
MSYS2_PATH_TYPE の値を「inherit」と設定することで継承することができる。

env-settings

ホームディレクトリの変更

恐らく、デフォルトでのホームディレクトリは MSYS2 のインストールディレクトリ配下の home フォルダとなっているだろう。今回は普通の Window ユーザフォルダをホームディレクトリとして扱いたいので、以下の設定を行う。

[MSYS2 インストールディレクトリ]/etc/nsswitch.conf を開き、以下の行を追加する。

db_home: windows

ターミナルを再起動することで、ホームディレクトリが変更されたことが確認できた。

Windows Terminal で MSYS2 を開く

ターミナルエミュレーターはMicrosoftStoreから WindowsTerminal をインストールした。ターミナルエミュレーターは他にも選択肢があるが、そこまで違いがないので、こちらから任意のものを選んでほしい。

まず、WindowsTerminal の起動し、設定から「Json ファイルを開く」をクリックする。

windowsterminal-settings

エディタが自動で起動するので、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 がコピーされる。

windows-custom-terminal

コピーされた Json を WindowsTerminal の設定 Json へそのまま貼り付けることで、選んだテーマが適用される。少し透過させることでオサレになるぞ。

最終形態として以下のようなターミナルになった。満足。

final-ui-terminal

bash 勉強本

コマンド関連おすすめ入門書

https://amzn.to/3uZbHvZ