終端,提示更改為“-Bash-4.2”並且顏色失去
通常我的終端提示是
username place$
現在它只顯示
bash-4.2$
並且所有顏色設置都失去了(在終端配置文件上我有相同的配色方案,但它只是不顯示顏色)
我不知道會發生什麼(而且我不知道如何搜尋)。
它從無到有,我正在使用 eclipse 和 maven,打開一個新終端,而新終端沒有顏色。
注意:我沒有 ~/.bashrc 文件,但我有 ~/.bash_profile。
提示變數
$PS1
可能未設置,因此使用內置預設值\s-\v\$
。當 bash 以互動方式啟動時,它會獲取一個配置文件,通常是
~/.bashrc
或~/.bash_profile
,假設它們存在,這就是設置更高級提示的方式。來自man bash
:呼叫
$$ … $$ 當 bash 作為互動式登錄 shell 或作為帶有 –login 選項的非互動式 shell 呼叫時,它首先從文件 /etc/profile 中讀取並執行命令(如果該文件存在)。讀取該文件後,它會按順序查找*~/.bash_profile、~/.bash_login*和 ~/.profile$$ … $$ $$ … $$當一個不是登錄 shell 的互動式 shell 啟動時,bash 會從 *~/.bashrc 讀取並執行命令,*如果該文件存在的話。
沒有你的提示集可能會出現在兩種不同的上下文中,登錄 shell 和非登錄 shell。如果您使用顯示管理器直接登錄到 GUI,則不會遇到登錄 shell,除非您切換到虛擬控制台(例如通過
Ctrl``Alt
+ F1 到 F6)。但是,您可以通過顯式打開一個新的登錄 shell 在 GUI 中測試您的 bash 登錄配置文件:bash -l
.非登錄外殼出現問題
如果問題發生在普通的 GUI 終端上,那麼要麼你
~/.bashrc
失去了,要麼它已被編輯以排除獲取全域文件,可能是/etc/bashrc
.
- 如果
~/.bashrc
不存在,應該有一個/etc/skel/.bashrc
用於為新使用者創建它。只需將該文件複製到您的主目錄中,您的預設提示應該會返回您打開的下一個新 shell。- 如果
~/.bashrc
確實存在,請檢查某處是否有行來源/etc/bashrc
:. /etc/bashrc -OR- source /etc/bashrc
如果不存在,請檢查該文件是否存在(至少在大多數 Linux 發行版上應該存在)並將這樣一行添加到您的
~/.bashrc
.登錄外殼出現問題
如果登錄 shell 和非登錄 shell 都出現問題,則問題可能與上述相同。如果它僅發生在登錄 shell 中,則您要麼沒有上述 INVOCATION 引用下為登錄 shell 提到的文件之一,要麼它們沒有獲取您的
~/.bashrc
. 如果這些文件都不存在,請~/.bash_profile
在其中創建:if [ -f ~/.bashrc ]; then . ~/.bashrc fi
在大多數情況下,這允許您將配置保存在一個文件中 (
~/.bashrc
)。如果無論您做什麼都無法得到提示,您可以創建一個並將其放入
~/.bashrc
以下方式:if [ "$PS1 ]; then PS1= .... # see below fi
這是因為 $PS1 已設置並且具有互動式 shell 的預設值,並且您不想設置它,因為其他東西可能會使用此值來確定這是否是互動式環境。
bash 手冊頁包含一個 PROMPTING 部分,該部分描述瞭如何使用動態功能設置提示,例如您的使用者名和目前工作目錄,例如:
PS1="\u \w:"
這裡有使用顏色的指南。請注意,您應該將非列印字元包含在
\[
and中\]
(在關於顏色的答案末尾對此進行了討論)。