Linux Shell基礎 環境變數配置檔案
阿新 • • 發佈:2018-11-21
source命令:使環境變數配置檔案強制生效
source 命令會強制執行指令碼中的全部命令,而忽略指令碼檔案的許可權。該命令主要用於讓重新配置的環境變數配置檔案強制生效。source 命令格式如下:
[[email protected] ~]# source 配置檔案 或 [[email protected] ~]#.配置檔案
"."就是 source 命令
環境變數配置檔案
登入時生效的環境變數配置檔案
- /etc/profile。
- /etc/profile.d/*.sh。
- ~/.bash_profile。
- -/.bashrc。
- /etc/bashrc。
- -USER 變數:根據登入的使用者給這個變數賦值(就是讓 USER 變數的值是當前使用者)。
- -LOGNAME 變數:根據 USER 變數的值給這個變數賦值。
- -MAIL 變數:根據登入的使用者來定義使用者的郵箱為 /var/spool/mail/ 使用者名稱。
- -PATH 變數:根據登入使用者的 UID 是否為 0,判斷 PATH 變數是否包含 /sbin、/usr/sbin 和 /usr/local/sbin 這三個系統命令目錄。
- -HOSTNAME 變數:根據主機名給這個變數賦值。
- -HISTSIZE 變數:定義歷史命令的儲存條數。
- -umask:定義 umask 預設許可權。注意:/etc/profile 檔案中的 umask 許可權是在"有使用者登入過程(輸入了使用者名稱和密碼)"時才會生效的。
- -呼叫 /etc/profile.d/*.sh檔案,也就是呼叫 /etc/porfile.d/ 目錄下所有以 .sh 結尾的檔案。
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 檔案中主要定義瞭如下內容。
- PS1 變數:也就是使用者的提示符。如果我們想要永久修示符,就要在這個檔案中修改。
- umask:定義 umask 預設許可權。這個檔案中定義的 umask 是針對"沒有使用者登入過程(不需要輸入使用者名稱和密碼,比如從一個終端切換到另一個終端,或進入子Shell)"時生效的。如果是"有使用者登入過程",則 /etc/profile 檔案中的 umask 生效。
- PATH 變數:會給 PATH 變數追加值,當然也是在"沒有使用者登陸過程"時才呼叫的。
- 呼叫 /etc/profile.d/*.sh 檔案,這也是在"沒有使用者登入過程"時才呼叫的。在"有使用者登入過程"時,/etc/profile_d/*.sh 檔案已經被 /etc/profile 檔案呼叫過了。
但是如果我們誤刪除了這些環境變數,比如刪除了 /etc/bashrc 或 ~/.bashrc 檔案,那麼這些檔案中的配置就會失效(~/.bashrc 檔案會呼叫 /etc/bashrc 檔案),我們的提示符就會變成下面這樣:
-bash-4.1#
因為在 /etc/bashrc 檔案中會設定 PS1 命令提示符,如果這個檔案不存在或沒有被呼叫,那麼提示符就會是 Bash 最基本的樣子。登出時生效的環境變數配置檔案
在使用者退出登入時,只會呼叫一個環境變數配置檔案,就是 ~/.bash_logout。這個檔案預設沒有寫入任何內容,但是如果我們希望在退出登入時執行一些操作,比如清除歷史命令、備份某些資料,就可以把命令寫入這個檔案。其他的環境變數配置檔案
~/bash_history 檔案是歷史命令儲存檔案。登陸資訊及修改
[[email protected] /]# cat /etc/issue \S Kernel \r on an \m
系統在每次登入時,會依賴這個檔案的配置顯示歡迎介面。在 /etc/issue 檔案中允許使用轉義符呼叫相應資訊,其支援的轉義符可以通過 man agetty 命令查詢,如表 1 所示。
轉義符 | 作 用 |
\d | 顯示當前系統日期 |
\s | 顯示作業系統名稱 |
\1 | 顯示登入的終端號,這個轉義符比較常用 |
\m | 顯示硬體體系結構,如i386、i686等 |
\n | 顯示主機名 |
\o | 顯示域名 |
\r | 顯示核心版本 |
\t | 顯示當前系統時間 |
\u | 顯示當前登入使用者的序列號 |
/etc/issue.net
配置 /etc/issue 檔案會在本地終端登入時顯示歡迎資訊,如果遠端登入(如 ssh 遠端登入,或 Telnet 遠端登入)需要顯示歡迎資訊,則需要配置 /etc/issue.net 檔案。使用這個檔案時有兩點需要注意:- 在 /etc/issue 檔案中支援的轉義符在 /etc/issue.net 檔案中不能使用。
- ssh 遠端登入是否顯示 /etc/issue.net 檔案中的歡迎資訊,是由 ssh 的配置檔案決定的。
[[email protected] ~]# cat /etc/ssh/sshd_config ...省略部分輸出... # no default banner path #Banner none Banner /etc/issue.net …省略部分輸出…
這樣,在 ssh 遠端登入時,也可以顯示歡迎資訊,只是不能再識別"\d"和"\l"等資訊了。
/etc/motd
/etc/motd 檔案中也有歡迎資訊的,這個檔案和 /etc/issue 及 /etc/issue.net 檔案的區別是:/etc/issue 及 /etc/issue.net 檔案是在使用者登入之前顯示歡迎資訊的;而 /etc/motd 檔案是在使用者輸入使用者名稱和密碼,正確登入之後顯示歡迎資訊的。/etc/motd 檔案中的歡迎資訊,不論是本地登入,還是遠端登入,都可以顯示。自定義快捷鍵
[[email protected] /]# 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
修改已有快捷鍵,命令如下:
[[email protected] ~] # stty 關鍵字 快捷鍵 例如: [root01ocalhost ~]# stty intr ^p #定義Ctrl +P快提鍵為強制中止,"^"字元只需手工輸入即可 [[email protected] ~】# stty -a speed 38400 baud; rows 21; columns 104; line = 0; intr = ^P; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
強制中止的快提鍵變成了Ctrl+P