转载自这里
和Bash的环境设定有关的文件有
/etc/profile (主要)
$HOME/.bash_profile (主要)
$HOME/.bash_login
$HOME/.profile
$HOME/.bash_logout (主要)
$HOME/.bashrc (主要)
/etc/bashrc
说明如下:
- 先执行 /etc/profile
- 接着bash会检查使用者的自家目录中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,则会执行其中一个,执行顺序为:
- .bash_profile 最优先
- .bash_login其次
- .profile 最后
这三个档案只有在登入时,才会被bash读取
bash会检查使用者自家目录中是否有 .bash_logout,若有,则bash会执行其中的指令
此时我们称之为一个 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环境,又需要屁颠屁颠跑去找java安装包配置环境变量的问题吧? 本资源为二狗自己编写的快速定义java环境变量的脚本,可以帮助你剩下不少时间,操作前建议备份/...
你可以在 Linux 或类 Unix 系统中使用 env 命令设置并打印环境。env 命令可以按命令行指定的变量来修改环境,之后再执行程序。 如何显示当前环境? 打开终端应用程序并输入下面的其中一个命令: ...
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户... 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
Bash特殊变量讲解 一些bash的特殊变量,拿来作为参考还不错
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令...bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne She
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漏洞补丁 包含文件...
cp -pr /etc/skel/.bash* /home/test/ ... 您可能感兴趣的文章:浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释php $_SERVER windows系统与linux系统下的区别说明linux让$变成#符号的实操方法linux中$符号的基础用法教程
Bash中文手册,适合Linux shell入门级使用!
unix高级Bash脚本编程指南,unix高级Bash脚本编程指南
下载: 在线下载jmeter(或者本地上传): ... 拷贝到安装目录并解压: $ cp apache-jmeter-3.1.tgz /usr/local/jmeter/ ... 为指定用户配置环境变量,是通过用户目录下的用户配置文件{.bash_profile}
bash 4.2 for unix linux
Shell基础Bash变量环境变量PPT教案.pptx
linux bash shell 实现源码
linux平台的bash shell开发帮助文档(手册),英文版,版本4.2。日常开发shell翻阅, 章节如下: Definitions:: Some definitions used i n the rest of this manual. Basic Shell Features:: The shell "building ...
1.上面这三个文件是bash shell的用户环境配置文件,位于用户的主目录下。其中.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell和Korn ...
linux shell bash 源码等等
这本书介绍了bash大量的细节和广阔的范围,使用大量的例子详细地介绍了 Bash的语法,各种技巧,调试等等的技术,以循序渐进的...而本书除了介绍BASH的知识之外,也有许多有用的关于Linux/UNIX的知识和其他shell的介绍
Linux的bash练习