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,一经查实,立即删除!

相关文章

贪心算法 | 763.划分字母区间

题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。…

解决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. 结构体…

【CSS】1 像素问题

CSS 中的 1 像素问题指的是在⾼分辨率屏幕上显示的 1 像素边框或者细线在实际显示时会⽐ 1 个物理像素更宽或更粗,从⽽导致边框或者细线看上去⽐预期的更粗或者更宽。 造成这个问题的原因是由于⾼分辨率屏幕的像素密度⽐传统的屏幕要⾼,所以在屏幕上显示…

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

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

边界网关IPSEC VPN实验

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

GitHub 详解教程

1. 引言 GitHub 是一个用于版本控制和协作的代码托管平台,基于 Git 构建。它提供了强大的功能,使开发者可以轻松管理代码、追踪问题、进行代码审查和协作开发。 2. Git 与 GitHub 的区别 Git 是一个分布式版本控制系统,用于跟踪文件的更改…

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

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

Go并发GMP调度模型

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

数据结构之《队列》

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

vue3-02声明响应式状态ref()

一、使用 组合式 API 中,推荐使用 ref() 函数来声明响应式状态,例如 import { ref } from vue const count ref(0)注意点1:若想获取ref定义的参数,必须获取参数的value值, 比如: console.log(count, co…

2024海外电商数据分析之南美篇

南美洲,一片广袤而充满活力的大陆,以其独特的地理位置和丰富的自然资源,孕育了15个国家和4.3亿人口。与北美洲的三国(美国、加拿大和墨西哥)及中美洲的七国相比,南美洲以其年轻的人口结构和巨大的市场潜力&…

【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工具箱,适用于个人和企业用户,尤其对于那些重视数据…

js 优雅的实现模板方法设计模式

在JavaScript中,优雅地实现模板方法设计模式通常意味着我们要遵循一些最佳实践,如清晰地定义算法的骨架(模板方法),并确保子类能够灵活地扩展或修改这些算法中的特定步骤。由于JavaScript是一种动态语言,我…

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

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

巨量数据表分页问题

1 背景 分页性能问题,之前遇到过这类问题,拿出来再讨论下 2 分析 分页性能问题,特别是在数据量大的情况下,是一个常见的问题。通常,当我们使用类似 LIMIT 和 OFFSET 的SQL语句进行分页时,性能问题尤其明显。这是因为随着 OFFSET 的增加,数据库需要跳过更多的行才能获…

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

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

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

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