- このエントリーは、2025/02 - 2025/03 の個人的な技術情報エントリーです。
要約
Windowsとはいえコンソール環境(CLI)がある/ 操作できる と便利なので調べたり設定したりしてみました。
コンソール環境整備の比較
- Docker環境で作成すると、Alpine/BusyBoxイメージで、20M~30M程度のものがある。
- 5MByte以下というサイズ(2025年頃)も存在している模様…
- 以前よりは楽になったものの、それなりに設定作業が大変(な気がする)
- BusyBox(BusyBox x64実装)だと、1Mを切る容量で 用意できる。
- 作成時間も、すべて手作業で行っても 試行錯誤があっても1時間程度で作成できると思う。
- Windowsのユーザランド(%UserProfile%、もしくは%Public%など)で完結する方式で用意できるので "後片付け" も比較的簡単
- 他参考までにWindowsコンソール環境について
- GitBash 割とメジャー、通常だと150M程度~250M程度は必要、Minimam版だと 100M~150Mぐらい
- Msys2 scoop 導入もできる完全コンパイル環境 700MByteから、1GByteぐらい(GCCとかも入っているフルスペック環境なので、これはこれで便利)。
BusyBoxを利用した 設定方法
-
BusyBoxそのものを用意する。
- [前書き] scoop install busybox でもよいが、コマンド類などの柔軟性を上げるために個別ダウンロードして構築する
-
https://frippery.org/files/busybox/ から、
busybox64u.exe
を取得する- 色々試してみたが、 x64対応で、 UNICODE対応なら、いろいろと動作上も都合よく動く模様。
- 適当なパスを %UserProfile% 配下に作成する
- ファイル名を指定して実行などから
MKDIR %UserProfile%\.bin
- ファイル名を指定して実行などから
-
Windows Terminalの設定追加
- 設定を開き新しいプロファイルを追加を選択し、コマンドプロンプトを複製
- BusyBoxの設定タブを開き、コマンドラインは必ず次のように設定する。
%UserProfile%\.bin\busybox64u.exe bash -l
- 開始ディレクトリを控えておく
- ※変更していなければ
%USERPROFILE%
- ※変更していなければ
-
コマンドを追加
- → scoop を導入する
- コマンドを追加する/ 追加例 は詳細を参照
scoop install vim scoop install gawk scoop install sed scoop install grep scoop install less
-
開始ディレクトリに プロファイル( .profile )を作成する。
- 作成する ~/.profile
export PS1='${debian_chroot:+($debian_chroot)}\[\e[38;05;74m\]\u\[\e[00m\]@\[\e[38;05;250m\]\h\[\e[00m\]:\[\e[38;05;172m\]\w\[\e[00m\]\$ ' export PROMPT_COMMAND='history -a; history -r'; # alias alias start='cmd /cstart '$* alias less='c:/Users/user/scoop/apps/less/current/less.exe '$* alias sed='c:/Users/user/scoop/apps/sed/current/sed.exe '$* alias grep='c:/Users/user/scoop/apps/grep/current/grep.exe '$* # busybox /dirs, pushd, popd _start_ function dirs { for _dir in ${_dirs}; do echo ${_dir} ; done }; function pushd { __pwd=$(echo $(pwd) | tr ' ' @); _dirs=${_dirs}' '${__pwd}; cd "$1"; }; function popd { cd $(dirs | tail -1 | tr '@' ' '); _n=$( echo ${_dirs} | wc -w ); _dirs=$(for _path in ${_dirs}; do [ ${_n} -gt 1 ] && _n=$( expr ${_n} - 1 ) || break; echo ${_path} ; done); } # busybox /dirs, pushd, popd _.end._
-
設定したTerminalを起動する