ubuntu使用oh my zsh美化终端

ubuntu使用oh my zsh美化终端

文章目录

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

1. 安装zsh和oh my zsh

首先安装zsh

bash 复制代码
sudo apt install zsh

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

bash 复制代码
cat /etc/shells 

将默认的shell切换为zsh

bash 复制代码
chsh -s /bin/zsh

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

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

或者

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

2. 修改zsh主题

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

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

bash 复制代码
sudo gedit ~/.zshrc

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

bash 复制代码
source ~/.zshrc

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

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

然后再配置~/.zshrc文件

bash 复制代码
sudo gedit ~/.zshrc

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

bash 复制代码
source ~/.zshrc

效果如下

3. 安装zsh插件

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

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

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

zsh-autosuggestions

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

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

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

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

然后source一下

bash 复制代码
source ~/.zshrc

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

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

bash 复制代码
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插入插件列表

bash 复制代码
plugins=(
    # other plugins...
    zsh-autosuggestions
    zsh-syntax-highlighting
)

然后source一下

bash 复制代码
source ~/.zshrc

4. 将.bashrc移植到.zshrc

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

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

bash 复制代码
# >>> 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 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh"
    else
        export 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中就修改如下

bash 复制代码
# >>> 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 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/your_usr_name/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/sjhyour_usr_nameminiconda3/etc/profile.d/conda.sh"
    else
        export 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

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

相关推荐
IT曙光16 小时前
ubuntu apt-get离线源制作
linux·ubuntu
其实防守也摸鱼16 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚16 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
Darkwanderor18 小时前
对Linux的进程控制的研究
linux·运维·c++
bksczm20 小时前
linux之线程概念和控制
linux·开发语言·c++
爱网络爱Linux21 小时前
Linux proc 目录安全加固
linux·运维·rhce·rhca·红帽认证·proc 目录安全加固
hehelm21 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip
MindUp21 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
ICECREAM21 小时前
环形队列设计——基于共享内存的高效进程间通信
linux
pt104321 小时前
思科网络自动化-API常用数据编码格式(JSON/XML/YAML)课程与实践
linux·服务器·网络