系统和个人设置文件

简介:

bash的配置文件

 来自阿里巴巴集团的资深Linux系统专家赵鑫磊《Linux就是这个范儿》

  

       输入登录用户名和密码后shell才启动,这是login shell。还有一种non-login shell,不需要做重复的登录操作获取bash界面。例如在x-window环境下来启动终端,测试终端界面不需要再次输入账户与密码,这个bash环 境就是non-login shell。login和non-login有什么区别呢?那得先从bash的配置文件说起。

1. 系统设置文件

只有login shell才会读取系统设置文件/etc/profile。它是系统整体的配置文件,该配置文件里包含很多重要的变量信息,每个用户登录取得bash后一 定会读取这个配置文件。如果你想要所设置的环境变量对所有用户起作用,就要在这个地方设置。该文件主要有以下设置变量:

#PATH:会根据UID决定PATH变量要不要含有sbin的系统指令目录;
 

pathmunge () {  if !echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then          if [ "$2" = "after" ] ; then                  PATH=$PATH:$1              else                  PATH=$1:$PATH          fi      fi  }  ……

#USER:根据用户的账号设置此变量内容;
 

USER="`id -un`" LOGNAME=$USER

#MAIL:根据账户设置/var/spool/mail/账号名称;
 

MAIL="/var/spool/mail/$USER"

#依据主机的hostname指令设置此变量的内容;
 

HOSTNAME=`/bin/hostname`  HISTSIZE=2000

#HISTSIZE:历史命令记录数。
 

HISTTIMEFORMAT='[%F %T] '

除了完成以上设置,/etc/profile还会调用如下的外部设置文件:

/etc/inputrc:用来设置bash的热键、[Tab]是否有声音等信息。

/etc/profile.d/*.sh:这个目录下的文件规定了bash的操作界面、语系以及一些公共的命令别名。

/etc/sysconfig/i18n:这个文件是供/etc/profile.d/lang.sh调用,决定bash默认使用何种语系。

2. 用户的个性设置文件

login shell读完了/etc/profile配置文件后,接下来就会读取用户的个人配置文件。个人配置文件主要有三个隐藏文件,依次是:~ /.bash_profile 、/.bash_login 和 ~/.profile。如果~/.bash_profile存在,那么bash就不会理睬其他两个文件。如果~/.bash_profile不存 在,bash才会读取~/.bash_login。而前两个文件都不存在的话,bash才会读取~/.profile文件。个人设置文件主要是获取与用户 有关的环境、别名和函数等。如果~/.bashrc存在的话,~/.bash_profile还会调用它,所以你可以把你的一些环境设置写到~ /.bashrc这个文件中。在用户目录下,还有两个个人文件~/.bash_history和~/.bash_logout。默认情况下,历史命令就记 录在bash_history中。每次登录bash后,bash读取这个文件,将所有的历史命令读入内存。?~/.bash_logout告诉系统在离开 “我”之前需要帮“我”做什么。默认情况下,文件只让bash清掉屏幕的消息。你可以添加一些信息到在这个文件中,例如备份要求等。

3. 用户的通用设置

系统层的函数、别名和环境等设置一般在/etc/profile。但是对于非交互的non-login shell,我们也希望通过~./bashrc做一些的设置。如果/etc/bashrc存在的话,它会被~./bashrc调用。它的主要工作有:

(1)依据不同的UID给出umask值

(2)依据不同的UID给出PS1变量

(3)调用/etc/profile.d/*.sh的设置

图2.7和图2.8分别展示了login shell和non login shell的整个配置文件处理流程:

 

个人需要的设置写在“~./bashrc”文件中即可。由于/etc/profile与~/.bash_profile都是在取得login shell的时候才会读取配置文件,所以修改这两个文件中的设置后,需要再登录相应的配置才能生效。其他的配置可以通过source命令将配置文件的内容 读入当前shell环境中。


本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1734451


相关文章
|
存储 API 数据库
uniapp APP自动更新组件
uniapp APP自动更新组件
1153 1
|
网络协议 安全 Linux
DNS 分析神器:dnsenum 保姆级教程(附链接)
DNS 分析神器:dnsenum 保姆级教程(附链接)
线性回归 特征扩展的原理与python代码的实现
在线性回归中,多项式扩展是种比较常见的技术,可以通过增加特征的数量和多项式项的次数来提高模型的拟合能力。 举个例子,多项式扩展可以将一个包含 n 个特征的样本向量 x 扩展为一个包含 k 个特征的样本向量,其中 k 可以是 n 的任意多项式。例如,如果我们使用二次多项式扩展,可以将样本向量[x1, x2]扩展为一个包含原始特征和交叉项的新特征向量,例如 [x1, x2, x1^2, x2^2, x1*x2]。这些新特征可以捕捉到更丰富的特征组合和非线性关系,从而提高模型的拟合能力。
|
开发工具 git
【Gitee使用】
【Gitee使用】
【Gitee使用】
|
存储 网络协议 流计算
|
NoSQL Java 关系型数据库
Java基础内容之分布式锁
在单机环境下多线程操作共享数据时候回用到锁的概念,因为是单机可以直接使用jdk提供的锁机制就可以满足。 但是在微服务场景下,因为是多服务共享数据,此时jdk提供的锁就不能再使用了。于是乎就有了分布式锁。 本文介绍常见的几种可以使用的生产的分布式锁
405 0
|
Cloud Native 云计算
即将开幕!阿里云飞天技术峰会邀您一同探秘云原生最佳实践
我们将于 2022 年 8 月 11 日,正式举办阿里云飞天技术峰会!此次峰会,我们将与行业内众多高新技术领域的领军企业,共同探讨企业如何在新一代的云计算体系架构之上,激活在业务、技术、产品三个层面的内生动力,找到新的增长点和竞争力。
即将开幕!阿里云飞天技术峰会邀您一同探秘云原生最佳实践
|
算法
信用评分系统运行原理下篇(1)
信用评分系统运行原理下篇(1)
297 0
信用评分系统运行原理下篇(1)
|
网络安全
05-rsync与ssh访问流程区别
ssh访问流程 1.首先使用ssh root@172.16.1.41:/backup去请求172.16.1.41服务器的backup目录 2.当请求到达1.41服务器时,去判断/etc/passwd文件是否有root这个用户,如果存在则根据root用户的权限去访问对应的/backup目录 rsync访问流程 1.首先使用rsync -avz rsync_backup@172.16.1.41::backup去请求1.41服务器的backup模块 2.请求到达服务器时,服务器会判断/etc/rsync.password文件验证rsync_backup用户是否存在,如果存在就将虚拟用于程序
283 0
05-rsync与ssh访问流程区别
|
存储 Arthas 监控
Java面试准备-JVM篇
Java面试准备-JVM篇
219 0