問題產生環境
問題出現在學習《第4章 Vim編輯器與Shell命令腳本》配置網卡信息的過程中,具體產生原因當時沒有注意。
產生原因及解決辦法
方法一
將PS1='[\u@\h \W]$ '寫入配置文件.bashrc中。然後重新使能該文件。
# PS1='[\u@\h \W]$ ' >> .bashrc
# source .bashrc
原因分析
上述操作奏效的話,說明出現這個問題的原因可能是.bashrc文件被破壞,導致裏面沒有該有的內容。
而我們添加的內容PS1='[\u@\h \W]$ ' 就是添加系統變量PS1來定義Linux系統提示符。
一般系統默認的用戶提示符形式是:[username@host 工作目錄]$。
用命令echo $PS1 即可以得到PS1的值:[\u@\h \W]\$。就是我們添加到配置文件中的值。
方法二
通過cp命令將.bash_profile文件和.bashrc文件拷貝到/root目錄下,然後註銷,重新登錄即可。
# cp /etc/skel/.bashrc /root/
# cp /etc/skel/.bash_profile /root/
原因分析
重新找這個方法的原因主要是因爲採用方法一的方法,的確能夠解決我的系統提示符的問題,將系統的提示符還原成了我所熟悉的root@linuxprobe。但是在我每次重新開啓虛擬機之後就又恢復原樣了。
網上查找說,產生這個問題的原因還可能是root用戶在/root下面的幾個配置文件丟失,丟失的文件有:.bash_profile、.bashrc。這兩個文件是每個用戶都必備的文件(不只是root用戶)。
拷貝的.bash_profile文件是定義PS1變量的配置文件。利用上述方法一的操作應該只是更改了PS1的顯示樣式,所以當重啓登錄系統之後,樣式又變成了系統默認的樣式了。所以想要徹底改變系統默認的樣式,就要在PS1的配置文件中操作了。
Tips
- ~/.bash_profile:用來設置一些環境變量,對當前用戶有效。當前用戶登錄時,執行(僅一次)。
- ~/.bashrc:用來設置bash shell相關的東西,對當前用戶有效。當登錄及每次打開新的shell時,被讀取。
- /etc/bashrc:設置系統bash shell相關的東西,對系統內所有用戶有效。當bash shell 被打開時,該文件被讀取。
- /etc/profile:用來設置系統環境參數,對系統內所有用戶生效。當用戶第一次登錄時,該文件被執行。
- PS(Prompt Sign)命令提示符,PS1 用戶平時的提示符。
- 可以通過設置PS1變量使提示符變成彩色。
- 默認的PS1="[\u@\h \W]\$",其中\W就是路徑的設置選項,大寫的W是簡介模式,小寫的w爲全路徑模式。
- Shell 是一種解釋器,它可以爲用戶接受命令,並運行命令來執行諸如在文件系統中導航、運行程序以及與設備交互等操作。
- What Is the Bashrc File Used For?