1. 程式人生 > >bash配置檔案

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