菜鸟学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 )是一种强大的文本搜索工具,它能使用正则表达式搜索文 ...
随机推荐
- java 整型相除得到浮点型
public class TestFloatOrDouble { public static void main(String[] args) { Point num1 = new Point(84, ...
- Flash图表控件FusionCharts调整图表百分比大小
用户可以为图表的宽度和高度设置百分比值,用来替代绝对的像素值. 以百分比的方式调整图表,首先需要更新HTML代码,如下所示: <div id="chartContainer" ...
- 使用C#版OpenCV进行圆心求取
OpenCVSharp是OpenCV的.NET wrapper,是一名日本工程师开发的,项目地址为:https://github.com/shimat/opencvsharp. 该源码是 BSD开放协 ...
- Android商城开发系列(十)—— 首页活动广告布局实现
在上一篇博客当中,我们讲了频道布局的实现,接下来我们讲解一下活动广告布局的实现,效果如下图: 这个是用viewpager去实现的,新建一个act_item.xml,代码如下所示: <?xml v ...
- linux下获取外网IP
使用阿里云或者有多个网卡IP的机器需要取外网IP时,可以用下面这种 wget -qO - ifconfig.co 更多方法参考:https://yq.aliyun.com/ziliao/105999
- Metasploitable渗透测试实战——Windows漏洞 MS08-067复现
Ms08-067 攻防环境: 攻击机:kali ip:198.168.12.212 靶机:Window XP 未打过ms08-067补丁 ip:198.168.12.209
- iOS 常用正则表达式
今天看到一个正则表达式的文章,总结的挺好的,就自己转载一下,我还会陆续加入一些我自己看到常用的正则表达式 (原地址:http://www.code4app.com/blog-721976-112.ht ...
- 【转】操作系统Unix、Windows、Mac OS、Linux的故事
电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...
- JSON对象转成formData对象,formData对象转成JSON对象
在向后端请求时,如果上传的数据里存在file文件对象,需要用到表单提交,这时候我们需要将JSON对象,转成formData对象,具体见代码 const formData = new FormData( ...
- Java Web Application使Session永不失效(利用cookie隐藏登录)
在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...