增强版 bash “zsh“

zsh(Z Shell)是 Bash 的增强版,提供了更强大的自动补全、主题定制、语法高亮等功能,尤其通过 Oh My Zsh 框架可以快速美化终端并扩展功能。以下是 Ubuntu 下配置和使用 zsh 的详细指南:


一、安装 zsh

1. 检查是否已安装
bash 复制代码
zsh --version

如果未安装,会提示 Command 'zsh' not found

2. 安装 zsh
bash 复制代码
sudo apt update
sudo apt install zsh
3. 验证安装
bash 复制代码
zsh --version
# 输出示例:zsh 5.8.1 (x86_64-ubuntu-linux-gnu)

二、将 zsh 设为默认 Shell

1. 确认 zsh 路径
bash 复制代码
which zsh
# 输出示例:/usr/bin/zsh
2. 修改默认 Shell
bash 复制代码
chsh -s $(which zsh)

输入当前用户密码后,需注销并重新登录或重启终端生效。

3. 验证默认 Shell
bash 复制代码
echo $SHELL
# 输出应为:/usr/bin/zsh

三、安装 Oh My Zsh(推荐)

Oh My Zsh 是一个开源框架,提供大量主题、插件和便捷配置。

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

安装完成后,终端会自动切换到 zsh 并显示欢迎界面。

2. 手动安装(备选)

如果网络问题导致安装失败,可手动下载:

bash 复制代码
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
source ~/.zshrc

四、配置 zsh

1. 主题定制

Oh My Zsh 默认使用 robbyrussell 主题,修改主题步骤如下:

  1. 编辑 ~/.zshrc

    bash 复制代码
    nano ~/.zshrc
  2. 找到 ZSH_THEME="robbyrussell",修改为其他主题(如 agnosterpowerlevel10k):

    bash 复制代码
    ZSH_THEME="agnoster"  # 示例:使用 agnoster 主题
  3. 保存并退出(Ctrl + O → 回车 → Ctrl + X)。

  4. 使配置生效:

    bash 复制代码
    source ~/.zshrc
2. 推荐主题
  • agnoster:需安装 Powerline 字体(见下文)。
  • powerlevel10k :高度可定制的主题。
    • 安装:

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

      bash 复制代码
      ZSH_THEME="powerlevel10k/powerlevel10k"
    • 运行配置向导:

      bash 复制代码
      p10k configure
3. 插件配置

Oh My Zsh 默认启用 git 插件,可添加更多实用插件:

  1. 编辑 ~/.zshrc

    bash 复制代码
    nano ~/.zshrc
  2. 找到 plugins=(git),修改为:

    bash 复制代码
    plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
    • 常用插件
      • zsh-syntax-highlighting:命令语法高亮。
      • zsh-autosuggestions:根据历史命令自动补全。
      • extract:一键解压各种压缩文件。
      • colored-man-pages:手册页彩色显示。
  3. 安装插件(部分插件需手动安装):

    • 语法高亮和自动补全:

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

    bash 复制代码
    source ~/.zshrc

五、解决常见问题

1. 主题显示乱码(如 agnoster)

原因:缺少 Powerline 字体。

解决方案

  1. 安装 Powerline 字体:

    bash 复制代码
    sudo apt install fonts-powerline
  2. 或手动安装(推荐):

  3. 修改终端字体:

    • 打开终端设置 → 首选项 → 字体 → 选择 Powerline 字体(如 Meslo LG S DZ Regular for Powerline)。
2. 命令补全不生效

解决方案

  1. 确保插件已正确安装并启用(如 zsh-autosuggestions)。

  2. 检查 ~/.zshrcplugins 列表是否包含插件名。

  3. 重启终端或运行:

    bash 复制代码
    source ~/.zshrc
3. 回退到 Bash

如果不想使用 zsh,可切换回 Bash:

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

注销后生效。


六、高级技巧

1. 自定义别名

编辑 ~/.zshrc,在文件末尾添加别名:

bash 复制代码
alias ll='ls -alF'
alias gs='git status'
alias ga='git add .'

使配置生效:

bash 复制代码
source ~/.zshrc
2. 共享历史记录

~/.zshrc 中添加:

bash 复制代码
setopt SHARE_HISTORY          # 共享所有终端的历史记录
setopt INC_APPEND_HISTORY    # 实时添加历史记录
setopt HIST_IGNORE_DUPS      # 忽略重复命令
3. 启用通配符扩展

~/.zshrc 中添加:

bash 复制代码
setopt EXTENDED_GLOB          # 启用高级通配符(如 `**/*.txt`)

七、卸载 zsh 和 Oh My Zsh

1. 卸载 Oh My Zsh
bash 复制代码
uninstall_oh_my_zsh
2. 卸载 zsh
bash 复制代码
sudo apt remove zsh
3. 恢复默认 Shell
bash 复制代码
chsh -s /bin/bash

总结

  • 安装 zshsudo apt install zsh + chsh -s /usr/bin/zsh
  • 安装 Oh My Zsh:一键脚本或手动克隆。
  • 主题推荐agnosterpowerlevel10k(需 Powerline 字体)。
  • 插件推荐zsh-syntax-highlightingzsh-autosuggestions
  • 故障排查:字体乱码、插件不生效等问题。

通过配置 zsh,您可以获得更高效、美观的终端体验。如需进一步定制,可参考 Oh My Zsh 官方文档

相关推荐
元Y亨H4 天前
华硕主机重装 Ubuntu 系统完全指南
ubuntu
字节逆旅5 天前
ubuntu应用深度守护
ubuntu
欧云服务器11 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI11 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️12 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年12 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys20012 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟12 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬12 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民12 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code