菜鸟学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加载配置文件的规则稍微复杂一点,可用下图表示(实线代表主流程,虚线代表调用配置文件)

菜鸟学Linux - bash的配置文件的更多相关文章
- 【菜鸟学Linux】Cron Job定期删除Log(日志)文件
以前一直做Windows开发,近期的项目中要求使用Linux.作为小菜鸟一枚,赶紧买了一本经典书<鸟哥的Linux私房菜>学习.最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长 ...
- 菜鸟学Linux命令:lsof命令 查找指定用户、进程、端口打开的文件
lsof,list open files, 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 命令格式:ls ...
- 菜鸟学Linux - 变量基本规则
变量是一个很重要的概念,无论是bash脚本还是其他语言,都是如此.在bash中,创建变量很简单,给变量一个名称即可.默认情况下,变量的值为空.我们可以通过等号为变量赋值.需要注意的是,变量和变量的值不 ...
- 菜鸟学Linux命令:nohup命令启动程序
在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦:另一种方法是仍然用普 ...
- 菜鸟学Linux命令:tar命令 压缩与解压缩
tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件. tar最初被用来在磁带上创建档案,现在,用户可以 ...
- 菜鸟学Linux命令:ssh命令 远程登录
1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用Op ...
- 菜鸟学Linux命令:chmod命令和数字文件权限
chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权限 ...
- 菜鸟学Linux命令:find命令 查找文件
find命令是Linux下最常用的命令之一,灵活的使用find命令,你会发现查找文件变得十分简单. 命令格式 find [指定查找目录] [查找规则(选项)] [查找完后执行的动作] 参数规则 - ...
- 菜鸟学Linux命令:grep配合ls等使用
linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文 ...
随机推荐
- 从零开始的全栈工程师——js篇2.17(属性和节点获取)
DOM 一.节点树状图 Document>documentElement>body>tagname 二.常用的节点类型 元素节点(标签) 文本节点(文本节点) 属性节点(标签里的属性 ...
- window.open()方法详解
, 最基本的弹出窗口代码 window.open('page.html'); 2, 经过设置后的弹出窗口 window.open('page.html', 'newwindow', 'heig ...
- ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题
1.前言 问题:在部分Android机型中使用ArcGIS for Android 10.1.1 API 中文标注导致程序异常崩溃. 说明:手里有两台机器一台是Nexus4,原生系统,版本4.4.4, ...
- ECLIPSE 取消自动更新
经常遇到一开eclipse 时,一直很卡的问题,发现是它一直尝试联网更新东西 ,如maven 所以解决办法 , eclipse 取消自动更新的方法: 1. window --> prefere ...
- php使用GD库实现图片水印和缩略图——生成图片缩略图
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- 微信小程序(底部导航的实现)
详情请看官方文档介绍: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html 在根目录配置文件app.json中配置底部导航: ...
- lnmp一键安装 nginx
官网: https://lnmp.org/install.html 1.下载完整版:http://soft.vpser.net/lnmp/lnmp1.5-full.tar.gz文件大小:715MB M ...
- 如何从github上拉取项目中的指定目录
2010开始,对于GitHub上的每一个Git版本库,现在都可以用SVN命令进行操作,而svn命令则是支持部分检出的. 方法如下: 例如我想下载我的nginxinc/kubernetes-ingres ...
- SqlServer 学习笔记
随机函数 select rand() declare @age int set @age = rand()*100 select @age 数据类型转换 declare @birthday datat ...
- linux用命令行运行matlab的.mat文件
入m文件所在目录后,运行 $ matlab -nodesktop -nosplash -r matlabfile 只用文件名matlabfile,不能添加.m