Zshell:一款好用到飛起的shell

萱蘇的運維日常 2024-04-03 11:32:11
什麽是 Z shell ?

Z Shell(簡稱Zsh)和Bourne-Again SHell(簡稱Bash)都是Unix/Linux操作系統中的兩種主要的Shell,它們都是用于與操作系統進行交互並執行命令的程序。雖然兩者都屬于shell範疇,但Zsh在設計和功能上是對Bash的一個擴展和增強。

Z Shell(Zsh):

增強的功能:Zsh基于Bash,並在此基礎上增加了很多高級特性,比如更智能的命令補全系統,它可以自動補全命令及其參數,甚至包括函數、別名和曆史記錄中的命令片段。

高度可定制:Zsh允許用戶深度定制其工作環境,例如,可通過Oh My Zsh這樣的項目輕松配置和美化命令提示符、加載插件和主題。

語法糖:Zsh提供了更多的便利語法,例如內聯通配符擴展、更靈活的變量替換規則以及一些額外的控制結構。

便捷性:Zsh在用戶體驗上有更多優化,比如自動糾正命令或路徑的拼寫錯誤。

配置文件:Zsh的主要配置文件是~/.zshrc,在登錄shell中會讀取.zprofile。

本文主要介紹zsh的安裝。

安裝配置zsh

安裝zsh

# yum 安裝 zsh[root@huawei1 ~]# yum update -y[root@huawei1 ~]# yum install zsh -y# 設置 zsh 爲默認shell[root@huawei1 ~]# usermod -s /bin/zsh root

有些操作系統可能使用chsh -s /bin/zsh將當前登錄的用戶shell設置爲zsh,若要將其他用戶shell設置爲zsh,則只需加上username即可。

配置shell

zsh 相關配置文件

這些配置文件位置通常在~/、/etc/或者/etc/zsh/目錄下

zshrc:這是Zsh的主要配置文件,它會在每次啓動一個新的交互式shell時被讀取。在這個文件中,你可以設置環境變量、別名、函數、shell選項、主題以及其他個性化設置。例如,你可以在這裏加載插件、自定義命令提示符和定義各種shell行爲。

zshenv:這個文件在任何情況下都會被調用,無論是交互式shell還是非交互式shell。它用于設置全局環境變量和基本配置,通常用來做最小化的初始化設置,因爲它會被所有的Zsh實例執行。

zprofile:在登錄shell中會被讀取一次,通常用于設置那些只應在登錄shell中執行的命令或變量,比如設定PATH環境變量、加載全局別名等。

zlogin:與zprofile類似。

zlogout:當用戶退出登錄shell時,這個文件中的命令會被執行,通常用于清理環境、執行登出後的腳本任務等。

zshrc:系統級別的全局配置文件,影響所有用戶。用戶在個人的~/.zshrc中可以覆蓋這些設置。

[root@huawei1 ~]# cat >> /etc/zshrc <<-EOFautoload -U colors && colorsPS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b"EOF

autoload -U colors && colors

autoload是Zsh的一個特性,它允許在首次使用某個函數或命令時動態加載(而不是在啓動shell時一次性加載所有功能)。這裏的-U參數表示“更新”模式,即如果函數已經被定義過,仍然嘗試重新加載。

colors是一個啓用Zsh內建色彩支持的函數,用于在提示符和其他輸出中使用ANSI轉義碼來設置文本顔色和樣式。

PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b "

PS1是Zsh的主提示符環境變量,用于定義命令行提示符的格式。

這段字符串描述了一個複雜的命令行提示符結構,其中包含了顔色和樣式控制:

%B開啓粗體(Bold)樣式

%{$fg[red]%}設置前景色爲紅色

[開始括號,此處未顯示顔色,但仍保持紅色前景色

%{$fg[yellow]%}%n將用戶名(%n)顯示爲黃色

%{$fg[green]%}@符號 "@" 顯示爲綠色

%{$fg[blue]%}%M主機名(%M)顯示爲藍色

%{$fg[magenta]%}%~當前工作目錄的簡化形式(%~)顯示爲洋紅色

%{$fg[red]%}]結束括號,並恢複到紅色前景色

%{$fg[pink]%}$表示命令提示符,通常是一個美元符號,這裏顯示爲粉色

%b關閉所有字形屬性(如粗體、斜體等)

所以,整個提示符看起來大致類似于紅色[ 黃體用戶名 綠色@ 藍色主機名 洋紅色路徑 紅色] 粉色$的格式,並且各個部分都有相應的顔色。這種提示符設計旨在幫助用戶快速識別當前的工作環境和位置,增加了命令行界面的可視性和可讀性。

修改前:

修改後:

安裝框架oh-my-zsh

目前網絡上有很多用于管理 zsh 配置的框架,像Oh-my-zsh、Prezto、Zinit 、Antigen等等。其中,Oh My Zsh 深受用戶歡迎。它配備了許多默認功能,改善您的命令行體驗,如自動完成、插件、主題、語法高亮、alias 別名、自定義提示和曆史命令管理。

安裝命令

通常訪問(可訪問github)

MethodCommandcurlsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"wgetsh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"fetchsh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

國內或者印度

MethodCommandcurlsh -c "$(curl -fsSL https://install.ohmyz.sh/)"wgetsh -c "$(wget -O- https://install.ohmyz.sh/)"fetchsh -c "$(fetch -o - https://install.ohmyz.sh/)"

安裝 oh-my-zsh成功後,oh-my-zsh 會覆蓋原來自定義提示。$HOME 目錄下將會有一個名爲.oh-my-zsh目錄。

配置zsh

# 下載自動補齊、高亮插件cd .oh-my-zsh/pluginsgit clone https://github.com/zsh-users/zsh-syntax-highlighting.gitgit clone https://github.com/zsh-users/zsh-autosuggestions.git# vim ~/.zshrc# 添加插件plugins=(golang git zsh-autosuggestions fast-syntax-highlighting)setopt autocd# 添加原來的自定義配置autoload -U colors && colorsPS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b"

重新打開一個新的窗口即可。

問題反饋

若對文中有任何的疑問,或者需要幫助可以通過以下方式進行反饋

直接進行評論或者單獨私聊

發送郵件到:mr_xuansu@163.com

更多內容請關注微信公衆號:萱蘇的運維日常

0 阅读:1