「はじめに」でも書きましたが、CygwinのBash以外のシェルを探しました。 もちろんWindowsの標準コマンドラインシェルのcmd.exeもありますし、doskey.exeを使えばそれなりに便利だとは思いますが、 もう少しUNIX風のシェルを探してみました。
探し当てたのが葉山薫氏の NYACUSです。(WindowsNT系用。Windows9x用はNYADOS)
特徴は
NYACUS起動用にnyacus.exeのショートカットを作成します。 そのショートカットのプロパティの作業フォルダに環境設定で作ったホームディレクトリ (C:\home\%USERNAME%)を設定しました。またホームディレクトリに設定ファイル(以下で説明する_nya)を置きます。 これらの設定でホームディレクトリにある_nyaを優先して読み込んで起動します。
NYACUSの設定ファイルは_nyaです。(以下の説明は2005年1月現在の最新版(2.22a)を前提としています。)
現在のNYACUSでは、lsコマンドが内蔵されています。他のツールでlsコマンドを実現している場合、 「alias ls ls.exe」のように_nyaで設定する必要があります。
なお、aliasでは引数等について「$」を使ったマクロによって定義できます。 ただ、2.22(?)以降ではaliasに限らず「$・・」の形式で環境変数の参照が出来るため、 マクロを使ってaliasを定義する場合は「alias foo="bar $1"」と引用符を付ける必要があります。
デフォルトで「option history on」と、ヒストリ機能は有効になっています。 でもヒストリを保存するファイルが指定されていないため、ヒストリは保存されず、 いったんNYACUSを終了させると次回起動時には以前のヒストリを使うことが出来ません。
「option savehist ファイル名」と設定するとそのファイルにヒストリが保存されます。
このヒストリを保存するファイルは事前にテキストファイルを作っておく必要があります。私は「.history」という名前で作りました。 WindowsのGUI上では「.」から始まる名前のファイルを作ることはできませんので適当な名前でテキストファイルを作った後、 コマンドライン上でリネームします。例えばhistoryという名前のファイルを.historyに変える場合は以下のコマンドを実行します。
"ren history .history"
exitとコマンドを打つかCtrl+ZでNYACUSを終了させるとヒストリはファイルに保存されます。 つまり、ウィンドウの右上の×ボタンで終了させるとヒストリはファイルに保存されません。
プロンプトの表示を設定できます。デフォルトでは妙に派手なので変えました。設定例は以下の通りです。
#を付けてコメントアウトする。
cmd.exeと同じ設定となります。
表示例 C:\カレントディレクトリ>
option prompt [$p]
表示例 [C:\カレントディレクトリ]
option prompt $
表示例 $
デフォルトの_nyaでwhichコマンド(引数に指定したコマンドをpathが通っているディレクトリから検索し表示するコマンド)が 関数として定義され実現されています。
TEM氏の「NYAOSを使おう!」ではもっと詳しくNYACUSの説明がされています。
tcshにもWindows版があり、 榊原氏のtcsh最新版配布ページからダウンロードできます。
設定はWindowsの環境変数homeで指定しているディレクトリ(指定していない場合は%userprofile%で指定されるディレクトリ) にある".tcshrc"(".tcshrc"が無い場合は".cshrc")に記述します。配布ファイルに含まれるREADME.NTに詳しい設定が記載されています。
なお、.tcshrcを記述する際には最終行の改行を忘れないようにする必要があります。 日本語の表示・入力のために「set dspmbyte=sjis」を.tcshrcでに記述する必要がありますが、 設定しても日本語をうまく処理できない場合があるようです。
Windows PowerShellは .NET Frameworkをベースにして設計された(Windows XP世代から見た)次世代Windows用のシェルで、開発名ではMonad Shellと呼ばれていました。
機能など詳しくは、 Download details: Windows PowerShell RC1 Documentation Packからダウンロードできる"Windows PowerShell User Guide"に書いてあります。
参考
ckwはKazuo Ishii氏作の
Windows用のターミナルソフトです。ReadMe.txtでは
コマンドプロンプトウィンドウを使い易くしたソフトです。
コマンドプロンプトを隠しておいて、画面表示や キー操作などユーザーインターフェース部分だけを置き換えています。
と説明されています。
ckwは標準ではshellとしてcmd.exeを使いますが、「-e 子アプリ(実行ファイル)」の形の引数を与えることで他のshellを使うことが出来ます。 上述のshellはすべてckwの子アプリとなることができます。
nyacus.exe、tcsh.exeの場合は"-e "の後にフルパスを指定(パスが通っていない場合)、 Windows PowerShellの場合は"-e powershell"で利用できました。
なお、ckw作者のKazuo Ishii氏のサイトのkishのページでは コマンドプロンプトのフォントのTipsなどが掲載されていて参考になります。