Nash
Nash (あるいは Nash シェル) は最小主義ながら強力なシェルです。スクリプトの可読性とセキュリティに重きが置かれています。Nash は Plan9 の rc シェルの影響を受けており Linux で namespaces(7) の作成と同じようなことができます。Golang の gofmt プログラムと同じような、nash スクリプトを整形して読みやすくする nashfmt プログラムが存在します。
インストール
nash-gitAUR パッケージをインストールしてください。
設定
nash をインストールしたら以下のコマンドを実行してみてください:
$ nash
λ>
ラムダ記号のプロンプトが表示されたら、問題なくインストールされています。
最初の起動時に、nash はユーザーのホームディレクトリの中に ~/.nash/
ディレクトリを作成します。以下のコマンドを使うことでディレクトリを確認できます:
λ> echo $NASHPATH
/home/username/.nash
作成されたディレクトリの中に init
というファイルを保存することで設定ができます。
Nash には特殊変数が1つだけ存在します:
PROMPT
変数はシェルプロンプトに表示する Unicode 文字列を指定します。
Nash のデフォルトの cd はビルトイン関数の chdir のエイリアスとなっています。使いづらいと感じるかもしれません。cd エイリアスを自分で作成することで使い心地を改善できます。nash ではコマンド名に関数を割り当てることでしかエイリアスを作成できません。以下の init では例として cd エイリアスを作成しています:
~/.nash/init
defPROMPT = "λ> " fn cd(path) { if $path == "" { path = $HOME } chdir($path) PROMPT = "("+$path+")"+$defPROMPT setenv PROMPT } # bind the "cd" function to "cd" command name bindfn cd cd
init ファイルを保存して新しいシェルを起動すれば定義した cd を使えるはずです:
git:(master)λ> nash λ> cd (/home/i4k)λ> cd /usr/local (/usr/local)λ>
cd などのエイリアスの実装について詳しくはプロジェクトの dotnash を見てください。
init の管理
Nash スクリプトはモジュール化できますが、パッケージという概念はありません。import キーワードを使うことで他のファイルをロードできます。dotnash init の例を見てください。
$PATH の設定
init の中に以下のコードを記述してください (必要に応じて編集してください):
path = ( "/bin" "/usr/bin" "/usr/local/bin" $HOME+"/bin" ) PATH = "" for p in $path { PATH = $PATH+":"+$p } setenv PATH
nash をデフォルトシェルにする
コマンドシェル#デフォルトシェルを変更するを見てください。
使用方法
キーバインド
cli は一般的なバッファ編集として emacs と vi モードをサポートしています。デフォルトのモードは emacs ですが以下のコマンドで変更できます:
λ> set mode vi