Linux系统profile、bashrc、bash_profile等环境设置文件的使用
一、前言
关于bash的环境设置文件,分为系统设置和个人设置,一般来说建议用户直接修改个人的设置。
本文测试环境为:centos6.5.
二、系统设置值
1. /etc/sysconfig/i18n
这个文件设置语系数据,一般只有几行:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
用户自己的语系设置建议不要在这里修改。
2. /etc/profile
这个文件设置了几个重要的变量,如PATH、USER、MAIL、HOSTNAME、HISTSIZE、umask等,可以在这里设置总体的PATH等信息,同时也规划了/etc/profile.d这个目录。
题外话:关于/etc/profile.d的规划,在脚本里面有一句:“if [ "${-#*i}" != "$-" ]; then”,让人丈二和尚摸不着头脑,关于这个语句相关的问题,可以看另外一篇文章:”$-”与shell默认选项。
对这个文件必须小心对待,因为所有用户都会用到,可以将HISTSIZE(历史命令记录条数)设置为50,比较安全。
3. /etc/bashrc
确定umask和PS1(命令提示符)的功能和内容。
4. /etc/profile.d/*.sh
/etc/profile.d是一个目录,针对bash和C-shell规范了一些数据。譬如,针对颜色、语系,vim及which等命令进行了一些附加设置,如alias之类的规范值。可以自行设置一些具有*.sh文件名的文件来设定自己的系统设置值。
5. /etc/man.config
文件的内容确定了使用man的时候,去哪里查看数据的路径设置。一般是在使用tarball方式安装软件时,需要手动把该软件的man page所在的路径,手动添加到这个文件里。
这就是系统设置常用的几个文件,通常设置完这几个文件需要重启系统,或者使用source命令重新读入。
三、个人设置值
个人设置文件一般放在个人家目录的几个隐藏文件中。
1. ~/.bash_profile,~/.bash_login,~/profile
这三个文件一般只要一个就可以了,默认是~/.bash_profile,这个文件可以定义个性化的路径PATH与环境变量等等,这三个文件的读取顺序是:先读取~/.bash_profile,找不到就读~/.bash_login,然后才是~/profile。
2. ~/bashrc
同样也是定义个性化设置,区别是,在每次执行shell脚本的时候,都会重新读取这个文件,所以是最完整的,而~/.bash_profile只在登录的时候才读取一次。
3. ~/.bash_history
记录历史命令的文件,记录的条数与HISTSIZE的设置有关。每次登录bash之后,bash会先读取这个文件,把所有的历史命令读入内存。
4. ~/.bash_logout
这个文件记录,“当我注销bash后,系统再帮我做完什么操作后才离开”,可以将一些备份或者认为重要的工作(如清空暂存盘)写到这个文件中。
四、设置文件的读取顺序
1. 先读取/etc/profile,在根据/etc/profile的规划,读取其他的附加设置文件,如/etc/profile.d目录下是文件
2. 根据不同的用户,到家目录去读取~/.bash_profile,~/.bash_login,~/profile之一
3. 根据不同的用户,到家目录去读取~/.bashrc
可以看到,登录bash之后,最终读取的设置文件是~/.bashrc,也就是说这个文件里的设置值会是最终的设置值。
五、登录shell与非登录shell
1. 登录shell
当用户登录Linux系统时,所取得的那个shell。
2. 非登录shell
登录后,再去执行其他shell,其他shell就是非登录shell,如登录Linux之后,想执行一些数值模拟工作,执行了csh这个shell,这时就取得了非登录shell了。
3. 登录shell和非登录shell的差异
读取的环境设置文件不同。登录shell会读取~/.bash_profile,~/.bash_login,~/profile之一,而非登录shell读取的就仅有~/.bashrc,不过现在很多版本的Linux都会将~/.bash_profile的内容指向~/.bashrc中,这样比较简单。
六、小结
一般管理系统的时候,都需要跟各种环境变量打交道,这个时候就必须要修改设置文件才能让自己的个性化设置起作用,一般不建议修改系统的设置文件,最好还是修改自己的设置文件,而由于在读取设置文件中,~/.bashrc是最后一个读取的文件,所以一般建议在这个文件添加自己的个性化设置。
七、参考
《鸟哥的Linux私房菜_基础学习篇》(第二版)
(完)
Linux系统profile、bashrc、bash_profile等环境设置文件的使用的更多相关文章
- linux /etc/profile bashrc bash_profile
文件: /etc/profile ~/.bashrc 和 ~/.bash_profile 的使用区别: /etc/profile: 全局 环境变量等,在机器重启后执行一次, 用于设置环境变量,更 ...
- profile bashrc bash_profile之间的区别和联系
profile bashrc bash_profile之间的区别和联系 博客分类: Linux 执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bas ...
- Linux系统VPS/服务器安装WINDOWS桌面环境可以采用的几个方法
我们公司的几个项目需要在WINDOWS桌面类型的界面操作,哪怕仅有一个浏览器远程操作也是可以的,我们运维部门得到的任务就是需要能在已有的Linux系统的VPS.服务器环境中能够远程操作,至少需要能可以 ...
- profile,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part 2
profile,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part 2 by:授客 QQ:103355312 ...
- 实验四 Linux系统搭建C语言编程环境
项目 内容 这个作业属于那个课程 <班级课程的主页链接> 这个作业的要求在哪里 <作业要求链接地址> 学号-姓名 17043220-万文文 作业学习目标 1).Linux系统下 ...
- /etc/profile、~/.bash_profile等几个文件的执行过程
/etc/profile.~/.bash_profile等几个文件的执行过程 摘自:http://blog.chinaunix.net/uid-14735472-id-3190130.html 分类 ...
- linux系统开机自动挂载光驱 和 fstab文件详解
Linux 通过 UUID 在 fstab 中自动挂载分区 summerm6关注 2019.10.17 16:29:00字数 1,542阅读 607 https://xiexianbin.cn/lin ...
- Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式)
Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装MySQL5.7.21 数据库安装文件夹为 /home/devil/mysql 现 ...
- linux环境变量设置 以及 source命令 Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程 Linux 设置环境变量
定制环境变量 环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell.对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell.环境变量文件:/etc/profil ...
随机推荐
- DB time VS. DB CPU
如何行之有效地展示系统负载在做系统调优的时候是必不可少的技巧.通常我们会使用Oracle提供的Time Model,比如我们需要作出类似于下面这样的趋势图来展示系统负载的高低. 这样的趋势图可以直接使 ...
- 自定义元素(custom elements)
记录下自定义html自定义元素的相关心得: 浏览器将自定义元素保留在 DOM 之中,但不会任何语义.除此之外,自定义元素与标准元素都一致 事实上,浏览器提供了一个HTMLUnknownElement, ...
- NetCore下模拟和使用Modbus工业通信协议
Tips: 1.目前NetCore下与Modbus通信的框架主要选择了 Modbus.Net https://github.com/parallelbgls/Modbus.Net 2.modbus是 ...
- Windows Driver Kit Version 7.1.0 ( 也就是 7600.16385.1 ) 下载地址
Windows Driver Kit Version 7.1.0 ( 也就是 7600.16385.1 ) 下载地址 http://download.microsoft.com/download/4/ ...
- 【转】使用JMeter做性能测试的心得
企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享 ...
- Sentinel限流示例:编码和注解限流
一.Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. Sentine ...
- golang的吐槽
烂到极致的包管理:简单清晰的包管理机制是任何一门语言都需要具备的.后起之秀的golang,在众多成熟的其他语言包管理方式,居然做成这样,简直人间地狱.
- View.findViewById()和Activity.findViewById()区别
在网上看见View.findViewById() 和 Activity.findViewById()执行效率不一样 使用Activity.findViewById()如: TextView tv_in ...
- python开发_python中字符串string操作
在python中,对于字符串string的操作,我们有必要了解一下,这样在我们的以后的开发中会给我们带来很多方便 下面是我学习的笔记: #python-string #python中的字符串用单引号' ...
- IAR安装破解教程
主要讲解IAR软件安装及破解使用 1.下载安装包.注册机 2.点击安装程序 ~ 点击第二个选项进行安装 ~ 然后一直next,再选择安装路径 继续next开始安装,等个五分钟左右即可安装完成 2.破解 ...