使用Oh My Zsh美化终端
前言
传统的 Bash 功能相对简陋且不美观。本文采用的系统是 Debian12(Ubuntu 也一样),安装 Zsh 以及 Oh My Zsh,对终端进行美化。Oh My Zsh 是 Zsh 的一个扩展工具集,提供了丰富的功能和主题,让终端界面更加个性化和高效。
我用的是 root 用户,所以运行指令不需要加上 sudo,非 root 用户安装等指令还需加上 sudo。
环境配置
安装基本工具
首先,更新系统并安装必要的工具:
1 | # 更新软件源 |
设置 Zsh 为默认终端(注意:不要使用 sudo):
1 | chsh -s /bin/zsh |
安装 Oh My Zsh
官网:http://ohmyz.sh/。安装方式任选一个即可:
1 | # 使用 curl 安装 |
从 .bashrc 迁移配置(可选)
如果你曾在 Bash 中自定义了一些环境变量或别名,在切换到 Zsh 后,需要手动迁移这些配置。操作步骤如下:
1 | # 查看原 Bash 配置文件 |
如果是 root 用户,执行
sudo su
后再次进行上述操作。
配置主题
自定义主题
1 | wget -O $ZSH_CUSTOM/themes/haoomz.zsh-theme https://cdn.haoyep.com/gh/leegical/Blog_img/zsh/haoomz.zsh-theme |
推荐主题
可以在内置主题样式截图中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载:
1 | cd ~/.oh-my-zsh/themes && ls |
powerlevel10k
根据 What’s the best theme for Oh My Zsh? 中的排名,以及自定义化、美观程度,强烈建议使用 powerlevel10k 主题:
1 | # 克隆 Powerlevel10k 主题 |
完成后,终端会自动引导你配置
powerlevel10k
主题。
安装插件
oh-my-zsh
已经内置了 git
插件,内置插件可以在 ~/.oh-my-zsh/plugins
中查看,下面介绍一下我常用的插件,更多插件可以在 awesome-zsh-plugins 里查看。
插件推荐
最后,记得启用所有插件。
zsh -autosuggestions
zsh-autosuggestions 是一个命令提示插件,当你输入命令时,会自动推测你可能需要输入的命令,按下右键可以快速采用建议。
安装方式:把插件下载到本地的 ~/.oh-my-zsh/custom/plugins
目录:
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions |
zsh-syntax-highlighting
zsh-syntax-highlighting 是一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色。
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
z
oh-my-zsh
内置了 z
插件。z
是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。
extract
oh-my-zsh
内置了 extract
插件。extract
用于解压任何压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。
使用 x
命令即可解压文件:
1 | # 使用 x 解压文件 |
启用插件
1 | # 修改~/.zshrc中插件列表 |
Tips
配置本地代理
如果你配置了本地代理,并希望终端的 git 等命令使用代理,那么可以在 ~/.zshrc
中添加:
1 | # 为 curl wget git 等设置代理 |
这里假设本地代理的端口是
10809
。
以后在使用 git
等命令之前,只需要在终端中输入 proxy
命令,即可使用本地代理。
卸载 Oh My Zsh
终端输入 :
1 | uninstall_oh_my_zsh |
手动更新 Oh My Zsh
如果自动更新提示被误触关闭,可以通过以下命令手动更新:
1 | upgrade_oh_my_zsh |
快捷键
快捷键 | 功能描述 |
---|---|
Ctrl + A |
跳到行首 |
Ctrl + E |
跳到行尾 |
Ctrl + U |
删除光标前的所有字符 |
Ctrl + K |
删除光标后的所有字符 |
Ctrl + W |
删除光标前的一个单词(空格为分隔符) |
Ctrl + Y |
粘贴删除的内容 |
Ctrl + L |
清屏(类似 clear 命令) |
Ctrl + C |
终止当前运行的命令(如果命令运行时卡住,按此可中止) |
Ctrl + D |
退出当前 Shell 会话(等同于 exit 命令) |
Ctrl + Z |
将当前命令挂起并发送到后台(可以用 fg 恢复) |
Ctrl + R |
启动历史命令搜索,可以反向搜索历史命令 |
Ctrl + S |
停止屏幕输出(再次按 Ctrl + S 恢复) |
Ctrl + Q |
继续屏幕输出(用于恢复 Ctrl + S 停止的输出) |
Tab |
自动补全命令或文件名 |
Shift + Tab |
向后自动补全(撤回补全) |
Alt + . |
插入上一个命令的最后一个参数 |
Alt + C |
将光标移动到当前路径的文件夹名称的中间位置 |
Alt + / |
补全当前目录路径 |
Up Arrow |
上一条历史命令 |
Down Arrow |
下一条历史命令 |
Ctrl + P |
上一条历史命令(类似于 Up Arrow ) |
Ctrl + N |
下一条历史命令(类似于 Down Arrow ) |
Ctrl + X Ctrl + E |
在编辑器中打开当前命令(默认是 vi 编辑器) |