それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

WindowsでBashとls(日本語化)を使う面倒くさいテクニック

Windowsのコマンドプロンプトが不便だからBashを使いたい。だけれどCygwinはなんかアレだし、CoLinux+Cofsは別OSなのでちょっと。

gnuwin32でWindows用にコンパイルされたbashを使うことにした。

こんな感じでbash使いたい。

windows で Bashを使う選択肢として幾つか考えられる

  1. Windowsを諦める
  2. Mac/Ubuntuに変える
  3. 仮想化をする
    1. Colinux
    2. VirtualBoxなど
  4. SSHでつなぐ
  5. Cygwinを使う。
  6. WindowsのServices For Unixを使う。
  7. GnuWin32を使ったbashを入れる。

今回はWindows用にコンパイルされたBashを使うという挑戦をした.

挑戦したけど、面倒だった。苦労多いけど得るモノは少ないかんじ。


grep / sort /uniq と 日本語でls コマンドが使えるようになったのは便利。

getgnuwin32を取ってくる

Automated gnuwin32 download tool をダウンロード
ダウンロードしたらダブルクリックして展開

download.bat を編集

set GNUWIN32_MIRROR="jaist keihanna"を追加する。

sedをダウンロード

http://gnuwin32.sourceforge.net/packages/sed.htm

Sedを入れ替えてた。(何で必要かはこの際考えない。)

download.batを実行

%systemroot%にGnuwin32を展開入れてしまったので管理者権限が必要・・・あうち

管理者として実行してしばらく待つ。最新版のダウンロードとチェックにしばし時間が掛かる。


install.batの実行

右クリックして install.bat を実行する。→これが時間掛かるんだ

できあがったgnuwin32フォルダを移動

インストールしたい場所(私の場合 /users/takuya/apps/) にgnuwin32を移動した。

update-links.bat を実行

これも数分時間が掛かるので、気長に待つ。まつまつ。

PATHを通す。

これはおなじみの作業。

(私の場合 /users/takuya/apps/gnuwin32/bin にPATHを通した

bashを持ってくる。

ここまで来ると、Cmd.exeがWget使えるようになってるので・・・・楽です。

wget でファイルをつまんで、 unzip で展開
wget http://www.steve.org.uk/Software/bash/bash-203.zip
unzip bash-203.zip
実際はこんな感じ
C:\Users\takuya>wget http://www.steve.org.uk/Software/bash/bash-203.zip
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Users\takuya\apps\gnuwin32/etc/wgetrc
--2010-08-23 21:14:08--  http://www.steve.org.uk/Software/bash/bash-203.zip
www.steve.org.uk をDNSに問いあわせています... 80.68.85.46
www.steve.org.uk|80.68.85.46|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 541395 (529K) [application/zip]
`bash-203.zip' に保存中

100%[==============================================================================>] 541,395     86.6K/s 時間 6.4s

2010-08-23 21:14:16 (82.3 KB/s) - `bash-203.zip' へ保存完了 [541395/541395]


C:\Users\takuya>unzip bash-203.zip
Archive:  bash-203.zip
   creating: bash-2.03/
  inflating: bash-2.03/.bashrc
  inflating: bash-2.03/bash.dll
  inflating: bash-2.03/bash.exe
  inflating: bash-2.03/chmod.exe
  inflating: bash-2.03/cp.exe
  inflating: bash-2.03/less.exe
  inflating: bash-2.03/lesskey.exe
  inflating: bash-2.03/ls.exe
  inflating: bash-2.03/mv.exe
  inflating: bash-2.03/README.txt
  inflating: bash-2.03/rm.exe

C:\Users\takuya>

ワンポイント bash同梱の ls.exeは文字化けしない。

GnuWin32のls.exeは文字化けしまくる。ls --show-contorl-chars をつけてもcmd.exeで動作できない。だから困ってた。でもbashパッケージに同梱のls.exeは文字化けしない。困憊オプションが違うんだろうな。

そこで、bash.zipにのls.exeをgnuwin32にコピーして文字化けを回避する。ls.exeの文字化け問題さえ回避してしまえば、使用していて困ることは起こらないのです。

cp bash-2.03/* /users/takuya/apps/gnuwin32/bin/

これでOK.

/tmpがc:\に無いので怒られる。

そろそろbashで作業し始めて大丈夫

ファイルを指定して実行を選んで bash を入れる。

mkdir c:/tmp

ピッピピッピうるさい。

Beep音がかなりうるさいのでビープ音をストップする

cd #ホームディレクトリに移動
echo "set bell-style visible" >> .inputrc

この後、bash を再起動

bashrcの設定

この後は通常のBashでいいみたい。vimとか入れてもOK

参考資料

Windowsのコマンドプロンプトでbash : 青空Linux
GnuWin32を一気に入れる方法 - Seasons.NET
Windows Services for UNIX 3.5でTcl/Tk
windowsのcmd.exeをなんとかする - neCyda

そのた

win-bash というall-in-oneパッケージもあるらしいけど。開発止まってるしおなざりだから不安。
win-bash - Browse /win-bash at SourceForge.net


Microsoft がWindowsでUnixを使えるサービスを無償で提供してくれてる。
Windows Services for UNIX ダウンロード - Google 検索