AIX機にユーザーがログインすると環境変数が読み込まれますが、それぞれ以下が設定ファイルです。
- /etc/environment
- /etc/profile
- ~/.profile
- ~/.env
これらはSystem startup filesと括られますが、それぞれの特徴を説明しました。
/etc/environment
ログイン時にOSが最初に読み込むファイルです。このファイルは基本的には触りません。
このファイルはOSインストール時に作成され、$PASSや$TERMといった全システムで共通の変数が規定されています。
/etc/profile
ログイン時にOSが/etc/environmentの次に読み込むファイルです。
システム管理者はこのファイルを編集し、システム内の全ユーザがデフォルトで持つ変数として適用させます。
以下、一例です。
trap "" 1 2 3 readonly LOGNAME MAIL=/usr/spool/mail/$LOGNAME MAILMSG="[YOU HAVE NEW MAIL]" TERM_DEFAULT=lft TERM=`termdef` TERM=${TERM:-$TERM_DEFAULT} ...
~/.profile
ユーザ毎の設定はこちらに記載します。
~/.env
環境変数は.profileではなくこちらのファイルに書くことがありますが、.profile等に以下のように記載されている必要があります。
export ENV=$HOME/.env
以下はサンプルです。
export myid=`id | sed -n -e 's/).*$//' -e 's/^.*(//p'` #set prompt: login & system name & path if [ $myid = root ] then typeset -x PSCH='#:¥${PWD}> ' PS1="#:¥${PWD}> " else typeset -x PSCH='>' PS1="$LOGNAME@$UNAME:¥${PWD}> " PS2=">" PS3="#?" fi export PS1 PS2 PS3 alias ls="/bin/ls -CF" ¥ d="/bin/ls -Fal | pg" ¥ rm="/bin/rm -i" ¥ up="cd .."
ログイン時に読まれる他のファイルと違い、新しいシェルやウィンドウをオープンするたびに実行されます。
終わりに
環境変数周りで不具合がある場合は、上記のどれかが原因であることが多いのでメモしておきました。