bash配置檔案的載入順序

2021-08-21 03:25:05 字數 2868 閱讀 7943

bash配置檔案的載入順序和登陸方式有關,下面先介紹下登陸方式。

登陸式shell:

非登入式shell:

profile類檔案作用

bashrc類檔案作用

登陸式shelll配置檔案載入順序:/etc/profile > .bash_profile > .bash_login > .profile > .bash_logout.

非登入式shell配置檔案載入順序:/etc/bash.bashrc > .bashrc

注: 先載入的配置檔案的配置,可能會被後載入的配置所覆蓋

下面一張圖展示下載入順序, a >b1>b2>b2>c

4.1 在/etc/profile檔案中, 我們可以看到如下**

for i in /etc/profile.d/*

.sh ; do

if [ -r "$i" ]; then

if [ "$" != "$-" ]; then

. "$i"

else

. "$i" >/dev/null 2>&1

fifi

done

簡單的說,我們的/etc/profile這個檔案進行一系列的設定後, 最後需要遍歷下/etc/profile.d這個目錄下的所有sh檔案, 然後source每個檔案,讓每個檔案的設定生效。

4.2 在~/.bash_profile檔案中,我們可以看到如下**

[root@centos6 ~]# cat ~/.bash_profile 

# .bash_profile

# get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi# user specific environment and startup programs

path=$path:$home/bin

export path

我們可以看出來,在~/.bash_profile檔案中, 判斷了~/.bashrc檔案是不是存在,如果存在,也source下,讓其生效。

4.3 在~/.bashrc檔案中,我們可以看到如下**

[root@centos6 ~]# cat ~/.bashrc

# .bashrc

# user specific aliases and functions

alias

rm='

rm -i

'alias

cp='

cp -i

'alias

mv='

mv -i

'# source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

我們可以看出來,先設定了一些自定義的別名設定,然後去source了/etc/bashrc這個檔案。

4.4 在/etc/bashrc檔案中, 我們可以看到如下**

if ! shopt -q login_shell ; then # we'

re not a login shell

# need to redefine pathmunge, it get'

s undefined at the end of /etc/profile

pathmunge () :"in

*:"$1":*)

;;*)

if [ "

$2" = "

after

" ] ; then

path=$path:$1

else

path=$1

:$path

fiesac

} # by default, we want umask to get set. this sets it

for non-login

shell.

# current threshold

for system reserved uid/gids is 200

# you could check uidgid reservation validity

in# /usr/share/doc/setup-*/uidgid file

if [ $uid -gt 199 ] && [ "

`/usr/bin/id -gn`

" = "

`/usr/bin/id -un`

" ]; then

umask

002else

umask

022fi

# only display echos from profile.d scripts

if we are no login

shell

# and interactive -otherwise just process them to set envvars

for i in /etc/profile.d/*

.sh; do

if [ -r "$i" ]; then

if [ "$ps1" ]; then

. "$i"

else

. "$i" >/dev/null 2>&1

fifi

done

unset i

unset pathmunge

fi

我們可以看到,最後一部分**表示在非登入shell中, /etc/bashrc檔案會source /etc/prifile.d目錄下的所有sh檔案

bash配置檔案載入順序

2015 02 12 11 05 206人閱讀收藏 舉報 linux bash配置檔案的分兩大類 1,全域性配置,比如 etc profile,etc profile.d sh,etc bashrc 2,個人配置,比如 bash profile,bashrc 其中,profile類的檔案記錄的是 1...

springboot 配置檔案載入順序

載入本地其他配置檔案 nacos 作為配置中心 有註冊中心nacos 配置 spring boot 有兩種配置檔案 bootstrap.properties bootstrap.yml 定義應用級別的配置 在spring boot 有兩種上下文 bootstrap 應用程式的父上下文 建立配置檔案 ...

MySQL載入配置檔案的順序

mysql5.6啟動時,按照下表,從上往下的順序載入配置檔案 file name purpose etc my.cnf global options etc mysql my.cnf global options sysconfdir my.cnf global options cmake編譯mys...