linux安裝zsh,oh-my-zsh,配置zsh主題及插件的方法

這是一份非常詳細的指南,帶你一步步在 Linux 系統中安裝 Zsh、配置主題和安裝插件。

Zsh(Z Shell)是一個功能強大的 Shell,相比于大多數 Linux 發行版默認的 Bash,它提供了更強的自定義能力、更智能的自動補全、更漂亮的主題和更豐富的插件生態。

我們將主要使用 Oh My Zsh 這個流行的 Zsh 配置管理框架,因為它極大地簡化了主題和插件的管理。


目錄

  1. 第一步:安裝 Zsh
  2. 第二步:安裝 Oh My Zsh (管理框架)
  3. 第三步:更改 Zsh 主題
  4. 第四步:安裝 Zsh 插件
  5. 總結與常用命令

第一步:安裝 Zsh

首先,你需要在你的系統中安裝 Zsh。根據你的 Linux 發行版,使用對應的包管理器進行安裝。

1. 檢查是否已安裝 Zsh
在終端輸入:

zsh --version

如果顯示版本號,說明已安裝,可以跳到第二步。如果提示命令未找到,請繼續安裝。

2. 使用包管理器安裝 Zsh

  • 對于 Debian/Ubuntu/Mint 等:

    sudo apt update
    sudo apt install zsh -y
    
  • 對于 CentOS/RHEL/Fedora 等:

    sudo dnf install zsh -y 
    # 或者對于舊版系統
    # sudo yum install zsh -y
    
  • 對于 Arch Linux/Manjaro 等:

    sudo pacman -Syu zsh
    

3. 將 Zsh 設置為默認 Shell
安裝完成后,你需要將 Zsh 設置為當前用戶的默認登錄 Shell。這樣每次打開終端時,都會自動進入 Zsh。

chsh -s $(which zsh)

注意:執行此命令后,你需要 注銷并重新登錄 系統,更改才能生效。

重新登錄后,打開終端。第一次啟動 Zsh 時,它可能會提示你進行一些初始配置。你可以按 q 退出,因為我們接下來將使用 Oh My Zsh 來自動配置。


第二步:安裝 Oh My Zsh

Oh My Zsh 是一個社區驅動的、用于管理 Zsh 配置的開源框架。它讓使用主題和插件變得異常簡單。

前提條件:你需要安裝 gitcurlwget

# Debian/Ubuntu
sudo apt install git curl -y# CentOS/Fedora
sudo dnf install git curl -y

使用 curl 或 wget 安裝 Oh My Zsh:

  • 通過 curl (推薦):

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    
  • 通過 wget:

    sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    

安裝腳本會自動備份你現有的 ~/.zshrc 文件(如果存在),然后創建一個新的 ~/.zshrc 配置文件。安裝成功后,你的終端提示符會立刻變得不一樣。

關鍵文件~/.zshrc 是 Zsh 的核心配置文件。之后我們所有的自定義修改,比如換主題、加插件,都是通過編輯這個文件來完成的。


第三步:更改 Zsh 主題

Oh My Zsh 自帶了大量主題。你可以從官方主題列表 Oh My Zsh Themes Wiki 預覽它們。

1. 編輯配置文件
使用你喜歡的文本編輯器(如 vimnano)打開 ~/.zshrc 文件:

nano ~/.zshrc

2. 找到并修改主題設置
在文件中找到這一行(大約在第 11 行):

ZSH_THEME="robbyrussel"

robbyrussel 是默認主題。你只需將引號中的名字替換成你喜歡的主題名字即可。

3. 示例:使用 agnoster 主題
agnoster 是一個非常流行且美觀的主題,它會顯示 Git 分支、路徑等信息。

將配置改為:

ZSH_THEME="agnoster"

4. 安裝 Powerline 字體 (重要!)
agnoster 這樣的許多高級主題都使用了特殊符號(如箭頭、分支圖標)。如果你的系統沒有安裝兼容的字體,這些符號會顯示為亂碼(方框或問號)。

你需要安裝 “Powerline” 或 “Nerd Fonts” 字體。Fira Code Nerd Font 是一個不錯的選擇。

  • 安裝字體(以 Fira Code Nerd Font 為例):

    # Debian/Ubuntu
    sudo apt install fonts-firacode# 或者手動下載安裝
    # 訪問 https://www.nerdfonts.com/font-downloads 下載字體
    # 解壓后將 .ttf 或 .otf 文件復制到 ~/.local/share/fonts 目錄
    # 然后刷新字體緩存
    fc-cache -f -v
    
  • 配置你的終端
    安裝字體后,你還需要 在你的終端軟件的設置中 將字體更改為你剛才安裝的字體(例如 “FiraCode Nerd Font”)。這一步非常關鍵!

    • GNOME Terminal: Preferences -> Profiles -> Text -> Custom font
    • Konsole: Settings -> Edit Current Profile -> Appearance -> Select Font
    • VS Code 集成終端: 在 settings.json 中添加 "terminal.integrated.fontFamily": "FiraCode Nerd Font"

5. 應用更改
保存 ~/.zshrc 文件后,執行以下命令讓配置立即生效:

source ~/.zshrc

現在,你的終端應該已經換上了新主題,并且特殊符號也能正常顯示了。


第四步:安裝 Zsh 插件

插件是 Zsh 強大的核心。Oh My Zsh 讓插件管理也變得非常簡單。

1. 編輯配置文件
同樣,打開 ~/.zshrc 文件:

nano ~/.zshrc

2. 找到插件配置行
找到這一行(大約在第 72 行):

plugins=(git)

這是一個插件列表,用空格隔開。git 插件是默認啟用的,它提供了很多 git 命令的別名和自動補全功能。

3. 啟用自帶插件
Oh My Zsh 自帶了很多插件,存放在 ~/.oh-my-zsh/plugins/ 目錄。你只需將插件名添加到 plugins 列表中即可。

例如,啟用 dockersudo 插件:

plugins=(git docker sudo)
  • docker: 為 docker 命令提供自動補全。
  • sudo: 按兩下 Esc 鍵,可以在當前命令的開頭快速添加 sudo

4. 安裝第三方插件
在這里插入圖片描述

對于 Oh My Zsh 沒有自帶的插件,你需要手動安裝。最流行和推薦的兩個插件是:

  • zsh-autosuggestions: 根據你的歷史記錄,在你輸入命令時給出灰色提示。
  • zsh-syntax-highlighting: 為你輸入的命令提供語法高亮,正確的命令顯示綠色,錯誤的顯示紅色。

安裝步驟:
克隆插件倉庫 到 Oh My Zsh 的自定義插件目錄:

  • 安裝 zsh-autosuggestions

    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
  • 安裝 zsh-syntax-highlighting

    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    

~/.zshrc 中啟用插件
將插件名添加到 plugins 列表中。注意zsh-syntax-highlighting 官方建議放在列表的最后。

plugins=(gitdockersudozsh-autosuggestionszsh-syntax-highlighting
)

5. 應用更改
保存文件后,執行 source ~/.zshrc 使配置生效。

source ~/.zshrc

現在,當你輸入命令時,應該能看到語法高亮和自動建議了!按 (右箭頭) 或 End 鍵可以采納建議。


總結與常用命令

  • Zsh 配置文件: ~/.zshrc
  • Oh My Zsh 目錄: ~/.oh-my-zsh
  • 自定義內容目錄: ~/.oh-my-zsh/custom/ (自定義主題和插件建議放在這里)
  • 應用配置: source ~/.zshrc
  • 更新 Oh My Zsh: omz update (會自動更新框架、主題和插件)

通過以上步驟,你已經成功地為你的 Linux 系統配置了一個功能強大且外觀漂亮的 Zsh 環境。享受高效的命令行體驗吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90947.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90947.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【設計模式系列】策略模式vs模板模式

策略模式是什么?如何定義并封裝一系列算法策略模式 (Strategy Pattern)模板模式 (Template Pattern)模板模式與策略模式的深度對比與區分混合使用兩種模式的場景策略模式 (Strategy Pattern) 應用場景:當需要根據不同條件選擇不同算法或行為時&#xff…

aigc(1.1) opensora-2.0

open sora-2.0相關鏈接: arxiv鏈接 huggingface頁面 HunyuanVideo VAE open sora2.0的VAE模型復用了HunyuanVideo的3D VAE,HunyuanVideo的arxiv鏈接。下圖來自論文,可見VAE是一個因果注意力的3D結構。在配圖左側,視頻會被編碼為video token序列,而在配圖右側,去噪的vide…

Linux驅動21 --- FFMPEG 音頻 API

目錄 一、FFMPEG 音頻 API 1.1 解碼步驟 創建核心上下文指針 打開輸入流 獲取輸入流 獲取解碼器 初始化解碼器 創建輸入流指針 創建輸出流指針 初始化 SDL 配置音頻參數 打開音頻設備 獲取一幀數據 發送給解碼器 從解碼器獲取數據 開辟數據空間 初始化內存 音頻重采樣…

《計算機“十萬個為什么”》之 [特殊字符] 序列化與反序列化:數據打包的奇妙之旅 ??

《計算機“十萬個為什么”》之 📦 序列化與反序列化:數據打包的奇妙之旅 ??歡迎來到計算機“十萬個為什么”系列! 本文將以「序列化與反序列化」為主題,深入探討計算機世界中數據的打包與解包過程。 讓我們一起解開數據的神秘面…

機器學習與深度學習評價指標

機器學習與深度學習評價指標完全指南 ?? 為什么需要評價指標? 想象你是一位醫生,需要判斷一個診斷模型的好壞。如果模型說"這個病人有癌癥",你需要知道: 這個判斷有多準確? 會不會漏掉真正的癌癥患者? 會不會誤診健康的人? 評價指標就像是給AI模型打分的&…

Hugging Face-環境配置

打開anaconda promptconda activate pytorchpip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers datasets tokenizerspycharm找到pytorch下的python.exe#將模型下載到本地調用 from transformers import AutoModelForCausalLM,AutoTokenizer#將模型和分詞工…

cnn中池化層作用

一、池化層概述 在卷積神經網絡中,池化層是核心組件之一,主要作用是逐步降低特征圖的空間尺寸即寬和高,從而減少計算量、控制過擬合并增強模型的魯棒性。 核心作用 降維與減少計算量 壓縮特征圖的尺寸,顯著減少后續層的參數數量和…

寫一個音樂爬蟲

今天我們寫一個網易云音樂的爬蟲,爬取網易云音樂熱歌榜音樂鏈接并下載,這里用到了之前引用的BeautifulSoup和requests。 BeautifulSoup是一個Python庫,用于從HTML和XML文件中提取數據。它提供了一種簡單的方式來遍歷文檔樹和搜索文檔樹中的元…

戰斗公式和傷害走配置文件

故事背景,上次屬性計算用的配置,這次傷害計算也走配置,下面是測試代碼和測試數據local formulas {[100001]{id 100001,name "基礎傷害",formula "function (self,tag,ishit,iscritial,counterratio)\n if ishit1 then\n …

線性代數 上

文章目錄線性代數知識整理一、求行列式1、 套公式2、利用性質,化為可套公式3、抽象行列式4、抽象向量二、代數余子式的線性組合三、求AnA^nAn四、證明A可逆五、求A的逆1、定義法2、初等變換3、公式六、求秩七、線性表示的判定八、線性無關九、求極大線性無關組十、等…

紅帽AI推理服務器三大特點

生成式人工智能(Gen AI)的迅猛發展,對大型語言模型(LLM)的部署提出了更高的性能、靈活性和效率要求。無論部署在何種環境中,紅帽AI推理服務器都為用戶提供經過強化并獲得官方支持的vLLM發行版,配…

開始記錄一步步學習pcl

安裝參考,大神寫的非常詳細,一步到位 https://blog.csdn.net/qq_36812406/article/details/144307648?ops_request_misc%257B%2522request%255Fid%2522%253A%25220e215e6ac266b90ded12ed6b2eab1257%2522%252C%2522scm%2522%253A%252220140713.13010233…

Linux系統Centos7 安裝mysql5.7教程 和mysql的簡單指令

目錄 一. 安裝 MySQL 官方 Yum 倉庫 二. 安裝 MySQL 5.7 1.查看可用的mysql版本倉庫 2.啟用MySql5.7倉庫 3.禁用更高版本的倉庫(可選) 4.導入 MySQL GPG 公鑰 5.安裝MySql5.7 三. 啟動 MySQL 服務 1.啟動 MySQL 服務 2. 設置開機自啟 3.查看服…

嵌入式——C語言:指針③

一、函數指針和指針函數(一)指針函數:是函數,函數的返回值是指針1.不能返回局部變量的值2.指針函數返回的地址可以作為下一個函數調用的參數(二)函數指針:是指針,指針指向一個函數in…

OpenCV(05)直方圖均衡化,模板匹配,霍夫變換,圖像亮度變換,形態學變換

【OpenCV(01)】基本圖像操作、繪制,讀取視頻 【OpenCV(02)】圖像顏色處理,灰度化,二值化,仿射變換 【OpenCV(03)】插值方法,邊緣填充&#xff0…

常見的未授權訪問漏洞靶場-練習教程

一.Redis未授權訪問漏洞1.首先需要準備一個vps和vulhub靶場,然后進入目錄。命令:進入靶場目錄:cd /etc/vulhub-master/redis/4-unacc 啟動靶場:docker-compose up -d2.然后啟動我們kali,下載redis服務然后連接redis,并執行命令。…

EAP(基于事件的異步編程模式)

📜 1. 核心思想 📌 事件驅動解耦 異步操作通過事件通知結果,調用者無需阻塞線程,通過事件處理器響應操作完成、錯誤或取消。 📌 線程池與UI線程協同 耗時操作在后臺線程池執行,完成后通過 SynchronizationC…

【三橋君】如何解決后端Agent和前端UI之間的交互問題?——解析AG-UI協議的神奇作用

?你好,我是 ?三橋君? 📌本文介紹📌 >> 一、引言 在智能體(Agent)領域,MCP、A2A、ANP等協議已經規范了Agent與工具、Agent與Agent之間的通信,但Agent與用戶之間的交互一直缺乏標準化。…

面試官:詳細說說Kafka rebalance 的策略以及具體過程

hello啊,各位觀眾姥爺們!!!本baby今天又來報道了!哈哈哈哈哈嗝🐶 程序員各種工具大全 Kafka 的 Rebalance(再平衡) 是消費者組(Consumer Group)在消費者數量…

C++入門自學Day2-- c++類與對象(初識)

一、面向對象和面向過程1、什么是面向過程(Process-Oriented Programming, POP)📌 定義面向過程強調的是 過程(過程函數),即:按照步驟(流程)組織代碼。程序結構 數據結構…