私は最新の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/skel
2BSD時代からのインストールとサポートのために存在していました(現在は伝統的です)。sh
ksh
.cshrc
csh
.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$
~/.profile
setを使用した二重読み取りを考慮すると、カスタムエイリアスを含むマニュアルで提案されているよう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$