Linux Shell 環境變數配置檔案

2021-10-04 12:23:10 字數 3998 閱讀 5763

研究學習 linux shell 的系列文章.

這篇文章主要以 centos 為例講環境變數的配置檔案.

變數型別:

環境變數在命令列中修改只能臨時生效,把它寫入配置檔案才能永久生效. path、histsize、ps1、hostname 等環境變數寫入對應的環境配置檔案,在登陸 shell 時自動載入生效.

source命令

$ source 配置檔案

$ . 配置檔案
修改配置檔案後,必須登出重新登陸才能生效.

使用source命令可以不用重新登陸,立即啟用配置檔案

環境變數配置檔案中主要是定義對系統操作環境生效的系統預設環境變數,如 path 等. 不同發行版,配置檔案和載入過程有所區別.

centos 中登陸時載入的配置檔案

2.1 環境變數配置檔案的載入過程

centos 中環境變數配置檔案的載入過程可以用下圖概括,它有兩種方式:

1.普通的正常登陸過程

輸入使用者名稱密碼後,系統從/etc/profile檔案開始,先按照路線 1

◯\text

1◯,後按照2

◯\text

2◯,最終進入命令提示符介面:

2.非登陸過程:例如 su 命令

su 命令切換使用者後,系統從/etc/bashrc檔案開始,先按照路線 1

◯\text

1◯,後按照2

◯\text

2◯,最終進入命令提示符介面:

2.2 環境變數配置檔案的具體作用

1./etc/profile的作用:

定義環境變數:

umask:

呼叫/etc/profile.d/*.sh檔案

53 行將之前定義的變數宣告為環境變數:

export path user logname mail hostname histsize histcontrol    # line 53
59行 ~ 63行設定系統預設許可權:

# by default, we want umask to get set. this sets it for login shell

# current threshold for system reserved uid/gids is 200

# you could check uidgid reservation validity in

# /usr/share/doc/setup-*/uidgid fileif[

$uid -gt 199 ]&&[

"`/usr/bin/id -gn`"=

"`/usr/bin/id -un`"]

;then

umask 002

else

umask 022

fi

umask # 檢視系統預設許可權

注意:檔案最高許可權為 666

目錄最高許可權為 777

許可權不能使用數字進行換算,而必須使用字母

umask 定義的許可權,時系統預設許可權中準備丟棄的許可權

rw-rw-rw-    # 666

----w--w- # 022

= rw-r--r-- # 644

rw-rw-rw-    # 666

----wx-wx # 033

= rw-r--r-- # 644

rwxrwxrwx    # 777

----w--w- # 022

= rwxr-xr-x # 755

65行 ~ 73行 呼叫/etc/profile.d/*.sh檔案

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ;

doif

[ -r "$i"];

thenif[

"$"!=

"$-"];

then

."$i"

else

."$i"

>/dev/null

fifidone

unset i

unset -f pathmunge

[user@centos ~]# ls /etc/profile.d/

256term.csh abrt-console-notification.sh colorgrep.csh colorls.csh csh.local lang.sh less.sh vim.csh which2.csh

256term.sh bash_completion.sh colorgrep.sh colorls.sh lang.csh less.csh sh.local vim.sh which2.sh

[user@centos ~]# cat /etc/locale.conf 

lang="en_us.utf-8"

2.~/.bash_profile的作用

3.~/.bashrc的作用

4./etc/bashrc的作用

在上述配置檔案新增自定義環境變數設定均可生效,一般在~/.bashrc檔案中修改設定.

2.1 其它的環境變數配置檔案

1.~/.bash_logout的作用

在登出當前 shell 時呼叫,預設為空,可自行新增命令,例如清除歷史命令:history -c.

2..bash_history

儲存歷史命令,與history命令有一定差異

3.轉義符

作用\d

顯示當前系統日期

\s顯示作業系統名稱

\l顯示登陸的終端號,這個比較常用

\m顯示硬體體系結構,如i386、i686等

\n顯示主機名

\o顯示網域名稱

\r顯示核心版本

\t顯示當前系統時間

\u顯示當前登陸使用者的序列號

4.5.建議將歡迎資訊寫在/etc/motd中,建議寫成警告資訊.

Linux Shell環境變數

shell的環境變數bash是bourne shell的gnu擴充套件,除了繼承了sh的所有特點以外,還增加了很多特性和功能。由login啟動的bash是作為乙個登入shell啟動的,它繼承了getty設定的term path等環境變數,其中path 對於普通使用者為 bin usr bin usr...

Linux SHELL,環境變數

shell 在電腦科學中,shell俗稱殼 用來區別於核 是指 提供使用者使用介面 的軟體 命令解析器 它類似於dos下的command和後來的cmd.exe。它接收使用者命令,然後呼叫相應的應用程式。同時它又是一種程式語言。作為命令語言,它互動式解釋和執行使用者輸入的命令或者自動地解釋和執行預先設...

linux shell獲取環境變數運算

很多shell運算需要獲取環境變數,例如a b,其中a或者b可能都來自於環境變數。但是環境變數可能出現不存在的情況,這時運算就會出錯。所以在計算前需要判斷其是否存在 z test 更複雜的 input 1 test mode 2 if z test mode then ret 1 elif test...