Linux基礎學習之Shell基礎——環境變數配置檔案
1、什麼是環境變數呢?
可以在父shell和子shell中都能呼叫的就是環境變數,只能在本shell中使用的變數就是普通的變數。
2、什麼是環境變數配置檔案呢?
linux 中所有需要永久生效的內容,都必須寫入配置檔案中;同樣,對於環境變數,想要在系統重啟
或者其他情況下,讓該環境變數永久生效的方法,就是將環境變數資訊寫到環境變數配置檔案中
3、source命令
功能:如果修改了環境變數的配置配置檔案,必須退出,重新登入才能生效
source命令可以免去該過程
[[email protected] ~]# source 配置檔案或
4、環境變數配置檔案簡介:
環境變數配置檔案中主要是定義對系統的操作環境生效的系統預設環境變數,比如
PATH、HISTSIZE、PSI、HOSTNAME等預設環境變數
通過set命令可以查出系統中所有的預設的變數,都是要寫入配置檔案才會永久生效的
具體有哪些配置檔案呢?
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
如上儲存在/etc中的變數,所有登入過Linux系統的使用者,使用到其中的變數都能生效
如果儲存在~/ 目錄下的檔案,只對root使用者生效
如果儲存在其他使用者家目錄中的檔案,只對某個使用者生效
以點開頭的是隱藏檔案
5、如上已知,儲存在/etc目錄下的所有使用者都會生效,所有使用者登入時,系統都會去
讀取該目錄下的配置檔案,
6、那配置檔案之間的優先順序呢?
如圖,使用者登入系統時,會按照如上次序讀取這些配置檔案
具體其他的,可以類似如上圖呼叫順序,依次去查詢,理解其含義;
環境變數預設賦值分兩種情況:
第一種:使用者登入時;
第二種:通過切換shell等不通過使用者輸入使用者名稱和密碼時;
具體,可以通過
7、/etc/profile的作用:
》USER變數:
》LOGNAME變數:
》MAIL變數:
》PATH變數:
》HOSTNAME變數:
》HISTSIZE變數:
》umask:
》呼叫 /etc/profile.d/*.sh檔案
8、~/.bash_profile的作用
》呼叫了~/.bashrc檔案
》在PATH變數後面加入了“:$HOME/bin”這個目錄
9、~/.bashrc的作用
》定義預設別名
》呼叫/etc/bashrc
10、/etc/bashrc的作用
》PSI變數
》umask
》PATH變數
》呼叫/etc/profile.d/*.sh檔案
注:對於配置檔案中,註釋標識的no login shell 表示在不是通過輸入密碼登入的情況下有效。
除了登入時的環境變數配置檔案資訊,還有如以下配置檔案:
10、登出時生效的環境變數配置檔案
》~/.bash_logout
預設該檔案是空的,如何每次登入想要將某些內容清空,可以放在這裡
11、其他配置檔案
1)歷史命令配置檔案
》~/bash_history
2)Shell登入資訊
》本地終端歡迎資訊:/etc/issue
轉義符 | 作用 |
\d | 顯示當前系統日期 |
\s | 顯示作業系統名稱 |
\l | 顯示登入的終端號,這個比較常用 |
\m | 顯示硬體體系結構,如i386、i686等 |
\n | 顯示主機名 |
\o | 顯示域名 |
\r | 顯示核心版本 |
\t | 顯示當前系統時間 |
\u | 顯示當前登入使用者的序列號 |
如上,在命令列視窗登入時,輸入使用者名稱前面出現的資訊,遠端登入時,是沒有意義的,只對本地登入使用者有效
[[email protected] ~]# vim /etc/issue
CentOS release 6.10 (Final)
Kernel \r on an \m
~
在此處可以根據上方表格內容提示,自定義歡迎介面上的資訊
》針對遠端終端使用者的歡迎資訊:/etc/issue.net
> 轉義符在/etc/issue.net檔案中不能使用,即斜槓加某字元;
> 是否顯示此歡迎資訊,由ssh的配置檔案/etc/ssh/sshd_config決定,加入“Banner /etc/issue.net”行才顯示(記得重啟ssh服務)
[[email protected] ~]# vim /etc/ssh/sshd_config
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
# no default banner path
#Banner none
Banner /etc/issue.net #注意此處剛新增的內容
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
"/etc/ssh/sshd_config" 138L, 3900C
servertool service serviceconf
[[email protected] ~]# service sshd restart
停止 sshd: [確定]
正在啟動 sshd: [確定]
[[email protected] ~]#
#然後斷開連線重新登入
》》登陸後歡迎資訊:/etc/motd
>不管是本地登入還是遠端登入,都可以顯示此中資訊