前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当我们打开shell的时候,会加载哪些配置文件呢?加载的顺序又是怎么样呢?

当我们打开shell的时候,会加载哪些配置文件呢?加载的顺序又是怎么样呢?

作者头像
阿章-python小学生
发布2018-05-18 16:57:44
1.9K0
发布2018-05-18 16:57:44
举报

当我们打开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读取配置文件流程

系统设置文件

只有login shell才读取系统设置文件/etc/profile,它是系统的整体的配置文件,该文件会调用 ①/etc/inputrc用来设置bash的热键,[Tab]是否有声音信息。 ②/etc/profile.d/*.sh,这个目录下的文件定了bash的操作界面、语系以及一些公共的命令别名。 ③/etc/sysconfig/i18n这个文件提供对/etc/profile.d/lang.sh调用,决定bash默认使用何种语系。

用户的个性设置文件

  1. 读取完系统设置文件,开始读取用户的个性设置文件。~目录下有三个隐藏文件~/.bash_profile,~/.bash_login,~/.profile.如果~/.bash_profile存在,则不理会其他两个,如果~/.bash_profile不存在则读取~/.bash_login,如果这两个都不存在则读取~/.profile,个性化配置文件主要是获取用户有关的环境、别名、函数。
  2. 然后如果~/.bashrc存在的话,~/.bash_profile会调用它,所以可以把一些环境设置写入到~/.bashrc中。~目录下还有.bash_history和.bash_logout分别记录了用户的bash命令历史和bash退出时系统为我做什么。
  3. 然后如果/etc/profile存在的话,它会被~/.bashrc调用,这个文件也会被non-login shell读取,该文件的作用是 ①依据不同的UID给出umask值 ②依据不同的UID给出PSI变量 ③调用/etc/profile.d/*.sh的设置 如图:

non-login shell读取配置文件流程

  1. 读取~/.bashrc文件,这个文件也会被non-login shell读取,该文件的作用是 ①依据不同的UID给出umask值 ②依据不同的UID给出PSI变量 ③调用/etc/profile.d/*.sh的设置

所以得到

个人需要的设置写在~/.bashrc文件中即可。由于/etc/profile与~/.bash_profile都是取得login shell的时候才会读取配置文件,所以修改这两个文件的设置后,需要重新登录,相应的配置才能生效,其他的配置可以通过source命令将配置文件的内容读入当前shell环境中。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python全栈布道师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • login shell读取配置文件流程
    • 系统设置文件
      • 用户的个性设置文件
      • non-login shell读取配置文件流程
      • 所以得到
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档