Debian中几个bash初始化脚本使用区别--【转载】

linux系统当中的默认shell程序是bash.

我们经常需要对shell进行一些的配置,比如对于自己编译的程序,需要给全局变量PATH增加路径,又比如我们想定制我们的linux系统,使得每次在我们登录系统或者离开系统时,会自动的执行一些我们希望执行的程序。

这就需要“bash配置文件”的帮助。

需要了解一下下面的几个概念

—>在Debian系统中,有下面的几个bash初始化文件:

/etc/bash.bashrc—>系统级的新开bash时执行的文件
/etc/profile—>系统级的登录时执行的文件
~/.bashrc—>个人可以配置的新开bash时执行的文件
~/.profile—>个人可以配置的登录时执行的文件
—>对于bash的使用,有下面两种分类方式:

A.

需要登录的shell–>例如使用终端或者使用ssh登录系统时,需要输入用户名和密码来登录shell.
不需要登录的shell–>例如在登录到X系统之后,在桌面环境下打开一个虚拟终端,就不需要数据用户名密码,直接能够登录shell.
B.

需要交互的shell–>正常的在登录系统的情况下,需要人和计算机交互,输入命令,接收输出.
不需要交互的shell–>不需要人和机器交互.如在使用cron工具的时候执行的shell脚本就不需要人跟计算机进行交互.
—>使用bash初始化文件的作用:

设定全局变量名,如PATH等
设定prompt的表现形式
设定alias
执行一些我们在登录系统/离开系统,打开bash/关闭bash时希望自动运行的程序命令

下面就总结一下在不同的分类方式下使用到的bash初始化文件:

需要登录的情况下:/etc/profile—>/.profile.其中/etc/profile仅仅在登录系统时执行一次,/.profile可以不存在,且~/.profile中的重复设置会覆盖原先的/etc/profile的设置.需要注意的是,这两个文件只在用户登录系统的时候会被source到,一旦用户登录到了系统,而且之后比如又敲入bash等命令重新启动shell的话,此时这两个文件并不会被source。

不需要登录的情况下:/etc/bash.bashrc—>/.bashrc.其中/.bashrc可以不存在.每当新打开一个bash的时候,这两个文件都会被source一遍.且后面的设置有可能覆盖前面的设置.
无交互情况下:以上脚本都不source,如果系统中有全局变量ENV的定义,那么则source定义为ENV的文件.

posted @ 2015-01-20 11:42  legeishere  阅读(1580)  评论(0编辑  收藏  举报