全局和个人配置
bash的配置文件按生效范围划分可分为两类:
- 全局配置:对全局(所有用户生效)的配置;
- 个人配置:只对单个用户生效的配置;
全局配置
全局配置对应的文件如下:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
Cent OS 主机有一种特性,如果有些应用程序的文件过大时, 可将一个配置文件分割为多个片段,每个片段用来保存一部分配置。如
/etc/profile.d
目录下的每个*.sh
文件也都是配置文件的一部分。
个人配置
个人配置对应的文件如下:
~/.bash_profile
~/.bashrc
profile和bashrc类配置
bash 的配置文件按功能划分也可分为两类:
- profile 类:为交互式登录的 shell 提供配置;
- bashrc 类:为非交互式登录的 shell 提供配置;
交互式登录:
- 直接通过终端输入账号密码登录;
- 使用
su - USERNAME
或su -l USERNAME
切换登录;非交互式登录:
- 使用
su USERNAME
切换登录;- 在图形界面下打开的终端;
- 执行脚本;
交互式登录有可能会用到一部分 bashrc 类的配置文件,而非交互式登录也有可能用到一部分 profile 类的配置文件。
profile类配置
profile 类配置对应的文件如下:
- 全局:
/etc/profile
、/etc/profile.d/*.sh
; - 个人:
~/bash_profile
;
功用
- 用于定义环境变量;
- 用于运行命令或脚本;
例:让每个用户登录时显示提示欢迎信息。
因要求是 “让每个用户”,所以对应配置需要定义在全局,这里以全局的 /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 类配置对应的文件如下:
- 全局:
/etc/bashrc
; - 个人:
~/.bashrc
;
功用
- 定义命令别名;
- 定义本地变量;
例:让 CentOS 6 的 grep
命令默认拥有高亮效果。
在 /etc/bashrc
文件中添加如下内容即可:
alias grep='grep --color=auto'
配置文件的读取顺序
对于交互式登录来讲读取的配置文件及顺序如下:
/etc/profile
/etc/profile.d/*.sh
~/bash_profile
~/.bashrc
/etc/bashrc
对于非交互式登录来讲读取的配置文件即顺序如下:
~/.bashrc
/etc/bashrc
/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
评论区