免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2984 | 回复: 2
打印 上一主题 下一主题

请问bash相关的配置文件是何时加载的?不同系统有没有区别? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-06 16:32 |只看该作者 |倒序浏览
我一直对一个问题比较模糊,那就是bash相关的配置文件是何时加载的,比如/etc/profile、/etc/bashrc、~/.bashrc、~/.bash_profile等等,它们是何时加载的,加载顺序是怎样的。

还有一个问题,它们的作用范围分别是什么?有没有System/Session/Applicaltion之分?也就是说,哪些是系统启动就存在,能够影响所有不同的会话;而哪些又是只在特定的会话中有效,会话结束就消失的;哪些又是与会话的应用程序有关,比如我在Linux下打开一个Terminal应用程序和打开一个Konsole如何会有不同的效果。还有,本地登录和远程登录哪些地方是不同的?

最近,我发现Linux的.bash_profile和Mac OS X的.bash_profile不大一样,在Linux下,你修改了.bash_profile中的环境变量,再打开一个终端窗口,可以发现环境变量的内容仍然是修改之前的内容;而Mac OS X就不一样,如果你修改了.bash_profile中的环境变量,再打开终端窗口,可以发现环境变量变了。为什么它们是不同的呢?哪一个更合理些?

论坛徽章:
0
2 [报告]
发表于 2007-11-07 10:34 |只看该作者
LZ研究得很深啊~~我摘着我知道的回答。。
   etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
   etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
   ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件.
   ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
注意:前面两个文件是系统级的,为所有用户配置基本登陆信息;当系统级与用户级的设置发生冲突时,将采用用户的设置

.bash_profile'只在会话开始时被读取一次,而'.bashrc'则每次打开新的终端(如新的 xterm 窗口)时,都要被读取

(有点乱。。。将就吧)

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2007-11-07 10:55 |只看该作者
Chapter 27. Files
startup files
These files contain the aliases and environmental variables made available to Bash running as a user
shell and to all Bash scripts invoked after system initialization.
/etc/profile
systemwide defaults, mostly setting the environment (all Bourne−type shells, not just Bash [57])
/etc/bashrc
systemwide functions and aliases for Bash
$HOME/.bash_profile
user−specific Bash environmental default settings, found in each user's home directory (the local
counterpart to /etc/profile)
$HOME/.bashrc
user−specific Bash init file, found in each user's home directory (the local counterpart to
/etc/bashrc). Only interactive shells and user scripts read this file. See Appendix J for a sample
.bashrc file.
logout file
$HOME/.bash_logout
user−specific instruction file, found in each user's home directory. Upon exit from a login (Bash)
shell, the commands in this file execute.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP