当前位置:  技术问答>linux和unix

.profile和.bash_profile有何区别?

    来源: 互联网  发布时间:2016-03-04

    本文导语:  在ORACLE安装中,有的要求配置ORACLE用户下的 .profile文件,有的要求修改 .bash_profile 文件。 但我修改了 .profile 后,无法有效,所以最后还是更改了 .bash_profile文件才有效。 那请问:他们之间的详细区别和联系是什...

在ORACLE安装中,有的要求配置ORACLE用户下的 .profile文件,有的要求修改 .bash_profile 文件。
但我修改了 .profile 后,无法有效,所以最后还是更改了 .bash_profile文件才有效。

那请问:他们之间的详细区别和联系是什么啊?谢谢

|
.profile 是Bourne Shell (sh)的配置文件. Korn Shell (ksh)兼容sh所以也会使用.profile
.login 是C Shell (csh) 的配置文件
.bash_profile是bash特有的, 由于bash被设计成兼容sh, ksh, 并有csh的特征, 所以会在用户主目录依次查找.bash_profile, .bash_login, .profile并用找到的第一个作为自己的配置文件.
在Linux下sh是bash的一个链接, 如果bash使用sh命令启动的, 就会以sh兼容方式运行使用.profile
一下是部分man bash的输出中的有关部分:

       When  bash is invoked as an interactive login shell, or as a non-inter-
       active shell with the --login option, it first reads and executes  com-
       mands  from  the file /etc/profile, if that file exists.  After reading
       that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
       in  that order, and reads and executes commands from the first one that
       exists and is readable.  The --noprofile option may be  used  when  the
       shell is started to inhibit this behavior.

       When  a  login  shell  exits, bash reads and executes commands from the
       file ~/.bash_logout, if it exists.

       When an interactive shell that is not a login shell  is  started,  bash
       reads  and executes commands from ~/.bashrc, if that file exists.  This
       may be inhibited by using the --norc option.  The --rcfile file  option
       will  force  bash  to  read  and  execute commands from file instead of
       ~/.bashrc.

       When bash is started non-interactively, to  run  a  shell  script,  for
       example, it looks for the variable BASH_ENV in the environment, expands
       its value if it appears there, and uses the expanded value as the  name
       of  a  file to read and execute.  Bash behaves as if the following com-
       mand were executed:
              if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
       but the value of the PATH variable is not used to search for  the  file
       name.

       If  bash  is  invoked  with  the name sh, it tries to mimic the startup
       behavior of historical versions of sh as  closely  as  possible,  while
       conforming  to the POSIX standard as well.  When invoked as an interac-
       tive login shell, or a non-interactive shell with the  --login  option,
       it  first  attempts  to read and execute commands from /etc/profile and
       ~/.profile, in that order.  The  --noprofile  option  may  be  used  to
       inhibit  this  behavior.  When invoked as an interactive shell with the
       name sh, bash looks for the variable ENV, expands its value  if  it  is
       defined,  and uses the expanded value as the name of a file to read and
       execute.  Since a shell invoked as sh does not attempt to read and exe-
       cute  commands from any other startup files, the --rcfile option has no
       effect.  A non-interactive shell invoked with  the  name  sh  does  not
       attempt  to  read  any  other  startup files.  When invoked as sh, bash
       enters posix mode after the startup files are read.

       When bash is started in posix mode, as with the  --posix  command  line
       option, it follows the POSIX standard for startup files.  In this mode,
       interactive shells expand the ENV variable and commands  are  read  and
       executed  from  the  file  whose  name is the expanded value.  No other
       startup files are read.

       Bash attempts to determine when it is being run  by  the  remote  shell
       daemon,  usually  rshd.  If bash determines it is being run by rshd, it
       reads and executes commands from ~/.bashrc, if that file exists and  is
       readable.  It will not do this if invoked as sh.  The --norc option may
       be used to inhibit this behavior, and the --rcfile option may  be  used
       to  force  another  file to be read, but rshd does not generally invoke
       the shell with those options or allow them to be specified.

       If the shell is started with the effective user (group) id not equal to
       the real user (group) id, and the -p option is not supplied, no startup
       files are read, shell functions are not inherited from the environment,
       the  SHELLOPTS  variable, if it appears in the environment, is ignored,
       and the effective user id is set to the real user id.  If the -p option
       is  supplied  at  invocation, the startup behavior is the same, but the
       effective user id is not reset.

|
和你使用的shell有关系

.bash_profile 是bash shell的配置文件

.profile 好像是ksh shell的配置文件,The Bourne shell 好像也用这个配置文件

|
和你使用的shell有关系的.

    
 
 

您可能感兴趣的文章:

  • linux RHEL 5.6 在root用户下. .bash_profile 或source .bash_profile 报错
  • linux(redhat9)中在哪里设环境变量,.bash_profil在哪里啊?
  • mac os 下环境变量 .profile .bash_profile .bashrc的两个问题
  • .bash_profile
  • . /root/.bash_profile
  • 怎样在整个LINUX文件里查找"bash_profile"文件?
  • 请问大家我的root文件夹怎么没有 .bash_profile这个文件啊
  • 紧急求助!/root/.bash_profile被改写之后,如何让系统接收新的配置?
  • 修改oracle用户的.bash_profile之后无法正常登陆
  • .bashrc和.bash_profile有什么区别
  • 急急急急,设置.bash_profile错误,无法登陆
  • 启动Linux终端时不能自动执行.bash_profile文件
  • 怎样知道一个用户的主目录,也就是.bash_profile所在的目录?如/home/oracle
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • .bash_profile 文件修改之后不执行,在线等~-
  • 为什么在shell开头要执行/home/XXX/.bash_profile
  • 请教一下, .bash_profile文件里面的环境变量没有生效
  • linux 新建用户后,在用户目录下没有.bash_profile文件生成
  • linux中环境变量的设置问题(BASH_PROFILE)
  • Ubuntu 9.10下面怎么没有 .bash_profile
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt.color类icc_profile的类成员方法: icsigoutputclass定义及介绍
  • OKTECH Profiler iis7站长之家
  • java命名空间java.awt.color类icc_profile的类成员方法: icsigabstractclass定义及介绍
  • 我在/etc/profile文件后面加上一段内容后,系统不能正常启动,也不能进入bash使用vi,ed,emacs,mv等指令,请问我怎么把/etc/profile文件内
  • java命名空间java.awt.color类icc_profile的类成员方法: icsigcolorspaceclass定义及介绍
  • 不同目录下profile的区别!
  • java命名空间java.awt.color类icc_profile的类成员方法: icsignamedcolorclass定义及介绍
  • OKTECH Profiler
  • java命名空间java.awt.color类icc_profile的类成员方法: icsigdisplayclass定义及介绍
  • Red Hat 下如何设置profile?
  • java命名空间java.awt.color类icc_profile的类成员方法: icsiginputclass定义及介绍
  • .profile不起作用?
  • java命名空间java.awt.color类icc_profile的类成员方法: icsiglinkclass定义及介绍
  • JavaScript代码检查工具 Prototype Profiler
  • java命名空间java.awt.color类icc_profile的类成员方法: getinstance定义及介绍
  • 关于etc/profile的问题
  • java命名空间java.awt.color类icc_profile的类成员方法: class_output定义及介绍
  • 求助:vim.profile
  • java命名空间java.awt.color类icc_profile的类成员方法: class_abstract定义及介绍
  • shell的问题,关于$home下的profile文件
  • java命名空间java.awt.color类icc_profile的类成员方法: class_display定义及介绍
  • source /etc/profile 与程序的稳定性


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3