ArchLinux
?VirtualBox
?Git
?$PS1
?Promt color
簡介:在Arch Linux 命令行下安裝Git,并設置bash提示符,使之顯示當前分支
一、安裝Git
pacman -Sy git
二、基本設置
git config --global user.name "Yourname"
git config --global user.name "Youremail@xxx.com"
git config --global core.editor vim
# 上述設置會體現在 ~/.gitconfig文件當中,只對當前用戶有效。
如果使用GitHub,可能會用到SSH Key
ssh-keygen -t rsa -C "Youremail@xxx.com"
# 會提示輸入密碼,可為空
上述命令會在~/.ssh/
中生成兩個配對文件id_rsa
和id_rsa.pub
,用途是將id_rsa.pub
中的內容添加到你的GitHub的信任列表當中,之后Git需要訪問GitHub的時候就會拿本地的id_rsa
和它去匹配,就不用提示你輸入密碼了。
三、設置提示符路徑中顯示當前Git分支
編輯~/.bashrc
文件
vim ~/.bashrc
按以下內容修改:<簡單測試OK,歡迎完善>
# 添加以下內容
function get_git_branchname ()
{
local dir=.
until [ "$dir" -ef / ]
do
if [ -f "$dir/.git/HEAD" ]; then
git_branchname=$(git symbolic-ref --short -q HEAD 2>/dev/null)
git_branchname=" ("$git_branchname")" # 左括號前有一個空格
return
else
dir="../$dir"
fi
done
git_branchname=''
}
PROMPT_COMMAND="get_git_branchname; $PROMPT_COMMAND"
# 修改PS1
PS1='\[\e[32;1m\]\u@\h:\[\e[34;40m\][\w\[\e[36;1m\]$git_branchname\[\e[34;40m\]] \[\e[0m\]\$ '
附
1.對PS1
所賦值按順序拆分說明:
<u>\[\e[32;1m\]
???:字體綠色高亮顯示
\u
???????????:用戶
@
????????????:顯示字符@
\h
???????????:主機名稱hostname
:
????????????:顯示字符:
\[\e[34;40m\]
??:字體藍色背景黑色
[
????????????:顯示字符[
\w
???????????:當前工作路徑Working Directory
\[\e[36;1m\]
???:字體青色高亮
$git_branchname
:變量git_branchname的值
\[\e[34;40m\]
??:字體藍色背景黑色
]
????????????:顯示字符]
空格
??????????:顯示一個空格
\[\e[0m\]
????? :關閉顏色輸出
\$
???????????:提示字符,root為:# ,普通用戶則為:$
空格
??????????:顯示一個空格</u>
2.對PS1
的顏色說明:
To add colors to the shell prompt use the following export command syntax:
?
?????<u>\e[x;ym $PS1 \e[m</u>
Where,
-
\e[ _;_ m
: Start color scheme. -
X;Y
: Color pair to use (X;Y) -
$PS1
: Your shell prompt variable. -
\e[m
或\e[0m
: Stop color scheme.
說明:
- 當顏色設置符出現了,其后面所有的字符都要按照它的要求顯示(包括用戶輸入的命令),除非遇到另外一種顏色設置改變或者顏色輸出結束標記結束。
- 需要在顏色前后加
[ ]
,否則在終端需要輸入長命令的時候,超界內容不會自動換行,而是在行首開始覆蓋。但是不能直接增加[ ]
,需要進行轉義,這就是多了許多\[
,\]
的原因。 - Color pair--
X;Y
,經過測試并不是按照常理——X
決定字體顏色,Y
決定背景顏色。而是僅僅通過數字來控制,和位置沒有關系——32;45
和45;32
效果是一樣的,32;32
和0;32
效果是一樣的。
顏色表參考:
前景?背景? 顏色
?30???40??黑色
?31???41??紅色
?32???42??綠色
?33???43??黃色
?34???44??藍色
?35???45??紫色
?36???46??青色
?37???47??白色
特殊意義數字:
代碼??意義
?0????OFF
?1????高亮顯示
?4????underline
?5????閃爍
?7????反白顯示
?8????不可見