ubuntu使用oh my zsh美化终端

ubuntu使用oh my zsh美化终端

文章目录

  • ubuntu使用oh my zsh美化终端
    • 1. 安装zsh和oh my zsh
    • 2. 修改zsh主题
    • 3. 安装zsh插件
    • 4. 将`.bashrc`移植到`.zshrc`
    • Reference

1. 安装zsh和oh my zsh

首先安装zsh

sudo apt install zsh

然后查看本地有哪些shell可以使用

cat /etc/shells 

将默认的shell切换为zsh

chsh -s /bin/zsh

然后安装oh-my-zsh,参考官网提供的两种安装方式

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

或者

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

2. 修改zsh主题

oh-my-zsh内置了很多主题,可以进入路径~/.oh-my-zsh/themes下进行查看,如图所示

Image

如果想要修改成自己喜欢的主题,可以

sudo gedit ~/.zshrc

然后找到ZSH_THEME="xxxx",将其修改为已经安装的主题就行,保存然后退出,打开终端

source ~/.zshrc

这里推荐一个主题powerlevel10k,只需要将其git到~/.oh-my-zsh/custom/themes/powerlevel10k目录下即可,

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

然后再配置~/.zshrc文件

sudo gedit ~/.zshrc

修改为ZSH_THEME="powerlevel10k/powerlevel10k",然后source

source ~/.zshrc

效果如下

Image

3. 安装zsh插件

zsh的内置插件可以在路径~/.oh-my-zsh/plugins中进行查看,如下图所示

Image

别的插件可以在:awesome-zsh-plugins进行查找

这里推荐两个插件,第一个是支持自动补全的zsh-autosuggestions

zsh-autosuggestions

我们只需要将其git到路径~/.oh-my-zsh/custom/plugins中,然后配置~/.zshrc文件即可

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

然后在~/.zshrc中把插件添加到插件列表中

plugins=(# other plugins...zsh-autosuggestions  # 插件之间使用空格隔开
)

然后source一下

source ~/.zshrc

zsh-syntax-highlighting 是一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色。

按照相同的流程,我们即可配置这个插件,将其git到~/.oh-my-zsh/custom/plugins

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

然后在~/.zshrc中将zsh-syntax-highlighting插入插件列表

plugins=(# other plugins...zsh-autosuggestionszsh-syntax-highlighting
)

然后source一下

source ~/.zshrc

4. 将.bashrc移植到.zshrc

笔者之前一直在使用bash然后配置了一些资源路径,比如rosanaconda还有一些别的环境变量比如cudacudnn等,要进行移植其实很简单,大部分的时候我们只需要将xxx.bash替换为xxx.zsh即可,然后别的一些环境变量的设置可以直接复制过去。举个例子

这是我的.bashrc自己添加的部分

# >>> clash <<<
export PATH=$PATH:/opt/clash# >>> cuda <<<
export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
# export CUDA_HOME=/usr/local/cuda-11.1# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/your_usr_name/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh" ]; then. "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh"elseexport PATH="/home/your_usr_name/miniconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<# >>> ros noetic <<< 
source /opt/ros/noetic/setup.bash
# >>> ros2 foxy <<<
# source /opt/ros/foxy/setup.bash# >>> ur5 workspace <<<
source /home/your_usr_name/Documents/catkin_ur5/devel/setup.bash
# >>> frcobot workspace <<<
source /home/your_usr_name/Documents/catkin_frco/devel/setup.bash# >>> pyorbbecsdk <<<
export PYTHONPATH=$PYTHONPATH:/home/your_usr_name/Documents/pyorbbecsdk/install/lib/

我将其放在.zshrc中就修改如下

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/your_usr_name/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh" ]; then. "/home/sjhyour_usr_nameminiconda3/etc/profile.d/conda.sh"elseexport PATH="/home/your_usr_name/miniconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<# >>> clash <<<
export PATH=$PATH:/opt/clash# >>> cuda <<<
export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
# export CUDA_HOME=/usr/local/cuda-11.1# >>> ros noetic <<< 
source /opt/ros/noetic/setup.zsh
# >>> ros2 foxy <<<
# source /opt/ros/foxy/setup.zsh# >>> ur5 workspace <<<
source /home/your_usr_name/Documents/catkin_ur5/devel/setup.zsh
# >>> frcobot workspace <<<
source /home/your_usr_name/Documents/catkin_frco/devel/setup.zsh# >>> pyorbbecsdk <<<
export PYTHONPATH=$PYTHONPATH:/home/your_usr_name/Documents/pyorbbecsdk/install/lib/

Reference

[1]zsh 安装与配置:9步打造高效命令行

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

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

相关文章

使用nexus搭建的nodejs私库,定期清理无用的npm组件,彻底释放磁盘空间

一、背景 昨天我们整理了一篇关于docker私库&#xff0c;如何定期清理以释放磁盘空间的文章。 虽然也提及了npm前端应用的组件该如何定期清理的&#xff0c;本文是对它作一个补充说明。 前文也看到了&#xff0c;npm组件占用的blob空间为180多GB&#xff0c;急需清理。 二、…

100个 Unity小游戏系列三 -Unity 抽奖游戏专题一 转盘抽奖游戏

一 、效果展示 二、知识点 2.1 布局需要实现功能 1、转动的根目录为itemSpinRoot 2、创建对应的item 3、每个item转动的角度 2.2 代码 public class WheelDialog : UIBase{[SerializeField] Button btnClick;[SerializeField] Button btnClose;[SerializeField] Sprite[] ite…

哪有异地组网的工具?

不同地区的电脑与电脑、设备与设备、电脑与设备之间的信息远程通信&#xff0c;一直是企业和个人面临的难题。通过使用天联组网的解决方案&#xff0c;这个问题将迎刃而解。 天联组网解决方案 天联组网是一种可以实现不同地区之间电脑、设备及其之间的信息远程通信的解决方案。…

Trie字符串统计-java

Trie&#xff0c;又称前缀树或字典树&#xff0c;是一种有序树&#xff0c;用于保存关联数组&#xff0c;其中的键通常是字符串。 目录 前言☀ 一、Trie字符串统计☀ 二、算法思路☀ 1.Trie树定义&#x1f319; 2.变量解释&#x1f319; 3.插入操作&#x1f319; 4.Trie树查找操…

【class18】人工智能初步----语音识别(4)

【class17】 上节课&#xff0c;我们学习了: 语音端点检测的相关概念&#xff0c;并通过代码切分和保存了音频。 本节课&#xff0c;我们将学习这些知识点&#xff1a;1. 序列到序列模型2. 循环神经网络3. 调用短语音识别接口 知其然&#xff0c;知其所以然 在调用语…

数组单调栈-901. 股票价格跨度、leetcode

单调栈作为一种数据结构在求解类递增、递减方面的题目中有较为广泛的应用&#xff0c;在以往的leetcode中所见到的相关单调栈的题目均为单一元素&#xff0c;今天刷到901题目时&#xff0c;想到了将数组元素作为单调栈中元素的方法进行求解。 题目链接及描述 901. 股票价格跨…

【c++leetcode】69. Sqrt(x)

问题入口 二分搜索 最困难的是能否意识到用二分搜索法解题。 算术平方根的区间在[1, x] 。代码如下&#xff1a; class Solution { public:int mySqrt(int x) {if (x 1 || x 0){return x;}int64_t start 1;int64_t end x;while (start < x){int64_t mid start (en…

以果决其行,只为文化的传承

从他们每一个人的身上&#xff0c;我们看到传神的东西&#xff0c;就是他们都能用结果&#xff0c;去指引自己前进的方向&#xff0c;这正是我要解读倪海厦老师的原因&#xff0c;看倪海厦2012年已经去世&#xff0c;到现在已经十几年时间了&#xff0c;但是我们看现在自学中医…

【Pandas】深入解析`pd.to_sql()`函数

【Pandas】深入解析pd.to_sql()函数 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1…

2024年第六届中青杯数学建模竞赛浅析

获取比赛资料&#xff0c;请关注gzh“小何数模”&#xff01; 本次中青杯数学建模的赛题已正式出炉&#xff0c;无论是赛题难度还是认可度&#xff0c;该比赛都是仅次于数模国赛的独一档&#xff0c;可以用于国赛前的练手训练。考虑到大家解题实属不易&#xff0c;为了帮助大家…

JavaSE:StringBuilder和StringBuffer类

1、引言 在上一篇文章中&#xff0c;我们理解了字符串的常用方法&#xff0c;细心的同学大概已经发现&#xff0c;不管是将字符串中的字符转变为大写或小写&#xff0c;或是完成字符串的替换&#xff0c;又或是去除空白字符等等&#xff0c;只要涉及到字符串的修改&#xff0c…

【PB案例学习笔记】-10 进度条使用

写在前面 这是PB案例学习笔记系列文章的第10篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

Java用反射reflect来实例化对象: class.getDeclaredConstructor().newInstance()

Java用反射reflect来实例化对象: class.getDeclaredConstructor().newInstance() 从java9开始, class.newInstance()已过时, 被加上Deprecated强烈反对注解 SuppressWarnings("removal")CallerSensitiveDeprecated(since"9")public T newInstance()throws …

防止自动化攻击的最佳实践

防止自动化攻击的最佳实践 在当今的网络安全环境中&#xff0c;保护用户账户免受自动化攻击已成为每个网站和应用程序的重要任务。攻击者可以利用多种不同类型的自动化攻击来尝试破坏用户账户。本文将详细介绍常见的攻击类型及其防御机制&#xff0c;帮助您更好地保护用户账户…

adb 连接机顶盒命令

抓机顶盒日志的方法&#xff0c;使用此命令进行抓日志&#xff0c;个别无法抓日志的盒子可以使用此方法 1、安卓9.0版本查询命令 ps -ef |grep com.cm.webos.iptv 2、安卓4.4版本查询命令 ps |grep com.cm.webos.iptv 3、查询顺序&#xff1a;首先进入shell下进行操作 adb she…

C++青少年简明教程:for循环语句

C青少年简明教程&#xff1a;for循环语句 C的for循环语句是一种迭代控制语句&#xff0c;用于重复执行一段代码。 语法格式&#xff1a; for(表达式1&#xff1b;表达式2&#xff1b;表达式3) 循环体 for循环语句执行流程图&#xff1a; 不太好理解&#xff0c;请看下图&am…

VSCode配置Lua5.4安装

参考&#xff1a;VSCode 配置 Lua 开发环境(清晰明了)_lua vscode-CSDN博客 1.下载 Lua Binaries Download (sourceforge.net) 2.配置环境变量 解压放到某文件夹&#xff1a; 环境变量&#xff1a; 3.VSCode安装插件 4.配置 5.测试

Python | Leetcode Python题解之第116题填充每个节点的下一个右侧节点指针

题目&#xff1a; 题解&#xff1a; class Solution:def connect(self, root: Node) -> Node:if not root:return root# 从根节点开始leftmost rootwhile leftmost.left:# 遍历这一层节点组织成的链表&#xff0c;为下一层的节点更新 next 指针head leftmostwhile head:#…

快解析动态域名解析,实现外网访问内网数据库

今天跟大家分享一下如何借助快解析动态域名解析&#xff0c;在两种特定网络环境下&#xff0c;实现外网访问内网mysql数据库。 第1种网络环境&#xff1a;路由器分配的是动态公网IP&#xff0c;且有路由器登录管理权限。如何实现外网访问内网mysql数据库&#xff1f; 针对这种…

继承与Object

一.继承 Java语言的继承&#xff1a;单继承 1.类和类之间的关系 (1)组合关系 公司和员工&#xff0c;学校和学生 (2)继承关系 学生和人 二.Object类 public class Object {private static native void registerNatives();static {registerNatives();} 1.finalize() 对象…