Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程

Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程

同步发布在个人笔记Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程

引言

在简单使用的环境下,系统默认的 bash 就已经足够应付了,但是在主力工作电脑上仍然希望配置一个功能更强大美观的终端环境。zsh + 插件 + oh-my-zsh 的搭配可以较好的满足这些需求。

笔记记录完整配置过程,并对配置文件进行备份。

zsh 安装及基础配置

  1. 安装 zsh 环境
bash 复制代码
# 更新软件源
sudo apt update
# 安装 zsh
sudo apt install zsh
  1. 配置 zsh 为默认终端
bash 复制代码
chsh -s /bin/zsh

注意: 使用 zsh 后,配置文件将由 .bashrc 切换为 .zshrc,如果之前有配置一些环境变量或是 alias 的话,需要手动迁移至新文件。

oh-my-zsh 安装及美化配置

oh-my-zsh 安装

官网:Oh My Zsh

推荐使用 curl 或者 wget 进行脚本安装:

bash 复制代码
# 两种 curl 方式 任选其一
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 两种 wget 方式 任选其一
sh -c "$(wget -O- https://install.ohmyz.sh/)"
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

主题美化

官方已经安装好的主题文件都存放在 .oh-my-zsh/themes 路径下

bash 复制代码
# 列出可选主题
ls ~/.oh-my-zsh/themes/

也可以去官网查看主题效果:Oh My Zsh-Themes

配置主题

在安装 oh-my-zsh 的过程中,理应已经将 .zshrc 内容替换完毕了,以后的配置都将在此文件中进行。

以主题 re5et 为例,在配置文件中找到主题变量ZSH_THEME,将其修改为re5et

bash 复制代码
 ZSH_THEME="re5et"

重启终端或者运行 source .zshrc 即可完成主题更换。

自定义主题

但是更多的时候官方的主题也不能完美的符合我们的要求,此时我们就可以自定义我们的主题文件。

oh-my-zsh 的主题文件一般存放在如下路径:

bash 复制代码
~/.oh-my-zsh/themes/

re5et 主题为例,进入文件夹路径,找到 re5et.zsh-theme 直接进行编辑,或者复制主题文件为新文件 re5et_self.zsh-theme 并进行修改。

更推荐第二种做法,防止配置错误导致原主题损坏。

更改完毕后,

在配置文件中找到主题变量ZSH_THEME,将其修改为re5et_self

bash 复制代码
ZSH_THEME="re5et_self"

重启终端或者运行 source .zshrc 即可完成主题更换。

插件安装及配置

官方插件查看及启用

查看插件

oh-my-zsh 默认带有的插件放置在 ~/.oh-my-zsh/plugins 路径下面,可通过命令查看

bash 复制代码
ls ~/.oh-my-zsh/plugins/

启用插件

在配置文件 .zshrc 中找到插件段落 plugins ,按照格式添加希望启用的插件名即可:

bash 复制代码
# Add wisely, as too many plugins slow down shell startup.
plugins=(
        #other plugins
        git
        z
        zsh-syntax-highlighting		# 需安装
        zsh-autosuggestions			# 需安装
)

source $ZSH/oh-my-zsh.sh

插件安装

官方插件路径是 ~/.oh-my-zsh/plugins

自定义安装插件推荐安装在~/.oh-my-zsh/custom/plugins

安装方法就是将插件安装到上述路径,并在配置文件中启用即可。

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

在配置文件 .zshrc 中找到插件段落 plugins ,按照格式添加希望启用的插件名即可。

主题文件备份

.zshrc

bash 复制代码
##### 主题部分 #####
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
# ZSH_THEME="robbyrussell"
# ZSH_THEME="random"
# ZSH_THEME="ys"
# ZSH_THEME="gozilla"
# ZSH_THEME="takashiyoshida"
# ZSH_THEME="philips"
  ZSH_THEME="re5et_self"
# ZSH_THEME="simonoff"
# ZSH_THEME="awesomepanda"


##### 插件部分 #####
# Add wisely, as too many plugins slow down shell startup.
plugins=(
        #other plugins
        git
        z
        zsh-syntax-highlighting
        zsh-autosuggestions
)

source $ZSH/oh-my-zsh.sh

re5et_self.zsh-theme

bash 复制代码
if [ "$USERNAME" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="magenta"; fi

local return_code="%(?..%{$fg_bold[red]%}:( %?%{$reset_color%})"

PROMPT='%F{#5f87ff}%B%n%b%f%F{#ffd75f}%B@%b%f%F{#8787ff}%B%m%b%f:%{${fg_bold[green]}%}%~%{$reset_color%}$(git_prompt_info)
%(?:%{$fg_bold[cyan]%}%1{➜%} :%{$fg_bold[red]%}%1{➜%} ) %{${reset_color}%}'

RPS1='${return_code} %F{#5f87ff}%B%D{%a}%b%f %F{#ffd75f}%B%D{%m/%d}%b%f %B-%b %F{#8787ff}%B%*%b%f'

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[magenta]%}^%{$reset_color%}%{$fg_bold[yellow]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%} ±"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ?"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[red]%} ♥"
相关推荐
GalaxyPokemon15 分钟前
LeetCode - 148. 排序链表
linux·算法·leetcode
Guheyunyi25 分钟前
监测预警系统重塑隧道安全新范式
大数据·运维·人工智能·科技·安全
懒羊羊大王呀32 分钟前
Ubuntu20.04中 Redis 的安装和配置
linux·redis
杰哥技术分享1 小时前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
知更鸟呆呆1 小时前
【Linux操作系统】基础开发工具(yum、vim、gcc/g++)
linux·运维·vim
xiangyong581 小时前
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
linux·ubuntu·gnu
Gold Steps.2 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
m0_637146932 小时前
C语言基础面试问答
运维·服务器
t198751282 小时前
Linux 上的 Tomcat 端口占用排查
linux·tomcat·firefox
小狗爱吃黄桃罐头2 小时前
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介
linux·arm开发·学习