Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观

前言

现在,越来越多的人趋向使用ZSH取代(Linux)原本的Bash作为自己的终端Shell。的确,ZSH才是适用于现代的Shell:

  • 更丰富的命令提示
  • 更鲜明的演示标记
  • 更强大的插件支持

什么是ZSH

回答什么是ZSH前,我们先解释什么是Bash:

Bash最早在1989年发布第一个正式版本(2020年12月7日还发布了最新稳定版本5.1)。是Shell的一个版本。

而ZSH和Bash一样,ZSH也是终端内的一个命令行解释器(Shell),

具体表现为其作用是用户输入一条命令,Shell 就立即解释执行一条。不局限于系统、语言等概念、操作方式和表现方式等。比如:我们使用的cdwgetcurlmount等命令。

传统的shell(如:Bash),命令和显示的文字以单色为主;而ZSH不仅支持彩色字体,还支持命令填充:

macOS安装ZSH

macOS安装ZSH过于简单,我们先讲解。

默认情况下:

  • macOS High Sierra(mac10.13系统)系统自带ZSH
  • macOS Catalina(mac10.15系统)系统开始,默认使用ZSH

所以,如果你的系统,是macOS Catalina以后的版本,可以直接跳过此步骤(下列的激活ZSH也跳过

激活ZSH

旧版本的macOS也是有自带zsh,你可以在终端内输入:

cat /etc/shells

可以看到,有一个/bin/zsh选项,说明已安装

如果没有/bin/zsh选项,可能是你的macOS版本实在是太旧,可以使用Homebrew去安装ZSH:

brew install zsh

 有了/bin/zsh选项后,我们设置为默认Shell,然后输入密码,最后,重启终端,就是ZSH了。

chsh -s /bin/zsh

配置Oh-my-zsh

1. 什么是Oh-my-zsh

ZSH的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,一些极客为了让更多人受益,开发了Oh-my-zsh这个插件,用来简化zsh的配置,让zsh更加容易上手。

2. 安装Oh-my-zsh

Oh-my-zsh十分简单,可以看看项目地址:https://github.com/ohmyzsh/ohmyzsh。

官方配置非常简单,但是因为项目官方脚本在GitHub的原因,国内访问可能有点困难,为此给大家提供三个方法配置。

官方配置

Linux/Mac打开终端,输入官方提供的脚本:

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

为了保证脚本能顺利运行,你的Linux/Mac服务器需要:

  • 提前安装gitcurl
  • 可以成功连接GitHub
  • 如果有~/.zshrc文件,最好提前备份

如果上述方式下载不下来,可以自己用git clone(有的时候git clone 不下来,可以多试几次)

git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh 失败了

手动配置

其实,手动配置重复的内容就是我写的脚本配置:

  1. 在oh-my-zsh的github主页,手动将zip包下载下来。
  2. 将zip包解压,拷贝至~/.oh-my-zsh目录。
  3. 执行cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc或手动复制~/.oh-my-zsh/templates/zshrc.zsh-template内文件内容~/.zshrc内。(如果没有~/.zshrc文件,可以手动创建)
  4. 重启终端或终端输入source ~/.zshrc使配置生效

不是很建议普通用户使用手动配置去配置Oh-my-zsh。

配置主题和内置插件:

vim ~/.zshrc,然后添加以下两行(注意注释已存在的)

ZSH_THEME="alanpeabody"
plugins=(git web-search jsontools z vi-mode zsh-syntax-highlighting zsh-autosuggestions)

其中zsh-syntax-highlighting zsh-autosuggestions是第三方插件,需要自己git clone

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions​
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting​

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

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

相关文章

C++11新标准

重点 auto 类型推导范围 for 迭代初始化列表变参模板 新类型 C11新增了类型 long long 和 unsigned long long,以支持64位(或更宽)的整型;新增了类型 char16_t和 char32_t,以支持 16位和 32 位的字符表示;还新增了“原始”字符串。 常量 nullptr nu…

SpringAI Prompt提示词

基本概念 Prompts提示词 ❝ 提示词的是引导AI模型输出的输入,提示词的正确性直接影响模型输出的。 Message消息 Message 接口封装了 Prompt 文本内容、一组元数据属性以及称为 MessageType 的分类。Spring AI消息API: 其中最重要的就是角色: …

力扣刷题——二分查找

数组是存放在连续内存空间上的相同类型数据的集合数组下标都是从0开始的数组内存空间的地址是连续的正是因为数组在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。 使用二分查找法返回的元素下标可能不是唯一的…

黑群晖NAS部署DeepSeek模型与内网穿透实现本地AI服务

文章目录 前言1.安装Container Manager2. 启动ssh功能3. ssh连接黑群晖4. 安装Ollama5. 安装deepseek模型6. 安装open-webui图形界面7. 安装内网穿透7.1 下载cpolar套件7.2 配置群辉虚拟机7.3 配置公网地址小结 7.4 配置固定公网地址 总结 前言 在追求自建网络存储方案的极客群…

Rust 学习笔记:处理任意数量的 future

Rust 学习笔记:处理任意数量的 future Rust 学习笔记:处理任意数量的 future竞争的 future将控制权交给运行时构建我们自己的异步抽象 Rust 学习笔记:处理任意数量的 future 当两个 future 切换到三个 future 时,我们也必须从使用…

2025年TCP洪水攻击防护实战全解析:从协议对抗到AI智能防御

一、2025年TCP洪水攻击的新特征与挑战 AI驱动的自适应攻击 攻击者利用生成式AI动态调整SYN报文特征(如载荷内容、发送频率),使攻击流量与正常业务流量的差异率低至0.5%,传统基于规则引擎的防御策略完全失效。 混合协议打击常态化…

二、集成开发环境(IDE)

上节我们在终端演示了python虚拟环境的用法,但终端不方便代码编写和调试,本节介绍两种常用的python集成开发环境:Pycharm和Jupter Notebook。Pycharm是最流行的Python IDE,下载网址:下载 PyCharm:JetBrains…

芯片电感需求趋势及选型关键因素

随着AI产业的快速发展,数据中心、AI芯片、服务器等算力基础设施对于芯片电感等电子元件的要求不断提升。另一方面,电子产品向高功率密度和小型化方向发展,电源模块趋于小型化、低电压、大电流,也对芯片电感提出了小型化、轻量化、…

Vue3+Element Plus表单验证实战:从零实现用户管理

前言 在Vue3项目开发中,表单验证是保证数据完整性和准确性的重要环节。Element Plus作为Vue3的流行UI组件库,提供了强大的表单验证功能。本文将基于一个用户管理模块的实战案例,详细介绍Vue3中如何使用Element Plus实现完整的表单验证流程。…

力扣上C语言编程题:合并区间(涉及数组)

一. 简介 本文记录力扣网上涉及数组方面的编程题,主要以 C语言实现。 二. 力扣上C语言编程题:合并区间(涉及数组) 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所…

SEO长尾词与关键词优化实战

内容概要 在SEO优化体系中,核心关键词与长尾词的协同作用直接影响流量获取效率与用户触达精度。本文将从基础概念切入,系统梳理核心关键词的筛选标准与竞争强度评估方法,并深入探讨长尾词在细分场景下的价值定位。通过分析用户搜索行为与意图…

博图SCL语言教程:灵活加、减计数制作自己的增减计数器(CTUD)

博图SCL语言教程:使用SCL实现增减计数器(CTUD) 一、什么是增减计数器(CTUD)? 增减计数器(Up-Down Counter)是PLC编程中的基础功能块,具有以下特性: CU (Count Up):上升沿触发计数值增加 CD (…

Android 应用被kill问题排查和处理

一、背景 博主有一款应用市场应用,同样的应用,在Android 10上开启三个下载正常,在Android 14上开启下载安装,很频繁被kill。首先想到的是,是不是应用内存太高,导致被kill,通过工具分析内存也不高,后面就想到是不是系统本身分配给应用的内存就不高,后来通过排查,确实是和系统的…

从代码学习深度强化学习 - 多臂老虎机 PyTorch版

文章目录 前言创建多臂老虎机环境多臂老虎机算法基本框架(基类)1. ε-贪心算法 (Epsilon-Greedy)2. 随时间衰减的ε-贪婪算法 (Decaying ε-Greedy)3. 上置信界算法 (Upper Confidence Bound, UCB)4. 汤普森采样算法 (Thompson Sampling)总结前言 欢迎来到“从代码学习深度强化…

Android学习之Window窗口

Android Window机制学习笔记 在使用Window Flag实现界面全屏功能时,发现自身对Android Window机制缺乏系统认知,因此进行了专项学习与整理。 本文主要参考以下优质资料: Android的Window详解Android官方Window文档 Window基本概念 1. Win…

华为云 Flexus+DeepSeek 征文|搭建部署Dify-LLM推理引擎,赋能AI Agent智能体实现动态联网搜索能力

华为云 Flexus 云服务器 X 实例专门为 AI 应用场景设计。它提供了强大的计算能力,能够满足 DeepSeek 模型以及后续搭建 AI Agent 智能体过程中对于数据处理和模型运行的高要求。在网络方面,具备高速稳定的网络带宽,这对于需要频繁联网搜索信息…

Python 100个常用函数全面解析

Python 100个常用函数全面解析 1. 类型转换函数 1.1 int() 将字符串或数字转换为整数。 # 基本用法 int(123) # 123 int(3.14) # 3# 指定进制转换 int(1010, 2) # 10 (二进制转十进制) int(FF, 16) # 255 (十六进制转十进制)# 临界值处理 int() # ValueError: …

分享在日常开发中常用的ES6知识点【面试常考】

前言 在日常的业务开发中,可以熟悉运用掌握的知识点快速解决问题很重要。这篇分享JS相关的知识点,主要就是对数据的处理。 注意:本篇分享的知识点,只是起到一个抛砖引玉的作用,详情的使用和更多的ES6知识点还请参考官…

CHI协议验证中的异常及边界验证

CHI协议验证中的异常及边界验证 针对 CHI 协议的错误注入工具、覆盖率衡量方法及实际项目中的投入平衡 CHI 协议作为多核系统中复杂的缓存一致性协议,验证其行为需要强大的工具和方法来执行错误注入和边界条件测试,并衡量测试覆盖率。以下详细讨论常用工具、覆盖率评估方法及…

技术专栏|LLaMA家族——模型架构

LLaMA的模型架构与GPT相同,采用了Transformer中的因果解码器结构,并在此基础上进行了多项关键改进,以提升训练稳定性和模型性能。LLaMA的核心架构如图 3.14 所示,融合了后续提出的多种优化方法,这些方法也在其他模型&a…