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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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)📌 定义面向过程强调的是 过程(过程函数),即:按照步骤(流程)组织代码。程序结构 数据结构…