Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux程序设计 ->正文

从初始化文件谈Linux系统的Shell编程

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

在作为LoginShell的Bash启动之后,两个文件会被连续读入,由LoginShell解释实行。开始是全用户共通的初期化文件[/etc/profile],接着是各用户根目录下的[.bash_profile]Linux安装之后,多数情况下会在各用户根目录下设置.bash_profile文件,自己的根目录下有没有此文件,用[ls -a] 确认,如果没有的话,Bash把怎么样处理请参照本节的附录。

/etc/profile,.bash_profile之中典型的处理内容是:PATH,USER等重要的环境变数的设定,程序异常终了时croe文件的大小的限制,新建文件的读写属性等。具体的/etc/profile,.bash_profile文件的内容在后面把详细介绍。

3.2 二级Shell利用的初期化文件

像X Window System的 kterm等软件启动时启动的Shell,由于也可以接受用户的命令,所以也叫对话式Shell当二级对话式Shell启动时,会自动读入用户根目录下的.bashrc,由调用的Shell解释并执行。一般地说,全用户共通的设定记述在/etc/bashrc中,但/etc/bashrc不能被自动读入,必须由.bashrc指示才能被读入。具体的可以用Bash的source命令或[.]实现,如在.bashrc中做如下记述:

1: if [ -f /etc/bashrc ]; then 
2: . /etc/bashrc 
3: fi

注:"-f" 是文件是否存在的判断条件。

/etc/bashrc,.bashrc之中典型的处理内容是:一般环境变数的设定,组合变数[PSI]的设定,别名的定义,Shell涵数的定义,端末设定的变更等。

3.3 两种初期化文件的合理的分别利用

在各用户的根目录下有两个初期化文件:.bash_profile和.bashrc,如果相同的内容在两个文件中都写的话,就会造成不必要的重复和修改上的麻烦,怎么样才能合理的分别使用呢,基本原则是:

*在.bashrc中不会发生冲突的尽量在.bashrc中记述,从.bash_profile中唤起.bashrc。

*Login时执行一次就行的命令和二级对话式Shell启动时反复执行会发生坏影响的命令在 .bash_profile 中记述,在.bash_profile中唤起.bashrc。的方法和从.bashrc读入/etc/bashrc 的方法一样,在.bash_profile中做如下记述:

1: if [ -f ~/.bashrc ]; then 
2: . ~/bashrc 
3: fi

附录:

.bash_login 和.profile 如果用户根目录下没有.bash_profile文件时,Bash会在根目录下查找 .bash_login,如果 .bash_login 不存在的话,Bash会在根目录下继续查找.profile文件。 其实,这些文件都是从 C shell(.login), Bourne shell (.profile)来的,都是只有LoginShell利用的初期化文件。不同的是,.profile是Bourne shell 和Bash 都可以利用的初期化文件。从各初期化文件分开使用的方面来看,设置一个Bash 专用的.bash_profile比较合适。

()

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Gartner分析家谈对开源数据库的研究   下一篇:讲叙Linux系统之Shell编程基础知识

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号