【Linux】ubuntu/centos8安装zsh终端

本文详细介绍了如何在Ubuntu、CentOS和通用系统上安装和配置ZSH,包括安装Oh-My-ZSH、常用插件的安装、主题选择、配置文件优化,以及处理中文乱码、Git使用等问题。
摘要由CSDN通过智能技术生成

本文首发于 ❄️慕雪的寒舍

根据这篇知乎文章进行 https://zhuanlan.zhihu.com/p/514636147

1.安装zsh

先安装zsh并设置为默认的终端

# ubuntu
sudo apt install zsh
# centos 
sudo yum install zsh util-linux-user
# 通用
chsh -s /bin/zsh

如果centos下找不到chsh命令,参考此博客:https://blog.csdn.net/FungLeo/article/details/99448425

然后安装oh-my-zsh,这是一个大佬在github上开源的一个zsh配置项,相对方便点

wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh 

如果github连不上就用gitee,如果你用的是子用户,那么这个命令不要用sudo权限执行!否则后续子用户会因为权限问题没办法使用。

sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)"

最终出现如图所示的界面就是安装成功了。

image-20231015205326739

2.安装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://gitee.com/Annihilater/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

这个历史命令建议的插件是用方向键👉来进行补全的,不要和我一样傻乎乎按tab。

3.配置文件和主题

原文中的配置文件有很多地方都不对劲,需要我们修改;

首先是oh-my-zsh的安装路径,需要改成你的用户家目录下,然后需要先安装一下powerlevel10k主题,这个主题很好用!

git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

配置文件~/.zshrc改成如下内容(建议将原本的配置文件cp备份一下)其中的zsh安装路径一定要修改,否则无法正常配置!

# 防止中文乱码
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
# oh-my-zsh的安装路径(zsh的配置路径)
ZSH="/home/你的用户名/.oh-my-zsh"
# ZSH_THEME="robbyrussell"
# 设置字体模式以及配置命令行的主题
POWERLEVEL9K_MODE='nerdfont-complete'
# ZSH_THEME="agnoster"
ZSH_THEME="powerlevel10k/powerlevel10k" # 主题推荐这个,需要进行安装

# 启动错误命令自动更正
ENABLE_CORRECTION="true"

# 在命令执行的过程中,使用小红点进行提示
COMPLETION_WAITING_DOTS="true"

# 配置要使用的插件
plugins=(
        git
        extract
        zsh-autosuggestions
        zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
source $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
# python虚拟环境相关设置
if [ -f /usr/local/bin/virtualenvwrapper.sh ];
then
    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source /usr/local/bin/virtualenvwrapper.sh
fi

改好了之后,启用他,然后就可以了;执行下方命令后,就会自动弹出powerlevel10k主题的配置引导过程。

source ~/.zshrc

image-20231015205703586

如果设置完毕后,你对powerlevel10k/powerlevel10k的配置又不满意了,可以执行如下命令重新配置

p10k configure

你可能也会遇到如下报错,原因未知,但似乎不影响使用

❯ ls
_p9k_worker_stop:zle:4: No handler installed for fd 12
_p9k_worker_stop:5: failed to close file descriptor 12: bad file descriptor

如上报错解决办法参考github的issue内的说明

https://github.com/romkatv/powerlevel10k/issues/1554

在配置文件.zshrc的末尾加上下面这一行,然后source让其生效就可以了

unset ZSH_AUTOSUGGEST_USE_ASYNC

4.使用小技巧

输入命令的时候键入tab,会弹出一些命令的提示

image-20231015210623737

输入之前写过的命令的时候,会出现历史命令提示,使用方向键右👉就可以补全这个命令

image-20231015210708230

zsh主要就是这一点非常的方便,至于会不会和默认的/bin/bash有性能差异,那就不知道了。

另外,在zsh终端中直接重定向会卡住,如下命令就会阻塞掉。

> 文本文件

所以要用echo(一般我是用来清空某个文本文件)

echo > 文本文件

5.zsh安装后git中文乱码

安装zsh后用git log查看提交信息的时候发现中文乱码。

5.1 修改zsh配置文件

其实上文中提到的配置文件里面已经有这两个配置项了,说明问题不在这里

# 防止中文乱码
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

5.2 执行git配置

一篇博客说要执行下面的git命令,也没有用

git config --global core.quotepath false 
git config --global gui.encoding utf-8 
git config --global i18n.commit.encoding utf-8 
git config --global i18n.logoutputencoding utf-8 
set LESSCHARSET=utf-8

5.3 修改系统字符配置

另外一篇博客说要修改系统的字符集配置,如下环境变量

export LESSCHARSET=utf-8

执行后确实ok了,可以编辑/etc/profile文件,在该文件末尾追加如下内容让其始终生效

export LESSCHARSET=utf-8

随后用source命令刷新这个配置文件即可。

6.粘贴文本很慢的问题

参考 zsh-users/zsh-autosuggestions/issues/238 解决这个问题

.zshrc之后添加如下配置项

# This speeds up pasting w/ autosuggest
# https://github.com/zsh-users/zsh-autosuggestions/issues/238
pasteinit() {
  OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
  zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}

pastefinish() {
  zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish

配置了之后,source使其生效。

这时候在终端里面粘贴内容的时候,就不会一个一个字符地打印出来了。那样实在是太慢了。

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux UbuntuCentOS是两种不同的Linux操作系统。它们的区别在于: 1. 发行商:Ubuntu由Canonical Ltd.开发和维护,而CentOS由Red Hat公司开发和维护。 2. 目标用户:Ubuntu主要面向桌面用户和初学者,而CentOS主要面向服务器和企业用户。 3. 软件包管理:Ubuntu使用apt-get和dpkg作为软件包管理工具,而CentOS使用yum和rpm。 4. 更新周期:Ubuntu每6个月发布一个新版本,每个版本提供9个月的支持。CentOS每2年发布一个新版本,每个版本提供10年的支持。 5. 默认桌面环境:Ubuntu默认使用Unity桌面环境,而CentOS默认使用GNOME桌面环境。 总的来说,Ubuntu更适合桌面用户和初学者,而CentOS更适合服务器和企业用户。 ### 回答2: Linux是一个自由和开放源代码的操作系统内核,它于1991年由Linus Torvalds创建。Linux是一种Unix操作系统,它可以在PC、服务器、移动设备和其他嵌入式设备中运行。目前,有许多不同的Linux发行版,其中包括UbuntuCentOSUbuntu是一种基于Debian的Linux发行版,它由Canonical Ltd.开发。Ubuntu以易于使用和基础设施的强大功能而闻名,许多开发者和企业使用它来构建Web服务器和云平台。其桌面界面被认为是非常友好和易于使用的,并且有一个巨大的第三方软件库,使得安装和维护软件变得容易。 CentOS是以企业级应用为目标的Linux发行版,它基于Red Hat Enterprise Linux(RHEL)的代码库。虽然RHEL是一个商业版本,但CentOS是免费的且源代码也是公开的。它具有非常稳定和可靠的软件包,以及针对企业级应用的安全性和稳定性功能。它也可以作为Web服务器和云平台使用。 虽然UbuntuCentOS都是Linux发行版,但它们之间还是有一些区别。首先,它们的软件包管理系统不同:Ubuntu使用dpkg和apt-get,而CentOS使用yum。此外,Ubuntu有更快的版本发布周期并且更新更频繁,而CentOS更注重稳定性和安全性,因此更新周期更长。最后,Ubuntu更适合桌面环境和个人用户,而CentOS更适合企业级应用。 总的来说,选择Ubuntu还是CentOS取决于用户的需求和偏好。如果需要一个稳定的、安全的服务器,那么CentOS可能是更好的选择;如果需要一个易于使用和更新、大量可用软件的桌面环境,那么Ubuntu可能更适合。 ### 回答3: Linux操作系统是一种自由、开放源码的操作系统,许多发行版选择外壳以自己定致, 两种最流行的Linux发行版是UbuntuCentOS。虽然它们都是Linux,但它们之间还是有许多不同的地方。 首先,UbuntuCentOS的使用场景不同。Ubuntu通常用于桌面以及个人电脑使用,因为它具有一个易于使用的界面,能够适应用户的需求。而CentOS通常用于服务器环境中,因为它有较强的稳定性,在企业级应用中广泛使用。 其次,UbuntuCentOS的更新方式不同。Ubuntu是一个半年一次的版本更新,这意味着在每次更新时它会抛弃过时的软件包,选择新的,更新他们,这样保证每半年有最新的软件包和更新。而CentOS是基于Red Hat Enterprise Linux (RHEL) 的镜像,不同之处在于它们会更注重于稳定性而不是更新。这就使得CentOS适合作为服务器操作系统。 另外,UbuntuCentOS在支持软件包上面有所不同。 Ubuntu是基于Debian的,所以它使用了.deb包,并且在其上使用APT作为其软件包管理器,这使得软件包的管理非常方便。 而CentOS是基于Red Hat的,所以它使用了.rpm包,并且使用yum作为其软件包管理器。此外, CentOS也有自己的仓库,包含了许多企业级应用并保证了软件包的稳定性。 最后,UbuntuCentOS在用户社区方面有所不同。虽然两个操作系统都有用户社区的支持,但是Ubuntu的用户社区更加庞大,生态更加发达,因此可以更快地获得解答或解决方案。而CentOS的用户社区更加小众,但是他们中的大多数都是经验丰富的专业人员,可以提供更深入的技术支持。 总之,UbuntuCentOS都是优秀的操作系统,有各自不同的特点和适用场景,选择适合自己的操作系统,才能更好地满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕雪华年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值