Linux Bash 提示符的一些騷操作
導讀 | 當你在 環境下開啟一個 終端時,會看到 行中出現了類似下面的一個 Bash 提示符:[user@$host ~]$你知道 行提示符其實是可以自己設定新增許多非常有用的資訊的嗎?在這篇文章中我就會教你如何自定義自己的 Bash 命令列提示符,想看的話就接著看吧~ |
Bash 提示符是透過環境變數 PS1 (提示符字串 1Prompt String 1) 來設定的,它用於互動式 shell 提示符。當然如果你需要更多的輸入才能完成一個 Bash 命令時,PS2 環境變數就是用來設定多行提示符的:
[dneary@dhcp-41-137 ~]$ export PS1="[Linux Rulez]$ " [Linux Rulez] export PS2="... " [Linux Rulez] if true; then ... echo "Success!" ... fi Success!
PS1 就是一個普通的環境變數,系統預設值設定在 /etc/bashrc 中,在我的系統中,預設提示符透過以下命令來設定的:
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
它判斷 PS1 是否是系統的預設值 \s-\v$ ,如果是的話則將值設定為 [\u@\h \W]\$。(LCTT 譯註:注意命令中用 \ 做了轉義。)
但如果你想要自定義提示符,不應該修改 /etc/bashrc ,而是應該在你的主目錄下將自定義命令加到 .bashrc 檔案中。
在 man bash 中的 PROMPTING 章節中,你能夠找到所有 PS1 和 PS2 相關的特殊字元的描述,以下是一些比較常用的:
\u:使用者名稱 \h:短主機名 \W:當前你所在的目錄的名稱(basename),~ 表示你的主目錄 \s:Shell 名字(bash 或者 sh,取決於你的 Shell 的名字是什麼) \v:Shell 的版本號
除了上面這些,還有很多有用的字串可以用在提示符當中:
\d:將日期擴充套件成 “Tue Jun 27” 這種格式 \D{fmt}:允許自定義日期格式——可透過 man strftime 來獲得更多資訊 \D{%c}:獲得本地化的日期和時間 \n:換行(參考下面的多行提示符) \w:顯示當前工作目錄的完整路徑 \H:當前工作機器的完整主機名
除了以上這些,你還可以在 Bash 的 man 頁面的 PROMPTING 部分找到更多的特殊字元和它的用處。
如果你的提示符過長(比如說你想包括 \H 、\w 或完整的日期時間時 ),想將提示符切成兩行,可以使用 \n 將提示符切斷成兩行顯示,比如下面的多行的例子會在第一行顯示日期、時間和當前工作目錄,第二行顯示使用者名稱和主機名:
PS1="\D{%c} \w\n[\u@\H]$ "
人們偶爾也想將提示符變成彩色的。雖然我覺得彩色提示符讓人分心、易怒,但是也許你很喜歡。如果我們想將日期變成紅色的,目錄變成青藍色,使用者名稱搞一個黃色背景,你可以這樣做:
PS1="\[\e[31m\]\D{%c}\[\e[0m\] \[\e[36m\]\w\[\e[0m\]\n[\[\e[1;43m\]\u\[\e[0m\]@\H]$ " \[..\] :表示一些非列印字元 \e[.. :跳脫字元,後面的跟著的特定的跳脫字元串在終端中表示顏色或者其他意思 31m :表示紅色字型(41m 表示是紅色背景) 36m :表示是青藍色字型 1; 43m :表示黃色字型(1;33m 表示黃色字型) [\e[0m]] :它在最後將顏色恢復成系統終端預設顏色
你可以在 Bash prompt HOWTO 這裡找到更多的顏色程式碼,甚至可以讓字元反相和閃爍!我不知道為什麼地球人會有這種想法,但是你可以這麼幹!
所以你最喜歡的自定義提示符是什麼樣子的呢?有沒有讓你抓狂的自定義提示符呢?請在評論裡告訴我吧~
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2987813/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《關於MySQL的一些騷操作》MySql
- OkHttp 攔截器的一些騷操作HTTP
- 在 Linux 上自定義 bash 命令提示符Linux
- &引用上的騷操作
- Git騷操作Git
- JavaScript 騷操作JavaScript
- mysql騷操作MySql
- [IDE][IDEA]教你一些IDEA比較騷的操作Idea
- make:migration 的騷操作
- markdown的騷氣操作(一)
- 聊聊那些年的騷操作!!!
- Fragment跳轉的騷操作Fragment
- opacity騷操作
- K專案的一些心得之全球模板裡的幾個騷操作
- JavaScript騷操作之操作符JavaScript
- Java中內部類的騷操作Java
- [譯] GitHub 上的 12 個騷操作Github
- Python - 解包的各種騷操作Python
- 使用解構的幾個騷操作
- 教你一些Linux中隱藏bash歷史命令的小技巧Linux
- Android 截圖的各種騷操作Android
- 閃電俠 Netty 小冊裡的騷操作Netty
- JS中Function.apply() 的騷操作JSFunctionAPP
- Linux的自定製shell提示符Linux
- 騷操作!在react中使用vuexReactVue
- Linux下一些操作的簡單整理Linux
- JetCache埋點的騷操作,不服不行啊
- Laravel ORM 中你不知道的騷操作LaravelORM
- Python裡的17個“騷操作”好玩有趣Python
- [Linux] Shell提示符更改Linux
- golang 在 runtime 中的一些騷東西Golang
- Linux中的一些常用操作方法(轉)Linux
- Python 資料庫騷操作 — RedisPython資料庫Redis
- Python資料庫MongoDB騷操作Python資料庫MongoDB
- Python 資料庫騷操作 -- RedisPython資料庫Redis
- js騷操作罵人不帶髒JS
- Python 資料庫騷操作 -- MongoDBPython資料庫MongoDB
- Mybatis騷操作-通用查詢工具類MyBatis