bash配置檔案
bash的配置檔案
一、shell的兩種登入方式:
1、互動式登入:
(1)直接通過終端輸入賬號密碼登入
(2)使用“su - UserName” 切換的使用者
執行順序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
2、非互動式登入:
(1)su UserName
(2)圖形介面下開啟的終端
(3)執行指令碼
(4)任何其它的bash例項
執行順序: ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
二、bash的配置檔案
1、按生效範圍劃分,有兩類:
- 全域性配置:
- /etc/profile
- /etc/profile.d/*.sh
- /etc/bashrc
- 個人配置:
- ~/.bash_profile
- ~/.bashrc
2、按功能劃分,存在兩類:
- profile類:為互動式登入的shell提供配置
- 全域性:/etc/profile, /etc/profile.d/*.sh
- 個人:~/.bash_profile
功用:
(1) 用於定義環境變數
(2) 執行命令或指令碼
- bashrc類:為非互動式和互動式登入的shell提供配置
- 全域性:/etc/bashrc
- 個人:~/.bashrc
功用:
(1) 定義命令別名和函式
(2) 定義本地變數
3.修改profile和bashrc檔案後需生效
兩種方法:
1重新啟動shell程序
2 . 或source
例:
. ~/.bashrc
注意:(1) . 或source 是在當前shell中生效;bash file 是開一個子程序去生效。
(2) 指令碼中不支援別名
三、bash退出任務
退出時執行的指令碼
儲存在~/.bash_logout檔案中(使用者)
在退出登入shell時執行,常用於:
- 建立自動備份
- 清除臨時檔案
四、練習
1、讓所有使用者的PATH環境變數的值多出一個路徑,例如:/usr/local/apache/bin
在 /etc/profile.d/env. sh 檔案,重新新增PATH變數。
PS1="\[\e[1;36m\][\[email protected]\h \W]\\$\[\e[0m\]"
PATH=/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2、使用者root登入時,將命令指示符變成紅色,並自動啟用如下別名:
rm=‘rm –i’
cdnet=‘cd /etc/sysconfig/network-scripts/’
editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eth0’
editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 或 ifcfg-ens33 ’ (如果系統是CentOS7)
命令符紅色:
在/etc/profile.d/env.sh中定義
PS1="\[\e[1;31m22\][\[email protected]\h \W]\\$\[\e[0m\]"
定義別名:
在 ~/.bashrc中將放入以下命令:
alias rm=‘rm –i’
alias cdnet=‘cd /etc/sysconfig/network-scripts/’
alias editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eth0’
alias editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 或 ifcfg-ens33 ’
3、任意使用者登入系統時,顯示紅色字型的警示提醒資訊“Hi,dangerous !”
在/etc/profile.d/env.sh 中新增
echo -e "\e[1;31mHi,dangerous ! \e[0m"
4、編寫生成指令碼基本格式的指令碼,包括作者,聯絡方式,版本,時間,描述等
5、編寫使用者的環境初始化指令碼reset.sh,包括別名,登入提示符,vim的設定,環境變數等
```bash
vim /root/reset.sh