华为二面被问“Linux系统配置文件”,教你一招怒怼面试官!

Linux系统配置文件详解

区别


首先先总体看一下区别

============
/etc/profile

此文件为系统的每个用户设置环境信息,对所有用户有效

===========
/etc/bashrc (ubuntu为 /etc/bash.bashrc)

为每一个运行bash shell的用户执行此文件.对所有用户有效

===============
~/.bash_profile (ubuntu为 ~/.profile)

类似/etc/profile,但仅仅针对当前用户有效

=========
~/.bashrc

类似/etc/bashrc,但仅仅针对当前用户有效

==============
~/.bash_logout

当每次退出系统(退出bash shell)时,执行该文件. 

  • Linux的Shell种类众多,常见的有:
    Bourne Shell(/usr/bin/sh或/bin/sh)、
    Bourne Again Shell(/bin/bash)、
    C Shell(/usr/bin/csh)、
    K Shell(/usr/bin/ksh)、
    Shell for Root(/sbin/sh)等等。
  • 不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。

login和non login


loginnon login指的是用登录或非登录的方式打开bash shell,不同的方式的读取的配置文件不同,可以归纳为下表:

login non login
全局 /etc/profile /etc/bashrc
单用户 ~/.bash_profile ~/.bashrc

执行顺序


登录Linux时执行

在 刚登录Linux时,首先启动 /etc/profile文件,然后再启动用户目录下的 ~/.bash_profile

再执行用户的bash设置

如果~/.bash_profile文件存在的话,会执行用户的 ~/.bashrc文件。

#if running bash

if [ -n "$BASH_VERSION" ]; then

    # include .bashrc if it exists

    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

同样~/.bashrc中,一般还会在文件的前面有以下代码,来执行/etc/bashrc

if [ -f /etc/bashrc ] ; then
 . /etc/bashrc

所以,~/.bashrc会调用/etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。

执行顺序为:

  • /etc/profile
  • ~/.bash_profile | ~/.bash_login | ~/.profile
  • ~/.bashrc
  • /etc/bashrc
  • ~/.bash_logout

区别和联系


  • 在 /etc目录是系统级(全局)的配置文件,当在用户主目录下找不到~/.bash_profile 和~/.bashrc时,就会读取这两个文件。
  • /etc/profile 中设定的变量(全局)的可以作用于任何用户,而 ~/.bashrc 中设定的变量(局部)只能继承 /etc/profile 中的变量,他们是“父子”关系。
  • ~/.bash_profile 是交互式、login 方式进入 bash 运行的; ~/.bashrc 是交互式 non-login 方式进入 bash 运行的。通常二者设置大致相同,所以通常前者会调用后者。设置生效:可以重启生效,也可以使用命令:source。
  • ~/.bash_history是bash shell的历史记录文件,里面记录了你在bash shell中输入的所有命令。可通过HISSIZE环境变量设置在历史记录文件里保存记录的条数。

其他


下面是几个例子:

  1. 图形模式登录时,顺序读取:/etc/profile~/.profile
  2. 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc~/.bashrc
  3. 文本模式登录时,顺序读取:/etc/bash.bashrc/etc/profile~/.bash_profile
  4. 从其它用户su到该用户,则分两种情况:
    (1)如果带-l参数(或-参数,–login参数),如:su -l username,则bash是lonin的,它将顺序读取以下配置文件:/etc/bash.bashrc/etc/profile~ /.bash_profile
    (2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc~/.bashrc
  5. 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout
  6. 执行自定义的shell文件时,若使用“bash -l a.sh”的方式,则bash会读取行:/etc/profile~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于bash shell),则不会读取上面的任何文件。

分类: [Linux]
标签: [Linux]

在这里插入图片描述
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容