Linux下如何安装配置Zsh Shell

Zsh是一种强大的Shell,它是在Bash原有功能的基础上进行了扩展和改进,提供了更多的特性和功能。在Linux下安装和配置Zsh Shell相对简单,下面将详细介绍安装和配置Zsh Shell的步骤。

第一步:安装Zsh

在Linux上安装Zsh有几种不同的方式,下面将介绍几种常见的方式。

方式一:通过包管理器安装

大多数Linux发行版都有自己的软件包管理器,可以通过软件包管理器来安装Zsh。

对于Debian和Ubuntu系统,可以使用apt-get命令来安装Zsh:

sudo apt-get install zsh

对于Red Hat和CentOS系统,可以使用yum命令来安装Zsh:

sudo yum install zsh

方式二:从源码编译安装

如果你无法通过包管理器安装Zsh,或者你想要安装一个特定版本的Zsh,可以尝试从源码编译安装。

首先,你需要下载最新的Zsh源码包。可以从Zsh官方网站(https://www.zsh.org/)上下载最新版本的源码包,或者使用git从GitHub上获取最新的代码:

git clone https://github.com/zsh-users/zsh.git

下载完源码包后,进入源码目录:

cd zsh

然后,运行以下命令进行编译和安装:

./configure
make
sudo make install

方式三:使用Oh My Zsh进行安装

Oh My Zsh是一个开源的Zsh配置框架,它提供了丰富的插件、主题和扩展,可以极大地提升Zsh的功能和易用性。

要使用Oh My Zsh,首先需要安装Zsh,可以参考上述的方式一或方式二进行安装。

然后,可以使用curl或wget命令来安装Oh My Zsh:

使用curl命令:

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

使用wget命令:

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

安装脚本会自动下载和安装Oh My Zsh,并将Zsh设置为默认Shell。

方式四:通过Docker安装

如果你使用Docker,可以通过以下命令在一个Docker容器中安装Zsh:

docker run -it ubuntu /bin/bash
apt-get update
apt-get install -y zsh

第二步:设置Zsh为默认Shell

安装完Zsh后,我们还需要将其设置为默认Shell。

首先,可以通过以下命令查看当前支持的Shell列表:

cat /etc/shells

然后,使用chsh命令将Zsh设置为默认Shell:

chsh -s /bin/zsh

执行以上命令后,系统会提示你输入密码。输入密码后,Zsh就被设置为默认Shell了。

第三步:配置Zsh

安装和设置Zsh后,我们还可以对Zsh进行个性化配置,以满足自己的需求。

Zsh的配置文件是一个名为.zshrc的文件,它位于用户的家目录下。我们可以使用任何文本编辑器来编辑这个文件。

使用vim编辑器编辑.zshrc文件:

vim ~/.zshrc

以下是一些常见的Zsh配置选项:

主题

Zsh的主题决定了Shell提示符的样式,默认的主题是robbyrussell。你可以在.zshrc文件中修改主题。

将以下内容添加到.zshrc文件中:

ZSH_THEME="agnoster"

这会将主题设置为agnoster。还有许多其他的主题可供选择,你可以在Oh My Zsh的主题库 中找到更多主题。

插件

Zsh还支持各种插件,可以扩展其功能。你可以在.zshrc文件中启用和配置插件。

将以下内容添加到.zshrc文件中:

plugins=(git z extract)

这会启用git、z和extract插件。你可以在Oh My Zsh的插件库 中找到更多插件。

别名

Zsh支持创建别名,可以用简短的命令来执行复杂的命令序列。

将以下内容添加到.zshrc文件中:

alias ll="ls -alh"

这会创建一个名为ll的别名,可以用来执行ls -alh命令。

导出环境变量

我们还可以在.zshrc文件中导出环境变量。

将以下内容添加到.zshrc文件中:

export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

这会将JAVA_HOME环境变量设置为/usr/lib/jvm/java-11-openjdk-amd64。

完成配置后,保存并退出.zshrc文件。

第四步:重新启动Shell

完成上述配置后,我们需要重新启动Shell才能应用新的设置。

可以通过各种方式重新启动Shell。如果你是在终端中进行的操作,可以直接关闭终端窗口然后重新打开。

如果你是在图形界面中进行的操作,可以注销当前用户然后重新登录。

在重新启动Shell后,你将看到新的Zsh提示符和应用了新的配置。

至此,你已经成功地安装和配置了Zsh Shell。现在你可以尽情享受Zsh带来的强大功能和便利性了!

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

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

相关文章

解决zabbix-server7 中文乱码问题

系统使用centos9 安装中文支持 yum install -y fontconfig langpacks-zh_CN.noarch 检查是否已有中文字体: fc-list :langzh 看到 直接使用GOOGLE的字体 ln -fs /usr/share/fonts/google-noto-cjk/NotoSansCJK-DemiLight.ttc /etc/alternatives/zabbix-web-fo…

bool数组的理解和应用[C++]

文章目录 bool数组的用法bool数组的定义声明bool数组的初始化访问和修改数组元素遍历数组 运用bool数组简单代码 在今天做题中发现了bool类不仅能用于函数类型还能用于数组类型,好奇查了查发现bool还有很多用处:基本变量,在枚举类型中会用到&…

【C语言】结构体详解 -《探索C语言的 “小宇宙” 》

目录 C语言结构体(struct)详解结构体概览表1. 结构体的基本概念1.1 结构体定义1.2 结构体变量声明 2. 结构体成员的访问2.1 使用点运算符(.)访问成员输出 2.2 使用箭头运算符(->)访问成员输出 3. 结构体…

一个C++模板工厂的编译问题的解决。针对第三方库的构造函数以及追加了的对象构造函数。牵扯到重载、特化等

一窥模板的替换和匹配方式:偏特化的参数比泛化版本的还要多:判断是不是std::pair<,>。_stdpair模板参数太多-CSDN博客 简介 在一个项目里,调用了第三封的库,这个库里面有个类用的很多,而且其构…

边界网关IPSEC VPN实验

拓扑: 实验要求:通过IPSEC VPN能够使PC2通过网络访问PC3 将整个路线分为三段 IPSEC配置在FW1和FW2上,在FW1与FW2之间建立隧道,能够传递IKE(UDP500)和ESP数据包,然后在FW1与PC2之间能够流通数据…

学术研讨 | 基于区块链的隐私计算与数据可信流通研讨会顺利召开

近日,由国家区块链技术创新中心组织的“基于区块链的隐私计算与数据可信流通研讨会”顺利召开,会议邀请了来自全国高校和科研院所的相关领域专家,围绕基于区块链与隐私计算技术的应用需求、研究现状、发展趋势、重点研究方向与研究进展等内容…

Go并发GMP调度模型

如何知道一个对象是分配在栈上还是堆上? Go和C不同,Go的逃逸分析是在编译器完成的;go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用,则优先分配到栈上,否则分配到堆上。那么如何判断是否发生了逃逸呢&#…

数据结构之《队列》

在数据结构之《栈》章节中学习了线性表中除了顺序表和链表外的另一种结构——栈,在本篇中我们将继续学习另一种线性表的结构——队列,在通过本篇的学习后,你将会对栈的结构有充足的了解,在了解完结构后我们还将进行栈的实现。一起…

【LLM】-08-搭建问答系统-语言模型,提问范式与 Token

目录 1、语言模型 1.1、训练过程: 1..2、大型语言模型分类: 1.3、指令微调模型训练过程: 2、Tokens 3、Helper function辅助函数 (提问范式) 4、计算token数量 1、语言模型 大语言模型(LLM)是通过预测下一个词…

一款允许使用Docker部署本地托管的、基于 Web 的 PDF 操作工具

大家好,今天给大家分享的是一个基于Spring Boot开发的开源项目,旨在提供一个功能强大的基于Docker的本地托管PDF操作工具Stirling PDF。 项目介绍 Stirling-PDF是一个全面的PDF工具箱,适用于个人和企业用户,尤其对于那些重视数据…

CasaOS设备使用Docker安装SyncThing文件同步神器并实现远程管理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

C++树形结构(1 基础)

目录 一.基础: 1.概念: 2.定义: Ⅰ.树的相关基础术语: Ⅱ.树的层次: 3.树的性质: 二.存储思路: 1.结构体存储: 2.数组存储: 三.树的遍历模板: 四.信…

用 python scipy 库模拟拥塞控制模型

接着昨天的继续说,参见 inflight 守恒建模。 欧拉数值解看起来不够优雅,所以我打算找个别的方式试一下,顺便学一下 python,我不会编程,但也不是一点也不会,我稍微会一点,所以想进一步学习一点。…

记录unraid docker更新的域名

背景:级联 一、安装内容 unraid更新docker,之前一直失败,修改网络后可以进行安装。 二、查看域名 查看域名,发现是走github的,怪不得有一些docker无法正常更新 三、解决方法 更改代理,这里为unraid的…

STM32智能城市交通管理系统教程

目录 引言环境准备智能城市交通管理系统基础代码实现:实现智能城市交通管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:城市交通管理与优化问题解决方案与优化收尾与总结 1. 引言 智能城…

Vue2高级用法

Vue2高级用法 1、mixin复用【vue不会用了,了解一下】1.1 基础使用1.2 选项合并1.3 全局混入1.4 细数 mixin 存在的问题 2、vue.js 动画特效& 常见组件库介绍2.1 进入/离开基础使用示例2.2 进入/离开自定义过度类名2.3 进入/离开动画钩子2.4 多组件过渡与…

c++树(一)定义,遍历

目录 树的定义 树的基本术语 树的初始起点:我们定义为根 树的层次: 树的定义: 树的性质 性质1: 性质2: 树形结构存储的两种思路 树的遍历模板 树上信息统计方式1-自顶向下统计 树上信息统计方式2-自底向上统…

【UbuntuDebian安装Nginx】在线安装Nginx

云计算:腾讯云轻量服务器 操作系统:Ubuntu-v22 1.更新系统软件包列表 打开终端并运行以下命令来确保你的系统软件包列表是最新的: sudo apt update2.安装 Nginx 使用以下命令安装 Nginx: sudo apt install nginx3.启动 Nginx…

Docker-Compose配置zookeeper+KaFka+CMAK简单集群

1. 本地DNS解析管理 # 编辑hosts文件 sudo nano /etc/hosts # 添加以下三个主机IP 192.168.186.77 zoo1 k1 192.168.186.18 zoo2 k2 192.168.186.216 zoo3 k3注:zoo1是192.168.186.77的别名,zoo2是192.168.186.18的别名,zoo3是192.168.186.1…

企元数智引领新零售合规分销系统免费送

企元数智近日宣布推出全新的新零售合规分销系统,并免费向企业提供这一创新解决方案。这一举措旨在帮助更多企业实现数字化转型,提高管理效率,促进业务增长。 新零售合规分销系统是企元数智引领的一项全新数字解决方案,涵盖了销售数…