Message 850 not found; No message file for product=network, facility=NL

今天早上来单位,启动服务器上的数据库的时候发现竟然起不起来,报的错以前没见过:

 

Message 850 not found; No message file for product=network, facility=NL

 

后来在网上查了一下,是找不到oracle安装主目录的原因。想了一想可能是环境变量出问题了,export了一下发现果然没有$ORACLE_HOME 那几个环境变量,看了一下 .bash_profile没有发现问题,于是source .bash_profile了一下,正常启动了oracle

 

想了一阵子之后明白了问题所在:用ssh登录服务器时用的是其它用户名,而切换至oracle时用的是su oracle而不是su - oracle,用su oracle时不会切换用户环境,也不会加载新用户的环境变量

 

在网上查了一下发现加不加这一个小横杠的区别大了:

 

 

 

 

su 是切换到其他用户,但是不切换环境变量(比如说那些你用export命令查看一下,就知道两个命令的区别了)
su - 是完整的切换到一个用户环境

 

再贴点资料:

 

.bash_profile只在登陆的时候读取,在X下登陆打开一个console的话是不读取该文件的。如果你在字符模式下登陆输入用户和密码的话是读取的。如果在X下打开一个console要读取配置,就要写在.bashrc里面,而不是.bash_profile里面. 

你可以在.bashrc里面加入:

if test -f .bash_profile; then
. .bash_profile
fi


这样.bash_profile里面内容变了就不需要再改.bashrc面的内容了.

bash 登陆的时候读取配置文件的顺序如下:
.bash_profile
.bash_login
.profile

按这个顺序只要读到一个就不再读取其他的两个. 当然全局的/etc/profile是最先读的,/etc/profile里面的配置可以在以上三个文件中覆盖掉.

当bash不是作为登陆shell打开时,比如你先用csh登陆,然后再输入bash切换到bash ,那么只读取.bashrc
里的内容.不读取.bash_profile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值