侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 747 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

Linux基础(24)之bash的配置文件

zze
zze
2019-10-22 / 0 评论 / 0 点赞 / 313 阅读 / 3139 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

全局和个人配置

bash的配置文件按生效范围划分可分为两类:

  1. 全局配置:对全局(所有用户生效)的配置;
  2. 个人配置:只对单个用户生效的配置;

全局配置

全局配置对应的文件如下:

  • /etc/profile
  • /etc/profile.d/*.sh
  • /etc/bashrc

Cent OS 主机有一种特性,如果有些应用程序的文件过大时, 可将一个配置文件分割为多个片段,每个片段用来保存一部分配置。如 /etc/profile.d 目录下的每个*.sh 文件也都是配置文件的一部分。

个人配置

个人配置对应的文件如下:

  • ~/.bash_profile
  • ~/.bashrc

profile和bashrc类配置

bash 的配置文件按功能划分也可分为两类:

  1. profile 类:为交互式登录的 shell 提供配置;
  2. bashrc 类:为非交互式登录的 shell 提供配置;

交互式登录:

  • 直接通过终端输入账号密码登录;
  • 使用 su - USERNAMEsu -l USERNAME 切换登录;

非交互式登录:

  • 使用 su USERNAME 切换登录;
  • 在图形界面下打开的终端;
  • 执行脚本;

交互式登录有可能会用到一部分 bashrc 类的配置文件,而非交互式登录也有可能用到一部分 profile 类的配置文件。

profile类配置

profile 类配置对应的文件如下:

  • 全局:/etc/profile/etc/profile.d/*.sh
  • 个人:~/bash_profile

功用

  1. 用于定义环境变量;
  2. 用于运行命令或脚本;

例:让每个用户登录时显示提示欢迎信息。
因要求是 “让每个用户”,所以对应配置需要定义在全局,这里以全局的 /etc/profile.d/*.sh 配置为例。
新建 /etc/profile.d/welcome.sh 文件,内容如下:

echo "hello $UID,your home is $HOME, hahaha"

重新登录,输出信息如下:

Connecting to 192.168.202.138:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Sun Sep 15 15:09:56 2019 from 192.168.202.1
hello 0,your home is /root, hahaha
[root@localhost ~]# 

bashrc类配置

bashrc 类配置对应的文件如下:

  1. 全局:/etc/bashrc
  2. 个人:~/.bashrc

功用

  1. 定义命令别名;
  2. 定义本地变量;

例:让 CentOS 6 的 grep 命令默认拥有高亮效果。
/etc/bashrc 文件中添加如下内容即可:

alias grep='grep --color=auto'

配置文件的读取顺序

对于交互式登录来讲读取的配置文件及顺序如下:

  1. /etc/profile
  2. /etc/profile.d/*.sh
  3. ~/bash_profile
  4. ~/.bashrc
  5. /etc/bashrc

对于非交互式登录来讲读取的配置文件即顺序如下:

  1. ~/.bashrc
  2. /etc/bashrc
  3. /etc/profile.d/*.sh

如果一个变量在多个配置文件中有配置,那么越往后的配置将会覆盖前面的相同配置。

问题

1、定义对所有用户都生效的别名。
/etc/bashrc 中定义别名即可。
2、让所有用户的 PATH 变量的值多出 /usr/local/apache2/bin 路径。
编辑 /etc/profile 文件或在 /etc/profile.d 下新建任意 sh 文件 ,添加如下内容:

PATH="$PATH:/usr/local/apache2/bin"
export PATH
0

评论区