Linux Shell基礎 環境變量配置文件
阿新 • • 發佈:2018-11-22
case ren 查詢 .net order row 內核 none etc
1. 用戶登錄過程中先調用 /etc/profile 文件。在這個環境變量配置文件中會定義如下默認環境變量。
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 文件中主要定義了如下內容。
但是如果我們誤刪除了這些環境變量,比如刪除了 /etc/bashrc 或 ~/.bashrc 文件,那麽這些文件中的配置就會失效(~/.bashrc 文件會調用 /etc/bashrc 文件),我們的提示符就會變成下面這樣:
source命令:使環境變量配置文件強制生效
source 命令會強制執行腳本中的全部命令,而忽略腳本文件的權限。該命令主要用於讓重新配置的環境變量配置文件強制生效。source 命令格式如下:
[root@localhost ~]# source 配置文件 或 [root@localhost ~]#.配置文件
"."就是 source 命令
環境變量配置文件
登錄時生效的環境變量配置文件
在 Linux 系統登錄時主要生效的環境變量配置文件有以下 5 個:- /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 文件是歷史命令保存文件。登陸信息及修改
[root@localhost /]# 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 的配置文件決定的。
[root@localhost ~]# 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 文件中的歡迎信息,不論是本地登錄,還是遠程登錄,都可以顯示。自定義快捷鍵
[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 = <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
Linux Shell基礎 環境變量配置文件