如何在Linux中自定義bash命令提示符
前言
眾所周知, bash (the B ourne- A gain Sh ell)是目前絕大多數(shù) Linux 發(fā)行版使用的默認(rèn) shell。本文將會(huì)介紹如何通過(guò)添加顏色和樣式來(lái)自定義 bash 命令提示符的顯示。盡管很多插件或工具都可以很輕易地滿(mǎn)足這一需求,但我們也可以不使用插件和工具,自己手動(dòng)自定義一些基本的顯示方式,例如添加或者修改某些元素、更改前景色、更改背景色等等。
在 Linux 中自定義 bash 命令提示符
在 bash 中,我們可以通過(guò)更改 $PS1 環(huán)境變量的值來(lái)自定義 bash 命令提示符。
一般情況下,bash 命令提示符會(huì)是以下這樣的形式:
在上圖這種默認(rèn)顯示形式當(dāng)中,“sk” 是我的用戶(hù)名,而 “ubuntuserver” 是我的主機(jī)名。
只要插入一些以反斜杠開(kāi)頭的特殊轉(zhuǎn)義字符串,就可以按照你的喜好修改命令提示符了。下面我來(lái)舉幾個(gè)例子。
在開(kāi)始之前,我強(qiáng)烈建議你預(yù)先備份 ~/.bashrc 文件。
$ cp ~/.bashrc ~/.bashrc.bak
更改 bash 命令提示符中的 username@hostname 部分
如上所示,bash 命令提示符一般都帶有 “username@hostname” 部分,這個(gè)部分是可以修改的。
只需要編輯 ~/.bashrc 文件:
$ vi ~/.bashrc
在文件的最后添加一行:
PS1="ostechnix> "
將上面的 “ostechnix” 替換為任意一個(gè)你想使用的單詞,然后按 ESC 并輸入 :wq 保存、退出文件。
執(zhí)行以下命令使剛才的修改生效:
$ source ~/.bashrc
你就可以看見(jiàn) bash 命令提示符中出現(xiàn)剛才添加的 “ostechnix” 了。
再來(lái)看看另一個(gè)例子,比如將 “username@hostname” 替換為 “Hello@welcome>”。
同樣是像剛才那樣修改 ~/.bashrc 文件。
export PS1=Hello@welcome>
然后執(zhí)行 source ~/.bashrc 讓修改結(jié)果立即生效。
以下是我在 Ubuntu 18.04 LTS 上修改后的效果。
僅顯示用戶(hù)名
如果需要僅顯示用戶(hù)名,只需要在 ~/.bashrc 文件中加入以下這一行。
export PS1="\u "
這里的 \u 就是一個(gè)轉(zhuǎn)義字符串。
下面提供了一些可以添加到 $PS1 環(huán)境變量中的用以改變 bash 命令提示符樣式的轉(zhuǎn)義字符串。每次修改之后,都需要執(zhí)行 source ~/.bashrc
命令才能立即生效。
顯示用戶(hù)名和主機(jī)名
export PS1="\u\h "
命令提示符會(huì)這樣顯示:
skubuntuserver
顯示用戶(hù)名和完全限定域名
export PS1="\u\H "
在用戶(hù)名和主機(jī)名之間顯示其它字符
如果你還需要在用戶(hù)名和主機(jī)名之間顯示其它字符(例如 @ ),可以使用以下格式:
export PS1="\u@\h "
命令提示符會(huì)這樣顯示:
sk@ubuntuserver
顯示用戶(hù)名、主機(jī)名,并在末尾添加 $ 符號(hào)
export PS1="\u@\h\\$ "
綜合以上兩種顯示方式
export PS1="\u@\h> "
命令提示符最終會(huì)這樣顯示:
sk@ubuntuserver>
相似地,還可以添加其它特殊字符,例如冒號(hào)、分號(hào)、星號(hào)、下劃線(xiàn)、空格等等。
顯示用戶(hù)名、主機(jī)名、shell 名稱(chēng)
export PS1="\u@\h>\s "
顯示用戶(hù)名、主機(jī)名、shell 名稱(chēng)以及 shell 版本
export PS1="\u@\h>\s\v "
bash 命令提示符顯示樣式:
顯示用戶(hù)名、主機(jī)名、當(dāng)前目錄
export PS1="\u@\h\w "
如果當(dāng)前目錄是 $HOME ,會(huì)以一個(gè)波浪線(xiàn)( ~ )顯示。
在 bash 命令提示符中顯示日期
除了用戶(hù)名和主機(jī)名,如果還想在 bash 命令提示符中顯示日期,可以在 ~/.bashrc 文件中添加以下內(nèi)容:
export PS1="\u@\h>\d "
在 bash 命令提示符中顯示日期及 12 小時(shí)制時(shí)間
export PS1="\u@\h>\d\@ "
顯示日期及 hh:mm:ss 格式時(shí)間
export PS1="\u@\h>\d\T "
顯示日期及 24 小時(shí)制時(shí)間
export PS1="\u@\h>\d\A "
顯示日期及 24 小時(shí)制 hh:mm:ss 格式時(shí)間
export PS1="\u@\h>\d\t "
以上是一些常見(jiàn)的可以改變 bash 命令提示符的轉(zhuǎn)義字符串。除此以外的其它轉(zhuǎn)義字符串,可以在 bash 的 man 手冊(cè) PROMPTING 章節(jié)中查閱。
你也可以隨時(shí)執(zhí)行以下命令查看當(dāng)前的命令提示符樣式。
$ echo $PS1
在 bash 命令提示符中去掉 username@hostname 部分
如果我不想做任何調(diào)整,直接把 username@hostname 部分整個(gè)去掉可以嗎?答案是肯定的。
如果你是一個(gè)技術(shù)方面的博主,你有可能會(huì)需要在網(wǎng)站或者博客中上傳自己的 Linux 終端截圖。或許你的用戶(hù)名和主機(jī)名太拉風(fēng)、太另類(lèi),不想讓別人看到,在這種情況下,你就需要隱藏命令提示符中的 “username@hostname” 部分。
如果你不想暴露自己的用戶(hù)名和主機(jī)名,只需要按照以下步驟操作。
編輯 ~/.bashrc 文件:
$ vi ~/.bashrc
在文件末尾添加這一行:
PS1="\W> "
輸入 :wq 保存并關(guān)閉文件。
執(zhí)行以下命令讓修改立即生效。
$ source ~/.bashrc
現(xiàn)在看一下你的終端,“username@hostname” 部分已經(jīng)消失了,只保留了一個(gè) ~> 標(biāo)記。
如果你想要盡可能簡(jiǎn)單的操作,又不想弄亂你的 ~/.bashrc 文件,最好的辦法就是在系統(tǒng)中創(chuàng)建另一個(gè)用戶(hù)(例如 “user@example”、“admin@demo”)。用帶有這樣的命令提示符的用戶(hù)去截圖或者錄屏,就不需要顧慮自己的用戶(hù)名或主機(jī)名被別人看見(jiàn)了。
警告:在某些情況下,這種做法并不推薦。例如像 zsh 這種 shell 會(huì)繼承當(dāng)前 shell 的設(shè)置,這個(gè)時(shí)候可能會(huì)出現(xiàn)一些意想不到的問(wèn)題。這個(gè)技巧只用于隱藏命令提示符中的 “username@hostname” 部分,僅此而已,如果把這個(gè)技巧挪作他用,也可能會(huì)出現(xiàn)異常。
為 bash 命令提示符著色
目前我們也只是變更了 bash 命令提示符中的內(nèi)容,下面介紹一下如何對(duì)命令提示符進(jìn)行著色。
通過(guò)向 ~/.bashrc 文件寫(xiě)入一些配置,可以修改 bash 命令提示符的前景色(也就是文本的顏色)和背景色。
例如,下面這一行配置可以令某些文本的顏色變成紅色:
export PS1="\u@\[\e[31m\]\h\[\e[m\] "
添加配置后,執(zhí)行 source ~/.bashrc 立即生效。
你的 bash 命令提示符就會(huì)變成這樣:
類(lèi)似地,可以用這樣的配置來(lái)改變背景色:
export PS1="\u@\[\e[31;46m\]\h\[\e[m\] "
添加 emoji
大家都喜歡 emoji。還可以按照以下配置把 emoji 插入到命令提示符中。
PS1="\W
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
解決Linux system v 共享內(nèi)存問(wèn)題
這篇文章主要介紹了Linux system v 共享內(nèi)存問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07CentOS7下從零開(kāi)始安裝ethereum/以太坊
大家好,本篇文章主要講的是CentOS7下從零開(kāi)始安裝ethereum/以太坊,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽2021-12-12Linux VPS安全設(shè)置之三:使用DDOS deflate抵御少量DDOS攻擊
這篇文章主要介紹了Linux VPS安全設(shè)置之三:使用DDOS deflate抵御少量DDOS攻擊,需要的朋友可以參考下2016-10-10在Linux中如何列出和刪除Iptables防火墻規(guī)則
當(dāng)涉及到網(wǎng)絡(luò)安全時(shí),防火墻是一個(gè)至關(guān)重要的組成部分,Iptables是一種常用的防火墻解決方案,可以幫助管理員保護(hù)他們的系統(tǒng)免受惡意攻擊,本文將詳細(xì)介紹如何列出和刪除Iptables防火墻規(guī)則,以幫助您更好地管理系統(tǒng)的安全性2023-06-06linux如何通過(guò)防火墻iptables做隔離端口的腳本
這篇文章主要介紹了linux如何通過(guò)防火墻iptables做隔離端口的腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06阿里云ECS服務(wù)器入門(mén)使用流程(新手必看教程)
這篇文章主要介紹了阿里云ECS服務(wù)器入門(mén)使用流程(新手必看教程),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Linux服務(wù)器配置ip白名單防止遠(yuǎn)程登錄以及端口暴露的問(wèn)題
今天小編就為大家分享一篇Linux服務(wù)器配置ip白名單防止遠(yuǎn)程登錄以及端口暴露的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07LuManager圖文安裝使用教程和創(chuàng)建MysqL快速建站基本教程
這篇文章主要介紹了LuManager圖文安裝使用教程和創(chuàng)建MysqL快速建站基本教程,需要的朋友可以參考下2016-04-04#實(shí)踐筆記#Ubuntu配置Apache+PHP+MySQL
在我早先的一篇文章《#實(shí)踐筆記#本地配置PHPnow與WordPress》,已經(jīng)討論過(guò)PHPnow的本地安裝教程。但是PHPnow套件是Windows平臺(tái)下的軟件,不適用我現(xiàn)在使用的平臺(tái)2012-03-03