当我们打开shell的时候,会加载哪些配置文件呢?加载的顺序又是怎么样呢?登录linux的shell其实分两种,login shell和non-login shell,那么login shell 和non-login shell有什么区别呢?
用户输入用户名密码shell才启动,这是login shell,还有一种non-login shell,不需要登录就可以获取bash页面,例如x-window环境下启动终端,不需要输入用户名密码,这是non-login shell。
只有login shell才读取系统设置文件/etc/profile,它是系统的整体的配置文件,该文件会调用 ①/etc/inputrc用来设置bash的热键,[Tab]是否有声音信息。 ②/etc/profile.d/*.sh,这个目录下的文件定了bash的操作界面、语系以及一些公共的命令别名。 ③/etc/sysconfig/i18n这个文件提供对/etc/profile.d/lang.sh调用,决定bash默认使用何种语系。
个人需要的设置写在~/.bashrc文件中即可。由于/etc/profile与~/.bash_profile都是取得login shell的时候才会读取配置文件,所以修改这两个文件的设置后,需要重新登录,相应的配置才能生效,其他的配置可以通过source命令将配置文件的内容读入当前shell环境中。