.yashrc ファイルの基本

.yashrc ファイルとは、yash が対話モードで起動するときに自動的に読み込まれるスクリプトファイルです。Bash の .bashrc や zsh の .zshrc と同じようなものです。.yashrc ファイルは利用環境のホームディレクトリに置きます。

.yashrc ファイルにシェルの設定を変更するコマンドを書いておけば、シェルを起動した後に毎回いちいち同じ設定を自分で入力する必要がなくなります。

.yashrc と .yash_profile

Yash が起動時に自動的に読み込むスクリプトには、.yashrc の他に .yash_profile があります。.yash_profile は yash がログインシェルとして起動されたときに読み込まれます。

.yash_profile には、ログインするときにだけ行うべき設定 (例えば環境変数や umask の設定) を書いておくとよいでしょう。一方 .yashrc にはプログラム間で共有されない yash 専用の設定 (エイリアスやプロンプトの設定) を書いておくとよいでしょう。

シェルオプションの設定

.yashrc で行う設定の基本として、シェルオプションの設定例を紹介します。シェルオプションは set コマンドを使って設定します。

set --braceexpand
# ブレース展開を有効にする。
# 例えば echo foo{1,2,3} を echo foo1 foo2 foo3 に展開

set --extendedglob
# パス名展開の拡張機能を有効にする
# 例えば echo **/foo でカレントディレクトリ以下の任意のディレクトリにある
# foo というファイルのパスを表示する

set --notify
# バックグラウンドジョブが終了したとき、(別のコマンドを実行中でも)
# すぐにメッセージを表示する

なお、各行の # 以降の部分はコメントです (読み込み時に無視されます)。

他にもいろいろなシェルオプションがあります。詳しくはマニュアルの set コマンドのページを見てください。

エイリアスの設定

.yashrc でエイリアスを設定しておくと、長いコマンドやオプションを入力する手間が省けます。例えば

alias l='ls --color=tty'
と設定しておけば、
ls --color=tty foo
とコマンドを入力する代わりに
l foo
で済ますことができます。

またグローバルエイリアスを使うとコマンド名以外の部分もエイリアスによって置き換えることができます。例えば

alias -G M='| more'
と設定しておけば、
make | more
の代わりに
make M
とできます。

ただし、グローバルエイリアスを設定すると思わぬところでコマンドを書き換えてしまうことがあるので注意してください。例えば上のグローバルエイリアスの設定をした状態で、端末に文字 M を出力させようとして

echo M
と入力しても、これは
echo | more
と解釈されてしまいます。エイリアスを無効にするにはバックスラッシュや引用符を付けてください。
echo \M