最近、Linuxに、/etc/profile.d/なるディレクトリのあることを知りました。中を見ると、vim.csh, vim.sh, kde.csh, kde.shといったファイルがあります。vimでは、alias vi=vimの設定が書かれており、各ユーザはログインすると自分の環境設定に何も記述していなくても、viと叩けばvimが起動されるようになっていたのです。
- /etc/profile.d/vim.sh
if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then [ -x /usr/bin/id ] || return [ `/usr/bin/id -u` -le 100 ] && return # for bash and zsh, only if no alias is already set alias vi >/dev/null 2>&1 || alias vi=vim fi
シェルの初期化
man bashによると、シェル起動時の環境設定読み込み制御は以下のとおりです。
- /etc/profileがあれば読み込む
- シェルがログインシェルとして起動されたか否か
CentOS 5の/etc/profileを見ると、最後に以下の処理をしています。
for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then . $i fi done
なるほど、こうしておけば、アプリケーション毎に特有の設定を別々なファイルに記述できるので、パッケージをインストールするときに、この/etc/profile.d/の下に置くようにすれば、便利ですね。