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]%} ♥"
相关推荐
超喜欢下雨天几秒前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
搬码临时工6 分钟前
小企业如何搭建本地私有云服务器,并设置内部网络地址提供互联网访问
运维·服务器
tan77º41 分钟前
【Linux网络编程】网络基础
linux·服务器·网络
风口上的吱吱鼠43 分钟前
Armbian 25.5.1 Noble Gnome 开启远程桌面功能
服务器·ubuntu·armbian
18你磊哥1 小时前
Windows 本地安装部署 Apache Druid
运维·debian
笑衬人心。1 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
IT成长日记2 小时前
【Docker基础】Docker数据卷管理:docker volume inspect及其参数详解
运维·docker·容器·volume·inspect
ldj20202 小时前
Jenkins 构建过程常见错误
运维·jenkins
ladymorgana2 小时前
【Docker】如何设置 `wiredTigerCacheSizeGB` 和 `resources.limits.memory`
运维·docker·容器
生如夏花℡2 小时前
HarmonyOS学习记录3
学习·ubuntu·harmonyos