【终端美化】Ubuntu 下 Zsh 与 Oh-My-Zsh 美化与插件配置指南

目录

  • 1. 检查是否已安装 zsh
  • 2. 安装 zsh
  • 3. 设置 zsh 为默认 Shell
  • 4. 安装 oh-my-zsh
    • 4.1 使用 curl 安装
    • 4.2 使用 wget 安装(如果 curl 不可用)
    • 4.3 迁移 Bash 自定义配置到 Zsh
      • 打开Files并显示隐藏文件
      • 复制需要的配置内容
      • 粘贴到 Zsh 配置文件
      • 保存并关闭文件
      • 应用 Zsh 配置
  • 5. 配置和美化 oh-my-zsh
    • 5.1 更换主题
    • 5.2 安装插件
    • 5.3 安装 Powerlevel10k 主题
  • 6. 安装字体以支持主题
    • 6.1 安装 Nerd Fonts
    • 6.2 手动安装
    • 6.3 配置终端字体
    • 6.4 z 插件
      • 1. 启用 z 插件
        • 步骤:
      • 2. 使用 z 插件
        • 2.1 初次使用
        • 2.2 快速跳转
      • 3. 高级用法
        • 3.1 模糊匹配
        • 3.2 显示匹配的目录列表
        • 3.3 权重机制
      • 4. 常见问题
        • **z 不记录历史路径怎么办?**
        • **如何清除历史记录?**
      • `extract` 插件
      • 1. 启用 `extract` 插件
        • 步骤:
      • 2. 使用 `extract` 插件
        • 基本用法:
        • 示例:
        • 解压到特定目录:
      • 3. `web-search` 插件
        • 启用 `web-search` 插件
        • 使用方法
        • 示例:
        • 优势总结:


基于 Ubuntu22.04 LTS 系统,安装 zsh,并使用 oh-my-zsh 对终端进行美化。更详细的教程参见https://www.haoyep.com/posts/zsh-config-oh-my-zsh/

1. 检查是否已安装 zsh

在终端中运行以下命令以检查是否已安装 zsh:

zsh --version

如果显示版本号,说明已安装。如果未安装,请执行下一步。


2. 安装 zsh

运行以下命令安装 zsh:

sudo apt update
sudo apt upgrade -y
sudo apt install zsh -y

安装完成后再次检查版本:

zsh --version

3. 设置 zsh 为默认 Shell

执行以下命令将 zsh 设置为默认 Shell:

chsh -s /bin/zsh

注意: 执行后需要注销当前用户或重新启动系统以应用更改。


4. 安装 oh-my-zsh

oh-my-zsh 是一个流行的 zsh 配置框架,可以大大提升 zsh 的功能和外观。

4.1 使用 curl 安装

运行以下命令安装 oh-my-zsh:

sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"

如果没有 curl,可以通过以下命令安装:

sudo apt install curl -y

4.2 使用 wget 安装(如果 curl 不可用)

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

安装完成后,终端会自动切换到 oh-my-zsh 配置的 zsh 环境。
在这里插入图片描述

4.3 迁移 Bash 自定义配置到 Zsh

当从 Bash 切换到 Zsh 时,如果你之前在 Bash 中定义了一些环境变量、别名或函数,那么需要手动迁移这些配置到 Zsh 才能继续使用。

打开Files并显示隐藏文件

  1. 桌边栏打开Files。
  2. 按下快捷键 Ctrl+H
  3. 找到以下两个配置文件:
    • ~/.bashrc(Bash 的配置文件)
    • ~/.zshrc(Zsh 的配置文件)

复制需要的配置内容

  1. 双击打开 ~/.bashrc,找到你定义的环境变量、别名或函数。
  2. 选中所需的部分内容,右键选择 “复制”

粘贴到 Zsh 配置文件

  1. 双击打开 ~/.zshrc
  2. 在适当位置(例如文件末尾)右键选择 “粘贴”
  3. 根据需要整理格式,确保粘贴的内容与 Zsh 配置文件风格一致。

示例:从 Bash 文件中迁移的内容

# 从 .bashrc 中复制的环境变量
export PATH="$HOME/bin:$PATH"
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"# 从 .bashrc 中复制的别名
alias ll='ls -la'
alias gs='git status'# 从 .bashrc 中复制的函数
mkcd() {mkdir -p "$1" && cd "$1"
}

保存并关闭文件


应用 Zsh 配置

编辑完成后,回到终端,运行以下命令加载新配置:

source ~/.zshrc

5. 配置和美化 oh-my-zsh

5.1 更换主题

oh-my-zsh 默认使用 robbyrussell 主题。可以通过以下步骤更改主题:

  1. 打开配置文件:
    nano ~/.zshrc
    
  2. 找到以下行并修改 ZSH_THEME
    ZSH_THEME="haoomz"  # 示例主题
    
  3. 保存并退出(按 Ctrl+O 保存,Ctrl+X 退出)。
  4. 应用更改:
    source ~/.zshrc
    

5.2 安装插件

oh-my-zsh 提供了多种插件,例如自动补全和语法高亮。

  1. 打开配置文件:

    nano ~/.zshrc
    
  2. 找到 plugins=(),添加插件名称,例如:

    plugins=(git z zsh-autosuggestions zsh-syntax-highlighting)
    
  3. 保存并退出。

  4. 安装所需插件:

    • zsh-autosuggestions
      git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
      
    • zsh-syntax-highlighting
      git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
      
  5. 应用更改:

    source ~/.zshrc
    

5.3 安装 Powerlevel10k 主题

  1. 克隆 Powerlevel10k 仓库:
    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k
    
  2. 修改主题设置:
    nano ~/.zshrc
    
    ZSH_THEME 修改为:
    ZSH_THEME="powerlevel10k/powerlevel10k"
    
  3. 保存并退出,然后应用更改:
    source ~/.zshrc
    
  4. 重新打开终端,Powerlevel10k 会自动启动配置向导,按照提示完成配置。

6. 安装字体以支持主题

Powerlevel10k 等主题需要安装 Nerd Fonts 或 Powerline Fonts。

6.1 安装 Nerd Fonts

运行以下命令安装 Hack Nerd Font

sudo apt install fonts-hack-ttf -y

6.2 手动安装

访问 Nerd Fonts 官方下载页面,下载字体并安装。

6.3 配置终端字体

  1. 打开终端设置。
  2. 找到“外观”或“字体”选项。
  3. 更改字体为安装的 Nerd Fonts(例如 Hack Nerd Font)。

6.4 z 插件

z 是 oh-my-zsh 内置的一个文件夹快捷跳转插件,用于快速导航你访问过的目录。它通过记录历史访问路径,让你无需输入完整路径即可快速切换到目标目录,非常高效。


1. 启用 z 插件

默认情况下,oh-my-zsh 没有启用 z 插件,需要手动添加。

步骤:
  1. 编辑 Zsh 配置文件:

    nano ~/.zshrc
    
  2. 找到插件配置行,启用 z 插件:

    plugins=(git z)
    
  3. 保存并退出(Ctrl+O 保存,Ctrl+X 退出)。

  4. 加载新配置:

    source ~/.zshrc
    

2. 使用 z 插件

2.1 初次使用

z 插件会在你频繁访问目录时自动记录路径。因此,初次使用时,需要先手动切换几个目录,以便 z 收集数据。例如:

cd /path/to/folder1
cd /path/to/folder2
cd /another/path/folder3
2.2 快速跳转

当你访问过某个目录后,可以使用 z 快速跳转,只需输入目录名称的一部分:

z folder1

即会跳转到 /path/to/folder1

如果目标名称不唯一,z 会跳转到最近访问的匹配目录。


3. 高级用法

3.1 模糊匹配

可以输入目录路径的部分关键字,z 会根据历史记录匹配。例如:

z to/folder

会跳转到路径中包含 to/folder 的目录。

3.2 显示匹配的目录列表

如果不确定目标目录,可以添加 -l 参数列出所有匹配的路径:

z -l folder
3.3 权重机制

z 会根据目录的访问频率和最近访问时间计算权重,优先跳转到权重较高的目录。


4. 常见问题

z 不记录历史路径怎么办?

确保配置文件中启用了 z 插件,并已加载新的配置:

plugins=(git z)
source ~/.zshrc

此外,确认终端会话有写权限用于记录访问历史:

ls -l ~/.z

如果文件不存在或无权限,可以手动创建:

touch ~/.z
chmod 600 ~/.z
如何清除历史记录?

如果需要清空 z 的历史记录,可以删除 ~/.z 文件:

rm ~/.z

再次启动终端,z 会重新记录历史路径。


extract 插件

extract 是 oh-my-zsh 提供的一个解压工具插件,它支持解压多种压缩格式,让你无需记忆具体解压命令(如 tarunzip 等),只需使用通用命令 xextract 即可快速解压文件。


1. 启用 extract 插件

步骤:
  1. 编辑 Zsh 配置文件:

    nano ~/.zshrc
    
  2. 找到插件配置行,添加 extract 插件:

    plugins=(git z extract)
    
  3. 保存并退出(Ctrl+O 保存,Ctrl+X 退出)。

  4. 加载新配置:

    source ~/.zshrc
    

2. 使用 extract 插件

基本用法:

extract 支持通过 xextract 命令解压文件。用法如下:

x <文件名>
# 或
extract <文件名>
示例:
x archive.tar.gz
x file.zip
x data.tar.bz2
x archive.7z

支持的文件类型包括但不限于:

  • tartar.gztar.bz2tar.xz
  • ziprar7z
  • gzbz2xz
  • 其他常见压缩格式。
解压到特定目录:

如果想解压到指定目录,可以使用 cd 进入目标目录后执行命令,或结合重定向操作:

x archive.tar.gz -C /path/to/target/directory

3. web-search 插件

web-search 插件允许你直接通过终端进行快速的在线搜索,支持多种搜索引擎。它通过配置常用搜索引擎的别名,在命令行即可发起搜索请求。


启用 web-search 插件
  1. 编辑 Zsh 配置文件:
    nano ~/.zshrc
    
  2. 找到插件配置行,添加 web-search 插件:
    plugins=(git z extract web-search)
    
  3. 保存并退出,并加载新配置:
    source ~/.zshrc
    

使用方法

默认支持以下搜索引擎,直接用命令发起搜索:

google "搜索内容"
bing "搜索内容"
duckduckgo "搜索内容"
yahoo "搜索内容"
示例:
  • 在 Google 搜索:
    google "oh-my-zsh plugins"
    
  • 在 Bing 搜索:
    bing "zsh terminal customization"
    

你还可以自定义搜索引擎,直接编辑配置文件后手动添加。


优势总结:
  • extract 插件:一键解压,省去记忆复杂命令的麻烦。
  • web-search 插件:快速搜索,无需打开浏览器即可发起在线查询,提高效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477668.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot与MyBatis-Plus的高效集成

Spring Boot与MyBatis-Plus的高效集成 引言 在现代 Java 开发中&#xff0c;MyBatis-Plus 作为 MyBatis 的增强工具&#xff0c;以其简化 CRUD 操作和无需编写 XML 映射文件的特点&#xff0c;受到了开发者的青睐。本篇文章将带你一步步整合 Spring Boot 与 MyBatis-Plus&…

html+js实现图片的放大缩小等比缩放翻转,自动播放切换,顺逆时针旋转

效果图&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图片预览</title><sty…

【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)

本期目录 1 爬取思路 2 爬虫过程 2.1 网址 2.2 查看网页代码 3 爬取数据 3.1 导入包 3.2 爬取代码 01 爬取思路 \*- 第一步&#xff0c;获取页面内容\*- 第二步&#xff1a;解析并获取单个项目链接 \*- 第三步&#xff1a;获取子页面内容 \*- 第四步&#xff1a;解析…

SpringBoot多文件上传

多文件上传是在单文件上传的基础上修改而来&#xff0c;不了解单文件上传可以参考上一篇。以下在将修改部分展示如下&#xff1a; 一、修改upload.html文件&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title&g…

[RabbitMQ] 重试机制+TTL+死信队列

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s&#xff08;一&#xff09;搭建-CSDN博客&#xff0c;这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target&#xff0c;可以看到metrics的数据来源&#xff0c;即各…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05目录1. LLM App Squatting and Cloning2. Improving Grapheme-to-Phoneme Conversion through In-Context Knowledge3. A Comp…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;以及通过理论课学习与实验参考书的帮助&#xff0c;熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作&#xff1b;作为后续实验的基础&#xff0c;根据实验要求重…

LDR6020驱动的Type-C接口显示器解决方案

一、引言 随着科技的飞速发展&#xff0c;Type-C接口凭借其高速数据传输、强大的电力传输能力以及便捷的正反可插设计&#xff0c;正逐渐成为现代电子设备的主流接口标准。在显示器领域&#xff0c;Type-C接口的引入不仅简化了线缆连接&#xff0c;还为用户带来了更丰富的功能…

Spring |(四)IoC/DI配置管理第三方bean

文章目录 &#x1f4da;数据源对象管理&#x1f407;环境准备&#x1f407;实现Druid管理&#x1f407;实现C3P0管理 &#x1f4da;加载properties文件&#x1f407;第三方bean属性优化&#x1f407;读取单个属性 学习来源&#xff1a;黑马程序员SSM框架教程_SpringSpringMVCMa…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后&#xff0c;内部的微服务之间是互联互通的&#xff0c;相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能&#xff0c;也采取点对点的方式&#xff0c;则外部系统会非常“头大”。因为在外部系统看来&#xff0c;它不需要也没…

(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下&#xff0c;开发一…

社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动

摘要&#xff1a;本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨&#xff0c;剖析国家政策认可下其学科发展前景&#xff0c;着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序&#xff0c;探究如何借助这些新…

Linux各种并发服务器优缺点

本文旨在介绍针对“无并发C/S模型”改进的方法总结以及各种改进方法的优缺点&#xff0c;具体函数的实现并不介绍。 1. 无并发C/S模型 创建服务器流程分析&#xff1a; socket()创建服务器的监听套接字bind()将服务器给服务器的监听套接字绑定IP地址和Port端口号listen()设置…

基于AXI PCIE IP的FPGA PCIE卡示意图

创作不易&#xff0c;转载请注明出处&#xff1a;https://blog.csdn.net/csdn_gddf102384398/article/details/143926217 上图中&#xff0c;在FPGA PCIE卡示意图内&#xff0c;有2个AXI Master设备&#xff0c;即&#xff1a;PCIE到AXI4-Full-Master桥、AXI CDMA IP&#xff1…

【漏洞复现】|智互联SRM智联云采系统quickReceiptDetail SQL注入漏洞

漏洞描述 智互联(深圳)科技有限公司SRM智联云采系统针对企业供应链管理难题&#xff0c;及智能化转型升级需求&#xff0c;智联云采依托人工智能、物联网、大数据、云等技术&#xff0c;通过软硬件系统化方案&#xff0c;帮助企业实现供应商关系管理和采购线上化、移动化、智能…

el-table-column自动生成序号在序号前插入图标

实现效果&#xff1a; 代码如下&#xff1a; 在el-table里加入这个就可以了&#xff0c;需要拿到值可以用scope.$index ​​​​​​​<el-table-column type"index" label"序号" show-overflow-tooltip"true" min-width"40">…

如何利用 Puppeteer 的 Evaluate 函数操作网页数据

介绍 在现代的爬虫技术中&#xff0c;Puppeteer 因其强大的功能和灵活性而备受青睐。Puppeteer 是一个用于控制 Chromium 或 Chrome 浏览器的 Node.js 库&#xff0c;提供了丰富的 API 接口&#xff0c;能够帮助开发者高效地处理动态网页数据。本文将重点讲解 Puppeteer 的 ev…

“小浣熊家族AI办公助手”产品体验 — “人人都是数据分析师”

一、引言&#xff1a; 大家平时应该在工作中常常使用到Excel来做数据统计&#xff0c;比如临近过年时&#xff0c;公司一般会开各种复盘、年终、检讨、明年规划大会&#xff0c;势必需要准备一大堆的量化数据报表&#xff0c;用于会议上的数据汇报、分析工作&#xff0c;试想一…

Unity-添加世界坐标系辅助线

如果你想在场景中更直观地显示世界坐标系&#xff0c;可以通过编写一个简单的脚本来实现。下面是一个基本的示例脚本&#xff0c;它会在场景中绘制出世界坐标系的三个轴&#xff1a; using UnityEngine;public class WorldAxesIndicator : MonoBehaviour {public float length…