作者:冯利美,华清远见嵌入式学院讲师。
本文主要对linux系统bash配置文件进行比较分析。
1. 首先是两个全局的配置文件。
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
2. 在用户的主目录中也有bash的配置文件,它们是局部的。
如果用户的主目录下找到.bash_profile, 那么在执行完/etc/profile后,将执行这个文件,如果.bash_profile找不到,找另一个文件.bash_login, 如果.bash_login也不存在,再找用户目录下的.profile并执行,只对这三个文件中的一个进行执行操作。下面以ubuntu为例,进行介绍。
~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
~/.bash_logout:当每次退出系统(退出bash shell)时执行该文件。另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
3. 需要注意的是:
设置环境变量的时候经常profile和bashrc往哪个写都可以,但它们确实不同。
profile 里面的内容,在系统登录后执行;
bashrc 则是在登录shell时才自动执行。
也即有些不使用shell的账号(如ftp_administrator,等)登陆时候,一些初始化程序或变量是一定要写在profile里面而不是另一个的。
文章评论(0条评论)
登录后参与讨论