【zsh使用技巧】Linux shell美化,ohmyzsh安裝+Xshell美化,體驗Mac命令行


解決oh-my-zsh主題亂碼問題
解決Rocky Linux下ohmyzsh按Tab鍵自動補全命令時重復字符且無法刪除問題
Solve:
Remnant characters when tab completing
I see duplicate typed characters after I complete a command

願你美化半生,歸來仍是默認



一、背景

厭倦了Linux單調的命令行,那么你來對地方了,無需圖形化界面,提供優美主題和插件,SSH也管用的shell美化!

目前的美化方案有ohmyzsh、oh-my-fish、oh-my-bash

GitHub上star最多的是ohmyzsh,估計用得最多的不是Linux用戶而是Mac用戶,反過來想我們Linux上安裝也能體驗Mac般的命令行哈哈哈

zsh和bash一樣屬於解釋器,因ohmyzsh而火,當然還有更激進的fish,但是可能不那么兼容bash

而目前Linux默認的shell還是是bash,如果覺得zsh還是不夠穩的話可以用oh-my-bash

當然目前(2022-1-20 Rocky Linux 8)ohmyzsh、oh-my-bash都還有Bug

  • ohmyzsh在編輯命令時,按Tab鍵自動補全命令時重復字符且無法刪除問題,不過筆者已經解決了

  • ohmyzsh在git branch -a時不是直接輸出,而是跳到另一個界面顯示,不知道是bug還是git插件就是這樣設計的

  • 而oh-my-bash則是大小寫敏感都無法配置,比較雞肋



安裝ohmyzsh

dnf -y install zsh
# 直接用官方腳本,但是網不好可能下不了
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# git 下載,https得掛代理,最好還是使用ssh
cd ~
# git clone https://github.com/ohmyzsh/ohmyzsh.git .oh-my-zsh
git clone git@github.com:ohmyzsh/ohmyzsh.git .oh-my-zsh
# 下載插件
# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/plugins/zsh-syntax-highlighting
git clone git@github.com:zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/plugins/zsh-syntax-highlighting
# git clone https://github.com/zsh-users/zsh-autosuggestions.git .oh-my-zsh/plugins/zsh-autosuggestions
git clone git@github.com:zsh-users/zsh-autosuggestions.git .oh-my-zsh/plugins/zsh-autosuggestions

cp .oh-my-zsh/templates/zshrc.zsh-template .zshrc
vi .zshrc
source .zshrc
# 將用戶默認shell從bash改為zsh
usermod -s /bin/zsh root

個人.zshrc配置

# 解決zsh-autosuggestions顯示白色
export TERM=xterm-256color

ZSH_THEME="agnoster"

# 禁用自動更新 
zstyle ':omz:update' mode disabled

# 綁定按鍵
bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# ls -a無法生效
alias ll='ls -lh'

CASE_SENSITIVE="true"

HYPHEN_INSENSITIVE="true"
# 80G
plugins=(
    git 
    zsh-autosuggestions 
    zsh-syntax-highlighting 
)

注意bindkey中的^[[1~不是直接打出來的,其實是i模式下Ctrl+v home輸入進去的,另一個是End鍵

最后把當前用戶的默認shell改為zsh

chsh -s /bin/zsh



2.1 主題特殊字符亂碼

FAQ#i-have-a-weird-character-in-my-prompt

安裝powerline字體:

# rocky linux 8為例
dnf -y install powerline-fonts



2.2 Tab鍵補全出現重復字符

FAQ#i-see-duplicate-typed-characters-after-i-complete-a-command

如果設置了編碼也不能解決,而你用的是agnoster、cloud主題,使用默認主題、arrow沒問題,那么恭喜你,找對地方了,我可能是全網第一個發現並解決這個問題的人

發現的時候是2022-01-20,zsh是5.5.1版本,ohmyzsh是 master (22c11da),操作系統是Rocky Linux 8.5,用CentOS 7發現沒有這個毛病

github issues

以agnoster為例,我發現出問題的就是.oh-my-zsh/themes/agnoster.zsh-theme文件最后一行的最后一個空格,占位不對,將他從這樣

PROMPT='%{%f%b%k%}$(build_prompt) '

改成這樣就行

PROMPT='%{%f%b%k%}$(build_prompt)%{ %}'

%{ %}是用於格式化的代碼



三、SSH客戶端美化

3.1 Windows SSH客戶端選擇

選一個好的SSH客戶端能讓你事半功倍

最讓人熟知的SSH客戶端就是Xshell了,配合Xftp,十分能打,官網登錄就能獲取學校、家庭免費版,下載鏈接發到郵箱

但是我們這篇博客的主題是“美化”,Xshell顏值只能說中規中矩,似乎沒法和Mac命令行打

顏值最高的是termius,可惜自定義主題這方面不是很友好,而且會覆蓋ohmyzsh的顏色,以及一些圖標顯示有缺陷

還在github上發現一個,叫electerm,不過不能打,直接就不支持ohmyzsh的字體

綜合來看,Xshell永遠滴神

仔細想Xshell這樣的界面是犧牲了顏值,但是提高了效率,我們也可以配置成高顏值低效率

再用Alt+s鍵就變成

挺能打的了,當然要是官方能重構成termius那種高級主題更好\(@^0^@)/



3.2 Xshell配合agnoster主題

設置Xshell配色方案,配色方案(地球左邊的圖標)- 瀏覽 - 選中XTerm - 另存為

編輯新出現的XTerm(2) 修改"背景" - 選其他顏色,自定義顏色,按RGB我推薦兩種顏色,較淺的是36 49 53,這是我從視頻中看到的Terminix上取下的顏色,有點淺,直接降低亮度得到30,感覺還行,添加到自定義顏色

把背景和ANSI的黑色都設置成這個顏色!完美(除了ohmyzsh的bug)



四、zsh使用技巧

總結一下zsh和bash在操作上的不同

  • git add,用 ga

  • 查找以 xx 開頭的歷史命令,先輸 xx 再按上鍵

    bash中無論當前輸了什么內容,按上鍵都是上一個使用的命令,要查找以 xx 開頭的命令得用 !




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM