专栏首页python全栈布道师当我们打开shell的时候,会加载哪些配置文件呢?加载的顺序又是怎么样呢?

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

当我们打开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环境中。

本文分享自微信公众号 - python全栈布道师(gh_f7cbe2f9567b),作者:CheungChan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-10-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2017年8月28日技术日记

    阿章-python小学生
  • 处理只想本地修改配置文件不想提交到远程的shell脚本(修改版)

    阿章-python小学生
  • git常用操作,都在这里了(一)

    阿章-python小学生
  • Shell日常使用中问题总结

    在shell中有单引号、双引号,其中单引号更加的严格,关闭所有有特殊作用的字符,会将里面的内容按照原始的状态输出;双引号,会忽略很多特殊符号,但$、反引号、反斜...

    努力在北京混出人样
  • django-import-export插件使用教程

    顾名思义,这是一个用于处理导入和导出数据的库。django-import-export库支持多种格式,包括xls、csv、json、yaml以及tablib支持...

    菲宇
  • 11-2 环境是如何建立的

    在普通用户看来 ~/.bashrc 可能是最重要的启动文件,因为系统几乎总是要读取。non-login shell 会默认读取 ~/.bashrc ,而大多数l...

    见贤思齊
  • GlusterFS复制卷修复功能测试分析--brick文件丢失

    A上删除 rm -f 2*,A执行heal full,看是否恢复,如果不行,再在B上执行heal full,A上看文件是否恢复。操作期间不要在C上ls。

    党志强
  • 《民国奇探》的弹幕有点逗比,用 Python 爬下来看看

    电视剧《民国奇探》是一部充斥着逗比风的探案剧,剧中主要角色:三土、四爷、白小姐,三土这个角色类似于《名侦探柯南》中的柯南但带有搞笑属性,四爷则类似于毛利小五郎但...

    Python小二
  • 解决easyui combobox赋值boolean类型的值时,经常出现的内容显示的value而不是text的bug

    本来这是一个很简单的combobox赋值,但是当我真正赋值时却出现了问题,经常出现一个bug,就是赋值完,combobox显示的内容是true或者false,而...

    用户1737026
  • php 微信支付分 开发过程 H5商城先享后付

    公司项目需要,在H5商城、小程序商城、APP商城、线下促销场景,推出最新的微信支付分功能。

    宣言言言

扫码关注云+社区

领取腾讯云代金券