Linux Shell基礎 環境變數配置檔案

2022-07-31 20:00:15 字數 3863 閱讀 4802

[root@localhost ~]# source 配置檔案

或[root@localhost ~]#.配置檔案

"."就是 source 命令

在環境變數配置檔案中儲存了對系統的操作環境生效的系統預設環境變數,比如 path、histsize、ps1、hostname 等 

在 linux 系統登入時主要生效的環境變數配置檔案有以下 5 個:

這 5 個環境變數配置檔案(/etc/profile.d/*.sh 是一系列的配置檔案)在使用者登入過程中會依次生效。不過需要注意,/etc/profile、/etc/profile_d/*.sh 和 /etc/bashrc 這三個環境變數配置檔案會對所有的登入使用者生效;而 ~/.bash_profile 和 ~/.bashrc 這兩個環境變數配置檔案只會對當前使用者生效(因為每個使用者的家目錄中都有這兩個檔案)。這些環境變數配置檔案是依靠如圖 1 所示的順序被呼叫的。

1. 使用者登入過程中先呼叫 /etc/profile 檔案。在這個環境變數配置檔案中會定義如下預設環境變數。

2. 由 /etc/profile 檔案呼叫 /etc/profile.d/*.sh 檔案。該目錄中所有以 .sh 結尾的檔案都會被 /etc/profile 檔案呼叫,這裡最常用的就是 lang.sh 檔案,而這個檔案又會呼叫 /etc/sysconfig/i18n 檔案。/etc/sysconfig/i18n 就是前面講過的預設語系配置檔案。

3. 由 /etc/profile 檔案呼叫 ~/.bash_profile檔案。~/.bash_profile檔案主要實現了兩個功能:

1. 呼叫了 ~/.bashrc 檔案。

2. 在 path 變數後面加入了":$home/bin"這個目錄。也就是說,如果我們在自己的家目錄中建立了 bin 目錄,然後把自己的指令碼放入"~/bin"目錄中,就可以直接執行指令碼,而不用通過目錄執行了。

4. 由 ~/.bash_profile 檔案呼叫 -/.bashrc 檔案。在 -/.bashrc 檔案中主要實現了兩個功能:

1. 定義預設別名。筆者把自己定義的別名也放入了這個檔案。

2. 呼叫/etc/bashrc。

5. 由 ~/.bashrc 檔案呼叫 /etc/bashrc 檔案。在 /etc/bashrc 檔案中主要定義了如下內容。

這 5 個環境變數配置檔案會被依次呼叫。如果是我們自己定義的環境變數,則應該放入哪個檔案呢?如果你的修改是打算對所有使用者生效的,那麼可以放入 /etc/profile 環境變數配置檔案;如果你的修改只是給自己使用的,那麼可以放入 ~/.bash_profile 或 -/.bashrc 環境變數配置檔案。

但是如果我們誤刪除了這些環境變數,比如刪除了 /etc/bashrc 或 ~/.bashrc 檔案,那麼這些檔案中的配置就會失效(~/.bashrc 檔案會呼叫 /etc/bashrc 檔案),我們的提示符就會變成下面這樣:

-bash-4.1#

因為在 /etc/bashrc 檔案中會設定 ps1 命令提示符,如果這個檔案不存在或沒有被呼叫,那麼提示符就會是 bash 最基本的樣子。

在使用者退出登入時,只會呼叫乙個環境變數配置檔案,就是 ~/.bash_logout。這個檔案預設沒有寫入任何內容,但是如果我們希望在退出登入時執行一些操作,比如清除歷史命令、備份某些資料,就可以把命令寫入這個檔案。

~/bash_history 檔案是歷史命令儲存檔案。

[root@localhost /]# cat /etc/issue

\skernel \r on an \m

系統在每次登入時,會依賴這個檔案的配置顯示歡迎介面。在 /etc/issue 檔案中允許使用轉義符呼叫相應資訊,其支援的轉義符可以通過 man agetty 命令查詢,如表 1 所示。

轉義符作 用

\d顯示當前系統日期

\s顯示作業系統名稱

\1顯示登入的終端號,這個轉義符比較常用

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

\n顯示主機名

\o顯示網域名稱

\r顯示核心版本

\t顯示當前系統時間

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

配置 /etc/issue 檔案會在本地終端登入時顯示歡迎資訊,如果遠端登入(如 ssh 遠端登入,或 telnet 遠端登入)需要顯示歡迎資訊,則需要配置 /etc/issue.net 檔案。使用這個檔案時有兩點需要注意:

[root@localhost ~]# cat /etc/ssh/sshd_config ...省略部分輸出...

# no default banner path

#banner none

banner /etc/issue.net

…省略部分輸出…

這樣,在 ssh 遠端登入時,也可以顯示歡迎資訊,只是不能再識別"\d"和"\l"等資訊了。

/etc/motd 檔案中也有歡迎資訊的,這個檔案和 /etc/issue 及 /etc/issue.net 檔案的區別是:/etc/issue 及 /etc/issue.net 檔案是在使用者登入之前顯示歡迎資訊的;而 /etc/motd 檔案是在使用者輸入使用者名稱和密碼,正確登入之後顯示歡迎資訊的。/etc/motd 檔案中的歡迎資訊,不論是本地登入,還是遠端登入,都可以顯示。檢視已有快捷鍵 ,命令如下所示:

[root@localhost /]# stty -a

speed

38400 baud; rows 24; columns 80; line = 0

;intr = ^c; quit = ^\; erase = ^?; kill = ^u; eof = ^d; eol = m-^?; eol2 = m-^?;

swtch = m-^?; start = ^q; stop = ^s; susp = ^z; rprnt = ^r; werase = ^w;

lnext = ^v; flush = ^o; min = 1; time = 0

;-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts

-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff

-iuclc ixany imaxbel iutf8

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten

echo echoe echok -echonl -noflsh -xcase -tostop -echoprt

echoctl echoke

修改已有快捷鍵,命令如下:

[root@localhost ~] # stty 關鍵字 快捷鍵

例如:[root01ocalhost ~]# stty intr ^p

#定義ctrl +p快提鍵為強制中止,"^"

字元只需手工輸入即可

[root@localhost ~】# stty -a

speed

38400 baud; rows 21; columns 104; line = 0

;intr = ^p; quit = ^\; erase = ^?; kill = ^u; eof = ^d; eol = ; eol2 = ; swtch = ;

start = ^q; stop = ^s; susp = ^z; rprnt = ^r; werase = ^w; lnext = ^v; flush = ^o; min = 1; time = 0;

強制中止的快提鍵變成了ctrl+p

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指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...