`

Linux, Unix中Bash环境变量的设定顺序 zz

阅读更多

 

转载自这里

和Bash的环境设定有关的文件有
/etc/profile (主要)
$HOME/.bash_profile (主要)
$HOME/.bash_login
$HOME/.profile
$HOME/.bash_logout (主要)
$HOME/.bashrc (主要)
/etc/bashrc

说明如下:

  • 登入(login)时
  1. 先执行 /etc/profile
  2. 接着bash会检查使用者的自家目录中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,则会执行其中一个,执行顺序为:
  3. .bash_profile 最优先
  4. .bash_login其次
  5. .profile 最后

这三个档案只有在登入时,才会被bash读取

 

  • 登出(exit/logout)时

bash会检查使用者自家目录中是否有 .bash_logout,若有,则bash会执行其中的指令

  • 登入后启动一个新的 shell :

此时我们称之为一个 subshell, 也就是说在命令列中键入 bash, 除了原先登入时的bash之外, 又另外启动了一个新的 bash shell.
bash 会检查使用者的自家目录中是否有 .bashrc,若有则予以执行

  • 测试:

在各档中加入 echo 指令, 以观察其执行顺序.

各文件用途说明

  • /etc/profile 由 root 所控制, 用来设定适合全体使用者的shell环境
  • 若使用者自己觉得 /etc/profile 的设定, 并不合意, 可以修改自家目录中的 .bash_profile
  • 既然有了 .bash_profile, 为何要有 .bash_login 及 .profile ?这是因为有些人可能是从 Bourne shell 移转过来的, 那么, 只要将 Bourne shell 主要的起动档 .profile 移到自家目录中, 放弃使用 .bash_profile 及 .bash_login 即可继续沿用以前的设定环境
  • .bash_login 存在理由或许和 c shell 有关, 但因为 bash 和 c shell 二者语法并不完全相容, 因此, 并不建议将 c shell 的启动档直接移过来使用.
  • .bashrc 则是用来设定 subshell 的环境的, 之所以要有这个 .bashrc 是为免 subshell产生时, 又重覆将 /etc/profile 执行一次. 我们发现 .bashrc 中已预先会去执行 /etc/bashrc的指令, 这表示, 或许 root 会将产生 subshell 时的环境设好了,使用者只要沿用 /etc/bashrc的内容, 应该不会有任何问题.
  • .bash_logout 是使用者登出主机之前, 会去执行的设定档, 如果使用者希望在他登出系统之后, 能帮他自动处理一些琐事, 比如: 清除临时文件, 清除屏幕等, 可以在这个档案中加以设定.

以下文章也许和本文有点关系:

 

------------------------------------------------------------------------------------------------

The above article is abstracted from somewhere else.

 

Something else to explain. I am using Linux 2.6.9. I put some environment variable into .bash_profile, seems like it doesnt' work. But if I put it into .bashrc, it works.

 

After I log into Linux server, and bash, all the variables are available.

 

To see your os info --- uname -a

Basic unix command list -- http://www.chem.brown.edu/computing/unix/unixbasic.html

 

分享到:
评论

相关推荐

    自定义添加linux系统java环境变量脚本及安装包

    各位小伙伴肯定都遇到过拿到一个linux环境发现没有java环境,又需要屁颠屁颠跑去找java安装包配置环境变量的问题吧? 本资源为二狗自己编写的快速定义java环境变量的脚本,可以帮助你剩下不少时间,操作前建议备份/...

    如何在 Linux 上运行命令前临时清空 Bash 环境变量

     你可以在 Linux 或类 Unix 系统中使用 env 命令设置并打印环境。env 命令可以按命令行指定的变量来修改环境,之后再执行程序。  如何显示当前环境?  打开终端应用程序并输入下面的其中一个命令:  ...

    Linux 中环境变量设置.docx

    /etc/profile: 此文件为系统的每个用户设置环境信息,当用户... 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。

    Bash特殊变量讲解

    Bash特殊变量讲解 一些bash的特殊变量,拿来作为参考还不错

    Linux中Bash环境变量的配置方法

    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令...bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne She

    Linux命令行和bash脚本编程圣经

    Linux命令行和bash脚本编程圣经 Linux命令行和bash脚本编程圣经

    linux bash远程执行代码漏洞的补丁

    redhat bash漏洞补丁包含文件:bash-4.1.2-15.el6_5.2.i686.rpmbash-4.1.2-15.el6_5.2.x86_64.rpmbash-3.0-27.el4.i386.rpmbash-3.0-27.el4.x86_64.rpmbash-3.2-33.el5_11.4.i386.r... redhat bash漏洞补丁 包含文件...

    解决ssh远程登陆linux显示-bash-4.1$的问题

    cp -pr /etc/skel/.bash* /home/test/ ... 您可能感兴趣的文章:浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释php $_SERVER windows系统与linux系统下的区别说明linux让$变成#符号的实操方法linux中$符号的基础用法教程

    linux BASH中文手册

    Bash中文手册,适合Linux shell入门级使用!

    unix高级Bash脚本编程指南

    unix高级Bash脚本编程指南,unix高级Bash脚本编程指南

    JMeter在Linux系统中的环境变量配置

    下载:  在线下载jmeter(或者本地上传): ...  拷贝到安装目录并解压:  $ cp apache-jmeter-3.1.tgz /usr/local/jmeter/ ...  为指定用户配置环境变量,是通过用户目录下的用户配置文件{.bash_profile}

    bash-4.2 for unix linux

    bash 4.2 for unix linux

    Shell基础Bash变量环境变量PPT教案.pptx

    Shell基础Bash变量环境变量PPT教案.pptx

    linux bash 源代码

    linux bash shell 实现源码

    linux bash手册(英文,version 4.2)

    linux平台的bash shell开发帮助文档(手册),英文版,版本4.2。日常开发shell翻阅, 章节如下: Definitions:: Some definitions used i n the rest of this manual. Basic Shell Features:: The shell "building ...

    Linux中profile、bashrc、bash_profile之间的区别和联系

    1.上面这三个文件是bash shell的用户环境配置文件,位于用户的主目录下。其中.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell和Korn ...

    linux shell bash 源码

    linux shell bash 源码等等

    Linux Bash脚本编程大全

    这本书介绍了bash大量的细节和广阔的范围,使用大量的例子详细地介绍了 Bash的语法,各种技巧,调试等等的技术,以循序渐进的...而本书除了介绍BASH的知识之外,也有许多有用的关于Linux/UNIX的知识和其他shell的介绍

    Linux bash练习小小的题

    Linux的bash练习

Global site tag (gtag.js) - Google Analytics