bashrc和配置文件的区别
要弄清楚bashrc和profile之间的区别,首先需要了解什么是交互式shell和非交互式shell,什么是log in shell和非log in shell。
交互模式是指shell等待你的输入并执行你提交的命令。 这种模式之所以称为交互式,是因为shell与用户交互。 这个模式也为很多用户所熟知。 登录、执行命令、注销。 疏忽的钥匙信号下降了,壳牌也结束了。 外壳也可以在另一种模式(称为非交互模式)下运行。 在这种模式下,shell不会与你交互,而是读取并执行存储在文件中的命令。 如果读到文件的末尾,shell也会退出。
bashrc和profile用于存储用户的环境信息,bashrc用于交互式非登录shell,profile用于交互式loginshell。 系统中有很多bashrc文件和profile文件。 以下逐一介绍。
/etc/pro此文件为系统中的每个用户设置环境信息,并在第一个用户登录时运行。
从/etc/profile.d目录中的配置文件收集shell设置。
/etc/bashrc:会为运行bash shell的所有用户运行此文件。 当bash shell打开时,将读取此文件。 某些linux版本的/etc目录中已经没有bashrc文件。
~/. pro每个用户都可以使用此文件输入自己的shell信息。 用户登录的时候,那个
文件只运行一次! 缺省情况下,将设置一些环境变量并运行用户的. bashrc文件。
~/.bashrc:此文件包含特定于某个用户的bash shell的bash信息,并在该用户登录和每次打开新shell时读取。
此外,设置为/etc/profile的变量(全局)可以影响任何用户,但(例如,设置为~/.bashrc的变量)本地只能继承位于/etc/profile的变量。 他们是“亲子”关系。
有网友总结说:
/etc/profile,/etc/bashrc是系统全局环境变量的设置
~/.profile,~/.bashrc设置用户主目录中的专用环境变量
如果在登录系统时获取shell进程,则读取环境配置文件包括三个步骤
1最初读取的是全局环境变量配置文件/etc/profile,根据其内容读取以下附加设定的文档
/etc/profile.d和/etc/inputrc
2然后,根据用户帐户的不同,读取~/.bash_profile,如果无法读取,则读取~/.bash_login,如果也无法读取,则读取
~/.profile,这三个文档设定基本相同,读取有优先关系
3然后根据用户帐户读取~/.bashrc
关于~/.profile和~/.bashrc的区别
具有定制功能
~/.profile可以设定本用户自己的路径、环境变量等,登录时只能执行一次
~/.bashrc也是用户自己的配置文档,可以设定路径和命令别名。 每次运行shell脚本时使用一次