終端promot可以理解爲終端裏在輸入處之前的字符串。
這部分是可以被自定義的,並且傳統bash
通過修改~/..bashrc
即可,網上也有很多教程
而zsh
作爲一大終端殺器,怎麼能不與時俱進呢?無奈網上的教程實在是有限,我只找到這麼幾個有用的博客:
https://www.jianshu.com/p/bf488bf22cba
https://www.xxb.me/Linux/yuque-prompt/
都沒有達到我的要求。
我的需求是將promot
部分的主機名稱變成ip
地址,這樣一來我就不用pwd
就可以直接複製地址,然後用於scp
了。
解決方法和上面兩篇文章的方法類似,但是多了一個獲取當前IP的操作。
ipStr=$(ip -o addr | awk -F "inet |/" '!/127.0.0.1/ {print $2}' | sort -n | head -n 1)
然後就可以將${ipStr}
加入oh-my-zsh
了。
打開~/.oh-my-zsh/themes/
找到當前使用的主題(我用的是ys
主題)對應的配置文件(ys.zsh-theme
)
修改最後的PROMOT
,貼上我的修改代碼
ipStr=$(ip -o addr | awk -F "inet |/" '!/127.0.0.1/ {print $2}' | sort -n | head -n 1)
PROMPT="
%{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \
%(#,%{$bg[yellow]%}%{$fg[black]%}%n%{$reset_color%},%{$fg[cyan]%}%n)\
%{$fg[white]%}@\
%{$fg[green]%}${ipStr}\
%{$fg[white]%}:\
%{$terminfo[bold]$fg[yellow]%}%~%{$reset_color%}\
${hg_info}\
${git_info}\
注意我將一部分空格刪了,這樣就能直接複製了。
保存後重新進入zsh。
# [email protected]:~/project/test on git:dev o [14:34:47]
$
很顯然這裏就能直接複製了。當然了爲了避免衝突,最好將ys.zsh-theme
另存爲成myys.zsh-theme
,然後再在自己的這個上面修改。