【Linux】ubuntu/centos8安装zsh终端

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

根据这篇知乎文章进行 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使其生效。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【优化算法】VMD分解算法的16种优化,对K和alpha参数寻优,附MATLAB代码

在上一篇文章中,我们介绍了优化算法的基本原理和一些常见的生物启发式算法。另外我们封装了一个16合1的寻优函数。 不过在上一篇中,我们举了一个简单的数值模型作为适应度函数的演示案例,然而在实际的研究中,适应度函数往往要复杂…

iOS移动应用实时查看运行日志的最佳实践

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

『Apisix安全篇』APISIX 加密传输实践:SSL/TLS证书的配置与管理实战指南

📣读完这篇文章里你能收获到 🌟 了解SSL/TLS证书对于网络通信安全的重要性和基础概念。🔧 掌握在APISIX中配置SSL/TLS证书的基本步骤和方法。📝 学习如何通过修改监听端口,使HTTPS请求更加便捷。🛠️ 认识…

Redis开源协议调整,我们怎么办?

2024年3月20日, Redis官方宣布,从 Redis 7.4版本开始,Redis将获得源可用许可证 ( RSALv2 ) 和服务器端公共许可证 ( SSPLv1 ) 的双重许可,时间点恰逢刚刚完成最新一轮融资,宣布的时机耐人寻味。 Redis协议调整,对云计算…

FFmpeg 详解

FFmpeg 详解 FFmpeg 详解整体结构不同下载版本的区别常用库常用函数初始化封装格式解码器 版本对比组件注册方式对比FFmpeg 3.x 组件注册方式FFmpeg 4.x 组件注册方式 结构体比对函数对比avcodec_decode_video2()vcodec_encode_video2() 数据结构结构体分析AVFormatContextAVIn…

Day5-

Hive 窗口函数 案例 需求:连续三天登陆的用户数据 步骤: -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…

商场促销--策略模式

1.1 商场收银软件 package com.lhx.design.pattern.test;import java.util.Scanner;public class Test {public static void main(String[] args){System.out.println("**********************************************"); System.out.println("《大话设计模式…

聊聊测试用例评审流程

测试人员将需求熟悉完成后,开始编写相应的测试用例,待测试用例编写完成后只是测试用例完成前的第一步,后边的流程需要组织线上或线下评审会议等等。 首先要了解测试用例评审的最终目的是什么:提高测试用例的质量和覆盖率&#xff…

利用Node.js实现拉勾网数据爬取

引言 拉勾网作为中国领先的互联网招聘平台,汇集了丰富的职位信息,对于求职者和人力资源专业人士来说是一个宝贵的数据源。通过编写网络爬虫程序,我们可以自动化地收集这些信息,为求职决策和市场研究提供数据支持。Node.js以其非阻…

【Frida】【Android】08_爬虫之网络通信库okhttp3

🛫 系列文章导航 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446【Frida】【Android】03_RPC https://bl…

【Spring】分别基于XML、注解和配置类实现Spring的IOC(控制反转)

目录 1、理解loC是什么 2、基于XML实现Spring的IOC(这种方式已经不怎么使用了) 3、基于注解实现Spring的IOC 4、基于javaConfig实现Spring的IOC 5、总结 1、理解loC是什么 lOC:lnversion of Control 控制反转,简称就是 IOC 控…

如何使用极狐GitLab Maven 仓库?

本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何使用极狐GitLa…

Yarn与Zookeeper的介绍

Yarn--三大调度策略 FIFO(先进先出): 目前几乎已经没有人使用了. 类似于: 单行道. 好处: 每个计算任务能独享集群100%的资源. 弊端: 不能并行执行, 如果大任务过多, 会导致小任务执行时间过长. Capacity(容量调度): 我们用…

入门教程:Windows搭建C语言和EasyX开发环境

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 如果对你…

【论文阅读】TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis

TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis 引用: Wu H, Hu T, Liu Y, et al. Timesnet: Temporal 2d-variation modeling for general time series analysis[C]//The eleventh international conference on learning representa…

学习 MongoDB:打开强大的数据库技术大门

一、基本概念 MongoDB 是一个基于分布式文件存储的文档数据库,由 C 语言编写。它旨在为 Web 应用提供可扩展的高性能数据存储解决方案。 相信MySQL我们非常的熟悉,那么MySQL的表结构与MongoDB的文档结构进行类比的话可能更好理解MongoDB。 MySQL的数据…

联通iccid 19转20 使用luhn 算法的计算公式

联通iccid 19转20 使用luhn 算法的计算公式 第一次对接iccid 才知道 使用的是luhn 算法 19转20位 文章来源于 文章来源 当时也是一脸懵逼 的状态,然后各种chatgpt 寻找,怎么找都发现不对,最后看到这片java的文章实验是正确的,因…

ubuntu生成core文件的设置方法

core文件可以很方便的帮助我们查找程序挂的问题,因此在程序挂后生成core文件的很有必要的。 1、查看ulimit参数 ulimit -a 如果core file size是0 需要设置其最大容量。按下面步骤操作 2、设置core文件大小,两种方法 临时生效,重启设备失…

WPF学习笔记-FlowDocument流文档基础知识和基本操作

文章目录 概述一、块元素和内联元素1.1 块元素(Block类)1.2 内联元素(Inline类)二、Paragraph元素2.1 基本属性设置2.2 将内联元素Inline添加到Inlines中2.3 设置中西文字体不一样 三、Table元素3.1 添加新的Table3.2 添加列3.3 添…

采用C#.net6.0+Vue,Ant-Design技术开发的一套大型医院手术麻醉信息系统源码,系统成熟,运行稳定

手术麻醉信息系统源码,C#手麻系统源码,自主版权应用案例(适合上项目) 手术麻醉信息系统可以实现手术室监护仪、麻醉机、呼吸机、输液泵等设备输出数据的自动采集,采集的数据能据如实准确地反映患者生命体征参数的变化&…