初期化ファイル
シェル初期化ファイルには、ログイン時に読み込まれるファイルと、シェルが起動する度に読み込まれるファイルがあります。shの場合、~/.profileがログイン時に読み込まれ、~/.shrcがシェル起動時に読み込まれます。例えば、ユーザーがログインすると~/.profileが読み込まれた後、~/.shrcが読み込まれます。そしてログイン後、新たにshを起動すると~/.profileは読み込まれず、~/.shrcのみが読み込まれます。またこれらのファイルはユーザー別になっていますが、全てのユーザーに読み込ませるための/etc/profileと/etc/shrcがあります。
shを使うユーザーがログインした場合
/etc/profileが読み込まれる。
~.profileが読み込まれる。
/etc/shrcが読み込まれる。
~.shrcが読み込まれる。
ログイン後、shを新たに起動した場合
/etc/shrcが読み込まれる。
~.shrcが読み込まれる。
関連として"su -"ではログイン時の初期化ファイルが読み込まれますが、"su"ではログイン時の初期化ファイルは読み込まれず、シェル起動時の初期化ファイルしか読み込まれません。以下はbashの場合です。
bashを使うユーザーがログインした場合
/etc/profileが読み込まれる。
~/.bash_profileが読み込まれる。
~/.bash_profileが無い場合、~/.bash_loginが読み込まれる。
~/.bash_loginが無い場合、~/.profileが読み込まれる。
※ ~/.bashrcは読み込まれない。
ログイン後、bashを新たに起動した場合
~.bashrcが読み込まれる。
bashを使うユーザーがログアウトした場合
~/.bash_logoutが読み込まれる。
初期化ファイル設定
~/.profileはshが使うので、bashでは~/.bash_profileを使うようにして、~/.profileを読み込むようにするとshもbashも支障なく使えます。
~/.profile
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin
~/.bash_profile
. ~/.profile
export PS1='\h \w\$ '
alias ls='ls -F'
alias vi='vim'
alias show='view'
Korn Shell
今はbashではなくkshを使ってます。netbsdに最初から入っているのと動作が軽快なのがいいです。
bashでは[CTRL+L]で画面クリア出来たのが、kshではできません。そこでkshでもできるような設定をします。
/etc/profileや~/.profileに設定します。clearコマンドの前後にスペースはいらないのですが、わかりやすいように1文字スペースをいれてあります。
bind -m '^L'="^A^K clear ^M"
一瞬、clearの文字が見え画面クリアが実行されます。bashのそれとは若干動作は違いますが、まあ、いいでしょう。