如何自定義終端顯示配置
導讀 | 之前有讀者問到,如何在終端顯示當前的git分支,實際上這就是自定義終端顯示配置了。不過在直接介紹如何顯示當前分支之前,來看看到底怎麼回事。 |
每次我們登入一個 終端的時候,前面都有一些固定的顯示資訊:
root@ubuntu:#
這些顯示資訊其實可以配置的。
我們開啟使用者家目錄下的.bashrc檔案,找到類似下面的關於PS1的內容:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ ' fi
這裡就是用來配置你的終端顯示的了。
舉個例子:
$ echo -e "\033[31m red color \033[0m" red color
而其他的符號什麼意思呢?
\d :代表日期, \H :完整的主機名稱 \h :僅取主機的第一個名字 \t :顯示時間為24小時格式,如:HH:MM:SS \T :顯示時間為12小時格式 \A :顯示時間為24小時格式:HH:MM \u :使用者名稱 \v :BASH的版本資訊 \w :完整的工作目錄名稱 \W :列出最後一個目錄 \$ :提示字元,如果是root時,提示符為:# ,普通使用者則為:$
所以說白了,就是根據你自己的需要配置自己終端想要的資訊。
這個時候我們再來看前面的其中一條簡單的配置:
'${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
$debian_chroot這裡我們可以忽略,因為它是一個變數的值,我們完全可以自定義。
可以看到這裡有:
\u 使用者名稱 \h 主機名 \W 最後一個目錄名 \$ 提示字元
而透過 獲取的相關內容分別為:
$ whoami root $ hostname ubuntu $ basename `pwd` 公眾號程式設計珠璣
所以我的終端最終顯示的是:
root@ubuntu:公眾號程式設計珠璣#
通常來說,預設的配置就可以了,經常需要改動的可能就是預設它顯示了全路徑,這裡只需要將\w 替換為 \W即可。
然後執行 :
source ~/.bashrc
讓配置生效即可。
再來梳理一下過程:
- 根據需要修改PS1顯示項
- 執行source .bashrc使其生效
這裡注意, 啟動過程中,配置檔案載入是有順序的,
某使用者家目錄下的bashrc隻影響當前使用者,如果想要全系統修改生效,可以修改/etc/bash.bashrc(系統差異,可能不一樣)。
其實到這裡你應該基本上已經明白了,無非就是將git當前分支的資訊配置在PS1中罷了。
我們都知道:
$ git branch master * testBranch
可以檢視分支資訊,其中前面有*的表示當前所在分支,所以我們透過字元處理拿到即可。
或者直接透過命令:
$ git rev-parse --abbrev-ref HEAD testBranch
拿到。
考慮到有的目錄下可能並不存在git專案,所以需要做是否為空的判斷,也要注意處理標準錯誤。因此將獲取git分支資訊的部分寫成一個shell函式:
git_branch() { branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null` if [ "${branch}" != "" ] then if [ "${branch}" = "(no branch)" ] then branch="(`git rev-parse --short HEAD`...)" fi echo "($branch)" fi }
將其加入到.bashrc檔案結尾中,然後修改PS1的內容:
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W$(git_branch)\$ ' PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W$(git_branch)\[\033[00m\]\$ '
修改完成後儲存,執行:
$ source ~/.bashrc
當前裡面的顏色你可以根據自己的需要自定義。再來看看之前的效果,是不是覺得沒那麼難配置了?
實際上就是根據自己的需要去配置終端顯示罷了,可以自己選擇顏色,變數內容等等。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2685691/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自定義來電顯示
- 如何設定 GNOME 顯示自定義幻燈片
- 自定義SeekBar顯示進度
- MUI DtPicker 顯示自定義日期UI
- Xshell終端工具突出顯示集的正則配置
- linux 終端顯示時間Linux
- 如何在終端輸入密碼時顯示星號密碼
- 「MacOS技巧」如何調整Mac螢幕?如何自定義Mac顯示器?Mac
- 自定義progressBar顯示靜態資料
- 如何讓Spring MVC顯示自定義的404 Not Found頁面SpringMVC
- 【SpringCloud】Ribbon如何自定義客戶端配置和全域性配置SpringGCCloud客戶端
- MapSCII:在終端顯示世界地圖地圖
- Mac 終端命令列顏色高亮顯示Mac命令列
- 使用終端虛擬示波器顯示資料
- 自定義 RMAN 顯示的日期時間格式
- 如何在自定義 Tool Bar 和 Tab Bar 之間切換顯示
- 在Mac終端顯示 Git 當前所在分支MacGit
- linux ubuntu終端路徑顯示設定LinuxUbuntu
- Linux 輸出或儲存終端顯示Linux
- HTML5 自定義驗證資訊顯示方式HTML
- [BUG反饋]自定義模型不顯示資料模型
- jQuery Validate自定義錯誤資訊顯示位置jQuery
- vue自定義指令擷取圖片中心顯示Vue
- 自定義UILabel內容顯示內邊距UI
- 在Mac裡給Terminal終端自定義顏色Mac
- Win10如何自定義硬碟圖示_win10自定義硬碟圖示的教程Win10硬碟
- 小技巧:Flutter如何引用自定義圖示Flutter
- Mac終端顯示“bash-3.2”的解決方法Mac
- 解決ssh終端CentOS後中文顯示亂碼CentOS
- xshell終端顯示亂碼的處理方法
- Mac自定義觸控欄 Touch Bar的顯示教程Mac
- java使用sshd 實現sftp 自定義顯示目錄JavaFTP
- Django Admin自定義app中模型顯示順序DjangoAPP模型
- Android 端如何新增自定義表情Android
- WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示)控制元件
- Linux下使用script命令記錄終端操作顯示Linux
- Linux下設定終端文字的顯示屬性Linux
- Neofetch:在終端中顯示 Linux 系統資訊Linux