菜鸟学Linux - bash的配置文件

bash是各大Linux发行版都支持的shell。当我们登陆bash的时候,虽然我们什么都没做,但是我们已经可以在bash中调用各种各样的环境变量了。这是因为,系统中已经定义了一系列的配置文件,以及加载这些配置文件的规则。下面通过CentOS举例说明。在这之前,我们需要了解两个概念:login shell与non-login shell。很明显,这二者的区别在于需不需要login,同时这两种shell加载配置文件的规则也不相同。

login shell:通俗的讲,当我们登陆shell时,需要输入完整的登陆信息,也就是需要用户名和密码

non-login shell:与login shell相反,登陆shell时不需要输入登陆信息。例如:在现有的bash上,启动一个新的bash;登陆X Window后,启动一个bash。上述二者都是不需要输入登陆信息。

下面我们开始了解bash的配置文件:

/etc/profile:系统级别或者说全局的设置。一般不建议我们去修改这个文件。我们也可以从这个文件的注释中,得到更多的信息(例如,如何自定义配置)。如下图:

/etc/inputrc:为特定的情况处理键盘映射,例如bash的热键。/etc/profile中会判断是否有用户自定义的inputrc,如果没有就将设置INPUTRC=/etc/inputrc (备注:看了CentOS 6.5的/etc/profile,已经没有加载/etc/inputrc的代码了。这点有待考究)

/etc/profile.d/*.sh:一些shell的设置以及用户自定义的配置可以放在这

/etc/sysconfig/i18n:定义了bash使用的语言以及编码

~/.bash_profile、~/.bash_login、~/.profile:这三个文件都是属于用户的自定义文件。然后bash只有读取其中一个并忽略其他两个。规则是,第一个存在,就会忽略后面两个,以此类推。

~/.bashrc:这个文件将由~/.bash_profile加载

具体的配置文件加载了哪些东西以及定义了哪些环境变量,可以打开具体的配置文件查看。说完了这些配置文件,就来说说login shell与non-login shell加载配置文件的规则了。

non-login shell加载配置文件的规则很简单,它仅仅加载~/.bashrc。(如果/etc/bashrc存在,那么/etc/bashrc也会被加载,如下图所示)

login shell加载配置文件的规则稍微复杂一点,可用下图表示(实线代表主流程,虚线代表调用配置文件)

时间: 2024-07-31 14:33:02

菜鸟学Linux - bash的配置文件的相关文章

【菜鸟学Linux】Cron Job定期删除Log(日志)文件

以前一直做Windows开发,近期的项目中要求使用Linux.作为小菜鸟一枚,赶紧买了一本经典书<鸟哥的Linux私房菜>学习.最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长很快,所以需要用脚本(Bash scripts)删除过期的Log文件. 使用Linux下的Cron Job可以很好的解决这个问题. 什么是Cron Job? 建立Cron Job需要用到命令crontab,维基百科定义:crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.

菜鸟学Linux - 文件/文件夹的隐藏属性

文件/文件夹居然还有隐藏属性?没错,隐藏属性对于文件/文件夹的安全很重要.好比如说,我们需要使用”鉴定符“来揭开装备的隐藏属性:在Linux中chattr/lsattr就是“鉴定符”. chattr基本格式为:chattr +-=[acdeijstuADST] .+表示增加某种隐藏属性:-表示取出某种隐藏属性:=表示直接设置隐藏属性.man chattr可知: The letters ‘acdeijstuADST’ select the new attributes for the files:

【菜鸟学Linux】gzip解压报错:gzip: stdin has more than one entry--rest ignored

lz Linux菜鸟一枚,今天想用gzip解压下压缩包,据说Linux默认不支持rar压缩,需要安装组件. so,lz我特意zip压缩了一个文件上传上去解压,记得之前测试的时候都ok的正常解压:tar -zxvf  XXX.zip 不知道今天啥情况..难道是我之前重新搭建过环境的原因,用tar就报错.. 然后lz我多方查证,终于解决了问题,特来分享,不喜勿喷! 解决方法:改用unzip解压:unzip XXX.zip 报错原因:ar命令也是调用了gunzip命令的 [菜鸟学Linux]gzip解

菜鸟学Linux - Hard Link与Symbolic Link

在学习Hard Link与Symbolic Link之前,需要大概了解一下inode与data block.在Linux的文件系统中,一个文件对应一个inode与若干个data block.inode与data block都通过编号来标识,例如第30333个inode,第20334个data block.inode中记录着文件的属性,如文件的所有者.所属用户组.对文件的权限以及指向data block的指针.文件的真正内容是存放在data block中的.一个文件的内容,被分割成若干部分保存在不

菜鸟学linux之五Linux文件与目录管理第二节

环境变量PATH 在环境变量之前先介绍一个命令 which, 它用来查找某个命令的绝对路径. [[email protected] ~]# which rmdir /bin/rmdir [[email protected] ~]# which rm alias rm='rm -i' /bin/rm [[email protected] ~]# which ls alias ls='ls --color=auto' /bin/ls 'rm' 和 'ls' 是两个特殊的命令,使用alias 命令做了

菜鸟学Linux 第002篇笔记 Linux简单介绍

Linux的基本原则: 1.由目的单一的小程序组成: 组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避免捕获用户接口(尽量不和用户交互): 4.配置文件保存为纯文本格式: Linux和用户的交互接口 GUI接口:Graphic User Interface CLI接口:Command-Line Interface 命令提示符,prompt, bash(shell) #: root $: 普通用户 交互接口分类和所使用的交互软件 Linux GUI: Gnome:C开发 KDE:C++ Xf

菜鸟学Linux之:用户账户管理下的/etc/passwd和/etc/shadow

用户账户管理主要有如下几个配置文件:/etc/passwd./etc/shadow./etc/group和用户邮箱/var/spool/mail,今天着重要说明一下/etc/passwd和/etc/shadow两个配置文件/etc/passwd:记录了Linux系统上所有的帐号/etc/shadow:记录了所有账号对应的密码下面来了解下配置文件中各段分别表示什么意思,如图http://i2.51cto.com/images/blog/201805/26/a934831143e72c9633d09

菜鸟学Linux之:CentOS7下的单用户模式

作为Linux初学者的我们,大家有时候可能会忘记root的密码从而使自己手忙脚乱,有些人可能不得已会选择重装系统,学了这个操作后就可以轻轻松松搞定忘记密码的问题如图在已打开的虚拟机选择重启虚拟机在此界面按上下箭头,然后按字母"e"进入grub页面寻找"Linux16"的那行,将字符"ro"改为"rw",然后将"rhgb quiet"删除,在"LANG=en_US.UTF-8"后写入&qu

菜鸟学Linux 第004篇笔记 &nbsp; &nbsp; &nbsp; Linux时间和帮助命令

一.时间管理date date: 显示当前时间 查看的是系统时间 date MMDDHHMMYY.SS 修改当前的系统时间 月日时分年.秒 date +FORMAT 以格式显示时间日期 +%D display date; +%Y display year; +%S display second; +%M display minute; +%n a newline; +%m month; hwclock: 硬件时间 hwclock - query and set the hardware cloc