Shell學習筆記,shell指令碼
一、source命令
功能:在當前bash環境下讀取並執行設定檔中的命令
1. 命令格式
source 設定檔 或 . 設定檔
2. 命令樣本
[root@localhost ~]# source /etc/profile #讓/etc/profile設定檔生效[root@localhost ~]# . /etc/profile #與上面的命令效果一樣
二、全域環境變數設定檔
全域環境變數設定檔會對所有使用者生效。
1. /etc/profile
作用:
1) 定義USER變數、LOGNAME變數、MAIL變數、PATH變數、HOSTNAME變數、HISTSIZE變數
2) 定義系統預設許可權umask
3) 調用/etc/profile.d/*.sh檔案
2. /etc/profile.d/*.sh3. /etc/bashrc
作用:
1) 定義PS1(命令提示字元)變數
2) umask
3) 定義PATH變數
4) 調用/etc/profile.d/*.sh檔案
三、使用者環境變數設定檔
每個使用者下面都有以下兩個環境變數設定檔,這些檔案只會對其所屬的使用者生效。
1. ~/.bash_profile
作用:
1) 調用~/.bashrc檔案
2) 在PATH變數後面加入":$HOME/bin"目錄
2. ~/.bashrc
作用:
1) 定義rm cp mv的alias別名
2) 調用/etc/bashrc
四、環境變數檔案執行流程
1. 使用者正常登入,會從/etc/profile一直載入到/etc/bashrc
2. 使用者非正常登入[not login shell],比如通過su切換使用者,會從/etc/bashrc開始執行,最後到/etc/sysconfig/i18n
五、其他環境變數設定檔1. ~/.bash_logout
登出時生效的環境變數設定檔,一般情況下不使用,常見添加進去的命令包括clear(清屏),history -c(清空曆史命令)。
樣本:
2. ~/.bash_history
操作曆史命令存放檔案,只有當登出時,才會把使用者登入過程中的操作命令寫入到檔案中,登入過程中執行的命令,不會立即寫入檔案,而是寫在記憶體中。
3. /etc/issue
本地終端歡迎資訊,通過遠程登入是看不到的。
樣本:
登入效果:
4. /etc/issue.net
遠程登入歡迎資訊
註:是否顯示此歡迎資訊,是有ssh的設定檔(/etc/ssh/sshd_config)決定的,加入"Banner /etc/issue.net"行才能顯示,加入後,需要重啟ssh服務。
樣本:
5. /etc/motb
登入後歡迎資訊,不管是本地登入,還是遠程登入,都可以顯示此歡迎資訊。