linux中的shell编程实验报告(shell的用户环境配置文件浅析1)
今天在一个新环境里跑清算程序,遇到一个奇葩的bug,排查了很长时间,最终发现是环境变量的问题。子进程在通过execvp调用其他可执行程序时报错“找不到该可执行程序”,经检查环境变PATH有一个路径有误。顺便看了下该环境的用户环境配置文件,发现有多个文件都对PATH进行了配置,有些乱,下面就理一下这些配置文件的区别。
1 .bash_profile、.bashrc、.bash_history 和 .bash_logout这三个bash shell的用户环境配置文件位于用户主目录下使用ls -la 可以查看。.profile(由Bourne shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。在Debian中使用.profile文件代 替.bash_profile文件。
-
.bash_profile:在用户每次登录系统时被读取,里面的所有命令都会被bash执行
-
.bashrc:文件会在bash shell调用另一个bash shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可有效分离登录和子shell所需的环境。但一般 来说都会在.bash_profile里调用.bashrc脚本以便统一配置用户环境。
-
.bashrc_logout:在退出shell时被读取,我们一般把一些清理工作的命令放到这文件中。
-
.bash_logout:是bash shell的历史记录文件,里面记录了你在bash shell中输入的所有命令。可通过HISTSIZE环境变量设置在历史记录文件里保存记录的条数。
-
登录Shell(不管是不是交互式的)文件加载顺序如下:
/etc/profile ~/.bash_profile ~/.bash_login ~/.profile
-
交互式非登录Shell文件加载顺序如下:
/etc/bashrc
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com