0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BusyBoxを使ったWindowsコンソール環境整備

Last updated at Posted at 2025-02-12
  • このエントリーは、2025/02 - 2025/03 の個人的な技術情報エントリーです。

要約

Windowsとはいえコンソール環境(CLI)がある/ 操作できる と便利なので調べたり設定したりしてみました。

コンソール環境整備の比較

  1. Docker環境で作成すると、Alpine/BusyBoxイメージで、20M~30M程度のものがある。
    • 5MByte以下というサイズ(2025年頃)も存在している模様…
    • 以前よりは楽になったものの、それなりに設定作業が大変(な気がする)
  2. BusyBox(BusyBox x64実装)だと、1Mを切る容量で 用意できる。
    • 作成時間も、すべて手作業で行っても 試行錯誤があっても1時間程度で作成できると思う。
    • Windowsのユーザランド(%UserProfile%、もしくは%Public%など)で完結する方式で用意できるので "後片付け" も比較的簡単
  3. 他参考までにWindowsコンソール環境について
    • GitBash 割とメジャー、通常だと150M程度~250M程度は必要、Minimam版だと 100M~150Mぐらい
    • Msys2 scoop 導入もできる完全コンパイル環境 700MByteから、1GByteぐらい(GCCとかも入っているフルスペック環境なので、これはこれで便利)。

BusyBoxを利用した 設定方法

  1. BusyBoxそのものを用意する。

    • [前書き] scoop install busybox でもよいが、コマンド類などの柔軟性を上げるために個別ダウンロードして構築する
    • https://frippery.org/files/busybox/ から、busybox64u.exe を取得する
      • 色々試してみたが、 x64対応で、 UNICODE対応なら、いろいろと動作上も都合よく動く模様。
    • 適当なパスを %UserProfile% 配下に作成する
      • ファイル名を指定して実行などから MKDIR %UserProfile%\.bin
  2. Windows Terminalの設定追加

    • 設定を開き新しいプロファイルを追加を選択し、コマンドプロンプトを複製
    • BusyBoxの設定タブを開き、コマンドラインは必ず次のように設定する。
      • %UserProfile%\.bin\busybox64u.exe bash -l
    • 開始ディレクトリを控えておく
      • ※変更していなければ %USERPROFILE%
  3. コマンドを追加

    • → scoop を導入する
    • コマンドを追加する/ 追加例 は詳細を参照
     scoop install vim
     scoop install gawk
     scoop install sed
     scoop install grep
     scoop install less
    
  4. 開始ディレクトリに プロファイル( .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._
    
  5. 設定したTerminalを起動する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?