AIX下的profile文件生效。
[
|
2007/07/11 13:38]
|
2007/07/11 13:38]
想想怎么描述:
我在安装Oracle 10g在AIX的时候,发现无法使Oracle用户下的.bash_profile下生效,故而研究了.profile、bash_profile、dtprofile这些文件在怎样的情况下生效。
如何让用户自身的profile文件生效。
profile文件类型:.profile .bash_profile .dtprofile .login
1:如果是登录的Shell
如:你用第putty或者其它telnet工具连接过去,为登录的shell就会引用你在/etc/passwd里面用户默认的shell
举例:如果你是ksh,你会~/.profile,并且登录后自动生效。如果你用bash,则你的~/.bash_profile自动生效。.profile对于bash也有效。.login对应csh
2:如果你是用X,CDE登录。
如:你使用Xmanger登录,你会~/.dtprofile,而默认dtprofile是不会调用~/.profile的。见下面:
##############################################################################
#
# If $HOME/.profile (.login) has been edited as described above, uncomment
# the following line.
#
# DTSOURCEPROFILE=true
如果想让.dtprofile调用.profile并且使之生效,请取消注释掉该行(去掉#号)。
我的情况就是用Xmanager登录,以图形管理AIX,并且安装Oracle 10g在AIX上,结果发现我启用的.bash_proflie没有生效。
顺手发现了奇怪现象:
Oracle用户,/etc/passwd里面对应的shell是bash,然后如上面,该做的都做了,发现.dtprofile就是不启用.profile里面的环境变量。直到我将bash改成ksh就OK。待解决...我需要知道为什么?!
(更新时间:2007年7月11日 下午 17:00)
解决方法如下:
如果你用bash,而且还想CDE登录,或者通过Xmanager过去后,.profile里面定义的变量生效。这么做吧。前提,是你已经改过.dtprofile,并且取消了那行注释。并将.profile写好了你想定义的环境变量。
bash-3.00$ vi ~/.bashrc
. ./.profile
或者
bash-3.00$ vi ~/.bashrc
source ./.profile
想想原因,估计是.dtprofile,在bash,只会调用.bashrc(non-login shells)这个文件,而不会掉.profile,抑或.bash_profile文件。如果大家对于脚本内父子进程之间,或者环境变量的继承有疑问,可以参考我的这篇文章http://www.52zhe.cn/read.php?61
现在这个问题才算清楚了。哈哈!乐死我了。前前后后这句胡写了三次。
(更新时间:2007年7月12日 下午:14:37)
本文链接:http://www.52zhe.cn/read.php/57.htm
本文作者:kook(若就博客内所涉及的技术问题交流,请用下面的MSN或Gmail联系我)
联系方式:(MSN:kook#live.com) (Google talk:kookliu)
没有版权:GNU,转载时请注明“转载人”欠本人一顿饭,来日见面之时兑现!谢谢合作!
我在安装Oracle 10g在AIX的时候,发现无法使Oracle用户下的.bash_profile下生效,故而研究了.profile、bash_profile、dtprofile这些文件在怎样的情况下生效。
如何让用户自身的profile文件生效。
profile文件类型:.profile .bash_profile .dtprofile .login
1:如果是登录的Shell
如:你用第putty或者其它telnet工具连接过去,为登录的shell就会引用你在/etc/passwd里面用户默认的shell
举例:如果你是ksh,你会~/.profile,并且登录后自动生效。如果你用bash,则你的~/.bash_profile自动生效。.profile对于bash也有效。.login对应csh
2:如果你是用X,CDE登录。
如:你使用Xmanger登录,你会~/.dtprofile,而默认dtprofile是不会调用~/.profile的。见下面:
##############################################################################
#
# If $HOME/.profile (.login) has been edited as described above, uncomment
# the following line.
#
# DTSOURCEPROFILE=true
如果想让.dtprofile调用.profile并且使之生效,请取消注释掉该行(去掉#号)。
我的情况就是用Xmanager登录,以图形管理AIX,并且安装Oracle 10g在AIX上,结果发现我启用的.bash_proflie没有生效。
顺手发现了奇怪现象:
Oracle用户,/etc/passwd里面对应的shell是bash,然后如上面,该做的都做了,发现.dtprofile就是不启用.profile里面的环境变量。直到我将bash改成ksh就OK。待解决...我需要知道为什么?!
(更新时间:2007年7月11日 下午 17:00)
解决方法如下:
如果你用bash,而且还想CDE登录,或者通过Xmanager过去后,.profile里面定义的变量生效。这么做吧。前提,是你已经改过.dtprofile,并且取消了那行注释。并将.profile写好了你想定义的环境变量。
bash-3.00$ vi ~/.bashrc
. ./.profile
或者
bash-3.00$ vi ~/.bashrc
source ./.profile
想想原因,估计是.dtprofile,在bash,只会调用.bashrc(non-login shells)这个文件,而不会掉.profile,抑或.bash_profile文件。如果大家对于脚本内父子进程之间,或者环境变量的继承有疑问,可以参考我的这篇文章http://www.52zhe.cn/read.php?61
现在这个问题才算清楚了。哈哈!乐死我了。前前后后这句胡写了三次。
(更新时间:2007年7月12日 下午:14:37)
本文链接:http://www.52zhe.cn/read.php/57.htm
本文作者:kook(若就博客内所涉及的技术问题交流,请用下面的MSN或Gmail联系我)
联系方式:(MSN:kook#live.com) (Google talk:kookliu)
没有版权:GNU,转载时请注明“转载人”欠本人一顿饭,来日见面之时兑现!谢谢合作!
在AIX中设置中文环境
1个RMAN的shell脚本




如果想让.dtprofile调用.profile并且使之生效,请注释掉该行。
原文是uncomment the following line.
应该是取消注释该行 也就是把前面的#去掉