OpenBSD - エイリアスを設定する方法は?

OpenBSD - エイリアスを設定する方法は?

私は最新のOpenBSDを実行していますが、cls = clearなどの単純なエイリアスを設定する方法がわかりません。 ~/.cshrc と ~/.profile に入れてみました。私は試した:

alias cls clear
alias cls=clear
alias cls='clear'
alias cls="clear"

何も動作しません。

関連する可能性があるもう1つの注意:echo $ SHELLで私が/bin/kshを使用していると教えてくれたら、なぜ〜/.kshrcではなく〜/.cshrcを使うのですか?

答え1

.cshrc存在するためコピーされます。これは/etc/skel、(ほとんどの)ユーザーアカウントによって追加されたコンテンツに発生する現象です。しかし、これは/etc/skel2BSD時代からのインストールとサポートのために存在していました(現在は伝統的です)。shksh.cshrccsh

.profileログインシェルからのみ読み取るので、ログインシェル以外の新しいシェルはその中のコマンドを選択しません。

valen$ cd
valen$ ed .profile
215
a
echo .profile was run
.
wq
237
valen$ exec ksh
valen$ exec ksh -l
.profile was run
valen$ 

これksh(1)手動ENVログインしていないインスタンスが読み取る環境変数の設定に関するドキュメントがありますksh

valen$ ed .profile
237
d
a
export ENV=$HOME/.profile
echo now with ENV set
.
wq
263
valen$ exec ksh
valen$ exec ksh -l
now with ENV set
now with ENV set
valen$ exec ksh
now with ENV set
valen$ 

~/.profilesetを使用した二重読み取りを考慮すると、カスタムエイリアスを含むマニュアルで提案されているようexport ENV=$HOME/.profileに他のファイルを使用することをお勧めします。~/.kshrc

valen$ cat .profile
PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games
export PATH HOME TERM
export ENV=$HOME/.kshrc
valen$ cat .kshrc
alias cls=clear
valen$ exec ksh -l
valen$ alias | grep cls
cls=clear
valen$ 

関連情報