Nash

提供: ArchWiki
2016年12月4日 (日) 02:04時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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 は一般的なバッファ編集として emacsvi モードをサポートしています。デフォルトのモードは emacs ですが以下のコマンドで変更できます:

λ> set mode vi

参照