菜鸟学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中快速的访问某个url
在做项目中经常会遇到这样的需求,自动向后台发送统计日志,也不需要关心返回值,当然了方法有很多,其中一个方法就是使用Ajax. 在这里我要介绍的方法的原理是使用图片,给这个图片符url,这样就会自动的触 ...
- cd进入相关目录的命令
今天不记得怎么进入Linux的根目录了,查询了下顺便复习下其他命令: 1.[root@localhost]#cd /usr 切换至根目录下的文件夹要加"/" 2.[root@loc ...
- hibernate课程 初探单表映射1-2 ORM定义
1 什么是ORM? ORM(Object / RelationShip Mapping) 对象/关系映射 面向对象编程(OOP)最终要把对象信息保存在关系性数据库中,要写好多sql语句.这与面向对象编 ...
- python基础之循环语句
一.if条件语句: 语法: 1.if单分支(单重条件判断) if expression: expr_true_suite 注释:expession为真执行代码expr_true_suite if单分支 ...
- HTTPS与SSL(二)
CA Ca介绍 电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系 ...
- JAXB介绍二
链接上一遍 JAXB介绍一 , 本节主要介绍解析xml的步骤, 下面的例子是在实际项目中运用的, 把它拿出来单独写一个java运行程序. 5. 测试实例 先给出我的代码结构图: 再给出要解析的Scri ...
- 编译出freeswitch的java调用的 jar和so
假设freeswitch 源码路径为 /usr/local/src/freeswitch 1. cd /usr/local/src/freeswitch(源代码的根目录) 执行./configure, ...
- centos7.3.1611安装及初始配置
安装前规划: 主机名称 网络配置 分区配置 分区配置 自定义分区,标准分区 /boot 200M (可选) swap 内存1.5倍到2倍(不大于8G) / 根分区(100G到200G) 其余的备用(数 ...
- 当您在 64 位 Windows 上运行 Regsvr32.exe 时出现错误信息
尝试运行 Regsvr32.exe 注册在 64 位版本的 Windows 32 位动态链接库 (DLL) 时您会收到以下错误消息: 若要解决此问题,从 %SystemRoot%\Syswow64 文 ...
- java cpu使用率高异常排查
1.top命令对cpu进行排序shift+p 2.pwdx pid查找业务进程路径 3.top -Hp pid查看相关负载线程pid 4.printf “0x%x\n” 线程pid // 将线 ...