1.安装完oracle后,用终端登录,因为不是直接用oracle用户登录的,所以我就执行
$ su oracle
切换成oracle用户之后,执行“echo $ORACLE_HOME”,结果显示空
原因:如果直接su oracle,
shell会去读取此用户(oracle用户)home目录下的隐藏文件,如果是bash的话,为 .bashrc。我查了oracle用户的 .bashrc没有配置$ORACLE_HOME,/etc/bashrc也没有配置$ORACLE_HOME,读取出来就是空。
我用oracle用户登录linux,执行“echo $ORACLE_HOME”,结果显示就不为空了。
下面是.bashrc文件和profile文件的一些简单介绍:
linux给大家提供了自动设置环境变量的方法,那就是修改 .bashrc 文件。一般说来,有两个文件可以提供这种“进入系统时自动设置”的功能,一个是 /etc/bashrc,另一个是 ~/.bashrc。其中/etc/bashrc是被每个用户执行的,而~/.bashrc只被当前用户执行。所以/etc/bashrc只有root用户能更改,而~/.bashrc是各个用户私有的文件。 "~"指的是用户的home目录。
这样,各个用户有自己独立的".bashrc"文件,可以根据需要自行更改,而不会互相干扰。 /etc/bashrc文件则是共享的,整个Linux中只有一份。一般来说,用户的"~/.bashrc"开头都会调用/etc/bashrc,因此更改/etc/bashrc会影响到所有用户,这个文件一般是root用户管理的。
提问:Linux系统中/etc/profile与/etc/bashfile文件作用的区别?
(1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。他是为用户定制系统定制环境变量。
(2)/etc/bashrc: 是为每一个bash shell的用户定制环境变量,当bash shell被打开时,该文件被读取。~/bashrc是为某个bash shell用户定制环境变量
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
2.oracle安装完成之后,用普通用户登录终端,再用su命令切换到oracle用户,执行sqlplus命令,提示:bash: sqlplus: command not found...
原因同1所示。直接用oracle用户登录,就能识别sqlplus命令了。
另外注意一点:不要以为root命令能识别所有命令,例如root用户就不能识别这个sqlplus,原因也一样的。
3.oracle安装完成之后,用普通用户登录终端,再用su命令切换到oracle用户,执行lsnrctl命令,同样提示:bash: lsnrctl: command not found...
原因也如1所说。