linux云服务终端提示符显示-bash-4.2#解决方法
今天連接到云服務器突然發現輸入命令無效
出現這種情況
嘗試使用Ctrl+C 退出
結果變成-bash-4.2#
網上查了半天 很多人多說是誤刪了兩個文件
但我查看發現這兩個文件都存在
輸入命令: l. 查看所有隱藏文件
如果沒有這兩個隱藏文件就從etc下復制過來
然而我的這兩個文件都存在,說明不是這個問題
終于翻了好多資料發現
這個問題出現的原因是.bashrc文件被破壞,導致里面沒有該有的內容
于是編輯.bashrc文件
在最后一行加入
PS1='[\u@\h \W]$ '>>.bashrc
然后 :wq 保存
刷新.bashrc文件
這樣就解決了
但是發現每次打開Xshell終端,都要source一下.bashrc
再研究過程中發現簡書上有一篇文章解決了此問題:
https://www.jianshu.com/p/35ad1b375e50
因為Linux啟動時讀取配置文件的順序。
在剛登錄Linux時,首先啟動/etc/profile 文件,然后再啟動用戶目錄下的 ~/.bash_profile、~/.bash_login或 ~/.profile文件中的其中一個,
執行的順序為:~/.bash_profile、~/.bash_login、 ~/.profile。
如果 ~/.bash_profile文件存在的話,一般還會執行 ~/.bashrc文件。
因為在~/.bash_profile文件中一般會有下面的代碼:
~/.bashrc中,一般還會有以下代碼:
if [ -f /etc/bashrc ] ; thensource .bashrc fi所以,~/.bashrc會調用/etc/bashrc文件。最后,在退出shell時,還會執行 ~/.bash_logout文件。
總結一下,這些配置文件的執行順序為:/etc/profile→ (~/.bash_profile | ~/.bash_login | ~/.profile)→~/.bashrc →/etc/bashrc → ~/.bash_logout
因為在~/.bash_profile文件中沒有下面的代碼:
if [ -f ~/.bashrc ] ; thensource .bashrc fi所以linux就不會自動執行~/.bashrc文件,所以你每次登陸的時候都要手動輸入source ~/.bashrc。
解決方法:
vim ~/.bash_profile在文件內部輸入
輸入:wq保存并退出即可。
關于各個配置文件的作用域
/etc/profile:
此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行. 并從/etc/profile.d目錄的配置文件中搜集shell的設置。
/etc/bashrc:
為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取(即每次新開一個終端,都會執行bashrc)。
~/.bash_profile:
每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次。默認情況下,設置一些環境變量,執行用戶的.bashrc文件。
~/.bashrc:
該文件包含專用于你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取。
~/.bash_logout:
當每次退出系統(退出bash shell)時,執行該文件. 另外,/etc/profile中設定的變量(全局)的可以作用于任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承 /etc/profile中的變量,他們是"父子"關系。
~/.bash_profile: 是交互式、login 方式進入 bash 運行的 ~/.bashrc 是交互式 non-login 方式進入 bash 運行的通常二者設置大致相同,所以通常前者會調用后者。
總結
以上是生活随笔為你收集整理的linux云服务终端提示符显示-bash-4.2#解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让友情链接发挥出最佳SEO效果
- 下一篇: linux 其他常用命令