[!quote] 背景 Debian下,终端命令提示符没有高亮、配色等,肉眼观看比较难受,故有此教程。win下一样
传统的 bash 功能比较简陋,且不美观。本文基于Debian和WIN11系统,安装 zsh,并使用 oh-my-zsh 对终端进行美化。Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。
一、Debian zsh安装
1. 安装基本工具
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装 zsh git curl
sudo apt install zsh git curl -y
设置默认终端为 zsh(注意:不要使用 sudo)。
chsh -s /bin/zsh
2. 安装 oh-my-zsh
方式 | 命令 |
---|---|
curl | sh -c "$(curl -fsSL https://install.ohmyz.sh/)" |
wget | sh -c "$(wget -O- https://install.ohmyz.sh/)" |
fetch | sh -c "$(fetch -o - https://install.ohmyz.sh/)" |
国内curl镜像 | sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)" |
国内wget镜像 | sh -c "$(wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)" |
注意:同意使用 Oh-my-zsh 的配置模板覆盖已有的 .zshrc
。
3. 从 bashrc
中迁移配置(可选)
如果之前在使用bash
时自定义了一些环境变量、别名等,那么在切换到zsh
后,你需要手动迁移这些自定义配置。
# 查看bash配置文件,并手动复制自定义配置
cat ~/.bashrc
# 编辑zsh配置文件,并粘贴自定义配置
nano ~/.zshrc
# 启动新的zsh配置
source ~/.zshrc
root
用户在执行sudo su
命令后,再运行上述代码查看、手动复制、粘贴自定义配置。
4. 配置主题
(1)自定义主题
sudo wget -O $ZSH_CUSTOM/themes/haoomz.zsh-theme https://cdn.haoyep.com/gh/leegical/Blog_img/zsh/haoomz.zsh-theme
编辑 ~/.zshrc
文件,将 ZSH_THEME
设为 haoomz
。当然你也可以设置为其他主题,例如lukerandall
、robbyrussell
。
nano ~/.zshrc
ZSH_THEME=”haoomz”
source ~/.zshrc
(2)推荐主题
你可以在内置主题样式截图中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载。
powerlevel10k
根据 What’s the best theme for Oh My Zsh? 中的排名,以及自定义化、美观程度,强烈建议使用 powerlevel10k 主题。
git clone –depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# 中国用户可以使用 gitee.com 上的官方镜像加速下载
git clone –depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
在~/.zshrc
设置 ZSH_THEME="powerlevel10k/powerlevel10k"
。接下来,终端会自动引导你配置 powerlevel10k
。
(3)安装依赖字体
-
- 下载 Nerd Fonts 你可以从 Nerd Fonts 的 发布页面 下载所需的字体。通常,可以选择压缩包下载。 例如,使用 wget 下载
FiraCode
字体:
- 下载 Nerd Fonts 你可以从 Nerd Fonts 的 发布页面 下载所需的字体。通常,可以选择压缩包下载。 例如,使用 wget 下载
cd ~/Downloads
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/FiraCode.zip
-
- 解压缩字体 `解压缩下载的文件:
unzip FiraCode.zip
-
- 安装字体 创建一个字体目录(如果不存在的话):
mkdir -p ~/.local/share/fonts
然后将解压后的字体文件复制到该目录中:
cp FiraCode/* ~/.local/share/fonts/
-
- 更新字体缓存 运行以下命令更新字体缓存:
fc-cache -fv
-
- 使用 Nerd Fonts 打开你的终端设置,选择你刚刚安装的 Nerd Font 作为终端的字体。例如,如果你安装了
FiraCode
,在终端中选择FiraCode Nerd Font
。
- 使用 Nerd Fonts 打开你的终端设置,选择你刚刚安装的 Nerd Font 作为终端的字体。例如,如果你安装了
-
- 验证字体安装 你可以使用以下命令验证字体是否安装成功:
fc-list | grep “FiraCode”
如果看到字体名称的输出,说明安装成功。
(4)配置 powerlevel10k
前置阶段
- Does this look like a diamond (rotated square)? 这是看起来钻石吗?
-
Does this look like a lock? 这看起来是锁吗?
-
Does this look like an upwards arrow? 这看起来是向上箭头吗? 安装Nert Fonts后,能正常识别。
开始配置
进入到正式阶段,按步骤配置自己的提示符风格,下面一共 12 步,都是非常简单的回答问题。考虑到第一次配置,有懵逼的可能性,我把全部的步骤都列出来了。
选择提示符风格,分别是 Lean、Classic、Rainbow 和 Pure。我选风格 3,大众所爱的风格,彩虹 Rainbow,则输入 3。
字符集设置,毫无疑问,配置 unicode,选择 1。
提示符显示当前时间风格。我选择 1,只显示命令耗时,不显示当前时间。
提示符分隔符,也就是 src/master 之间的符号风格。我钟爱箭头,选择 1 -> Angled.
提示符头部风格,就是 master >
的风格选择。毫无疑问,我钟爱箭头,选择 1 – Sharp。
提示符尾部风格,钟爱箭头,但不是双箭头,选择 1 – Flat。
提示符高度,显示一行还是两行,体验过两行,还是一行更紧凑一些,选择 1 – one line。
两个命令键的间距,我喜欢两行离的近一点,选择 1 – Compact。
提示符 Icons,多点 Icon 更帅,否则看起来就和一般主题没区别了,so 选择 2 – Many Icons。
提示符丰富度,增加一些文本描述,帮助理解提示符中字符含义。还是简洁为美,毕竟空间不能占用太多,而且含义简单,无需文本辅助。我选择 1 – Consice。
这是什么配置ne?提示符瞬闪?好像命令执行后提示符就立刻消失,只保留在最新的提示符,先选择 n – No 看看效果吧。
提示符高性能模式,是否启用。推荐启用,就启用吧 1-verbose,如果发现有兼容问题,在重新配置 off。
到此基本全部的配置都已经完成,powerlevel10k 命令行提示符的最终效果,如下所示:
(5)重新配置
在配置完成后,如果希望重新配置,重启整个流程,直接执行 p10k configure
,它会重新打开配置向导。
(6)配置文件
通过 powerlevel10k 的配置导航能快速自定义提示符的主题风格,但如想更细粒度的配置,可直接在 $HOME/.p10k.zsh
配置,配置导航只是最粗粒度的配置方式。
如配置提示符两侧内容,通过 ~/.p10k.sh
中的变量 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
和 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
设置。
前面配置时,设置了不显示当前时间,可以通过打开 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
中的 time
重新显示时间。
还有前面对提示符瞬闪的配置,transient 设置为 off。如果希望启用,同时有不重新经历一次配置向导,直接进入 ~/.p10k.zsh
配置变量 POWERLEVEL9K_TRANSIENT_PROMPT=always
,即可。
Powerlevel10k 还进一步集成了对各种工具的支持,包括但不限于 npm、k8s、Python 和 Go。在 ~/.p10k.zsh
中配置相应的提示元素,如 node_version
、kubecontext
、python_version
和 go_version
。
这些都是位于 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
配置项下。
5. 安装插件
oh-my-zsh
已经内置了 git
插件,内置插件可以在~/.oh-my-zsh/plugins
中查看,下面介绍一下我常用的插件,更多插件可以在awesome-zsh-plugins里查看。
(1)插件推荐
zsh -autosuggestions
zsh-autosuggestions是一个命令提示插件,当你输入命令时,会自动推测你可能需要输入的命令,按下右键可以快速采用建议。效果如下:
安装方式:把插件下载到本地的~/.oh-my-zsh/custom/plugins
目录。
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh-syntax-highlighting
zsh-syntax-highlighting是一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色。效果如下: 安装方式:把插件下载到本地的
~/.oh-my-zsh/custom/plugins
目录。
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
oh-my-zsh
内置了 z
插件。z
是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。效果如下:
extract
oh-my-zsh
内置了 extract
插件。extract
用于解压任何压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。使用 x
命令即可解压文件,效果如下:
web-search
oh-my-zsh 内置了 web-search
插件。web-search
能让我们在命令行中使用搜索引擎进行搜索。使用搜索引擎关键字+搜索内容
即可自动打开浏览器进行搜索。效果如下: j 最后记得启用所有插件
(2)启用插件
修改~/.zshrc
中插件列表为:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z extract web-search)
开启新的 Shell 或执行source ~/.zshrc
,就可以开始体验插件。
6. 小技巧
(1)root 用户
当你配置好登陆用户的 zsh 后,如果使用sudo su命令进入root用户的终端,发现还是默认的bash。建议在root用户的终端下,也安装on my zsh,设置与普通用户不同的主题以便区分,插件可以使用一样的。 root用户的~/.zshrc配置,仅供参考:
ZSH_THEME=”ys”
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z extract web-search)
或
plugins=(git colored-man-pages colorize cp man command-not-found sudo suse ubuntu archlinux zsh-navigation-tools z extract history-substring-search python zsh-autosuggestions zsh-syntax-highlighting)
(2)配置本地代理
如果你配置了本地代理,并希望终端的 git 等命令使用代理,那么可以在~/.zshrc
中添加:
(3)卸载Oh My Zsh
- 终端输入
uninstall_oh_my_zsh
Are you sure you want to remove Oh My Zsh? [y/N] Y
- 终端提示信息
Removing ~/.oh-my-zsh
Looking for original zsh config…
Found ~/.zshrc.pre-oh-my-zsh — Restoring to ~/.zshrc
Found ~/.zshrc — Renaming to ~/.zshrc.omz-uninstalled-20170820200007
Your original zsh config was restored. Please restart your session.
Thanks for trying out Oh My Zsh. It’s been uninstalled.
(4)手动更新 Oh My Zsh
- Oh My Zsh的自动更新提示误触关掉了解决办法
-
打开终端输入:
upgrade_oh_my_zsh
二、WIN11 zsh安装
1. 安装
winget install JanDeDobbeleer.OhMyPosh
choco install oh-my-posh
在安装的过程中我们会遇到同意条款的选项,并且可能会遇到多个包可用的情况。 在这种情况下,选择希望使用的包 ID 并重新输入命令:winget install <package ID>
如图所示:
输入oh-my-posh version
以确认安装的 Oh My Posh版本号。 为确保拥有最新的更新,可以使用以下命令:winget upgrade oh-my-posh
。如下图所示:
2. 配置
在 terminal 中使用下面的命令打开:code 命令是 vscode, 你也可以换成其他的命令:notepad $PROFILE
code $PROFILE
这样我们打开默认的个人配置,并在配置文件中写入下面的内容,保存并退出:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\atomic.omp.json" | Invoke-Expressiolaoxiongb2c n # 配置oh-my-posh的theme
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\agnoster.omp.json" | Invoke-Expression
你可以修改atomic.omp.json
为 oh-my-posh
的主题文件,你可以在 Themes | Oh My Posh 这里找到自己喜欢的主题名称。配置完成后关闭 terminal
重新开发就可以看到新的主题了。
关于配置文件我们也可以手动打开,配置文件的路径:C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
如果你用的是 PowerShell
那么配置文件 C:\Users\username\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
如果看到路径错误,则你可能还没有 PowerShell
的配置文件。 若要创建一个,请使用以下 PowerShell
命令创建配置文件,然后尝试再次使用文本编辑器打开它。
new-item -type file -path $profile -force
如果在尝试打开新的 PowerShell
实例时收到脚本错误,则表明 PowerShell
执行策略可能受到限制。 若要将 PowerShell
执行策略设置为不受限制,则需以管理员身份启动 PowerShell,然后使用以下命令:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
3. 安装缺少的文件夹或文件图标
Terminal-Icons 是一个 PowerShell 模块,它会添加在 Windows 终端中显示文件或文件夹时可能缺少的文件和文件夹图标,并基于名称或扩展名查找相应的图标。 它尝试将图标用于已知文件/文件夹,但如果找不到内容,则会回滚到通用文件或文件夹图标。
若要使用 PowerShell
安装 Terminal-Icons
,请使用以下命令:
Install-Module -Name Terminal-Icons -Repository PSGallery
4. Nerd Fonts
Nerd Fonts修补了具有大量字形(图标)的开发者目标字体。特别是要从流行的 “标志性字体”,如Font Awesome、Devicons、Octicons和其他字体中添加大量的额外字形。
5. 清除欢迎
每次我们打开Windows Terminal(终端)
都会有几段欢迎词,如果你不想看到它,这个也是可以设置的。
我们前往设置
面板-配置文件
–Windows PowerShell配置
–命令行
这里,点击它可展开进行编辑,在之前路径的后面追加-NoLogo
6. 定制欢迎
先前往这个网站,生成你喜欢的欢迎词:http://patorjk.com/software/taag/#p=testall&f=Graffiti&t=TaylorShi
点击你中意的一项的Select & Copy
,内容例如:
_______ _ _____ _ _
|__ | | | / ____|
| | __ _ _ _| | ___ _ _| ( | |__ _
| |/ ` | | | | |/ _ | ‘_ | ‘ | |
| | (| | || | | () | | ____) | | | | |
||__,|_, ||___/|| |_____/|| |||
/ |
|/
接下来,我们前往PowerShell配置文件:notepad $PROFILE
,在追前面添加如下内容:
clear
$hello=”
.—————-. .—————-. .—————-. .—————-. .—————-. .—————-.
| .————–. || .————–. || .————–. || .————–. || .————–. || .————–. |
| | _________ | || | __ | || | ____ ____ | || | _____ | || | ____ | || | _______ | |
| | | _ _ | | || | / \ | || | |_ || | | || | | _| | || | .’ . | || | |_ __ \ | |
–‘ / | || | _| | \ _ | |
| | |_/ | | \_| | || | / /\ \ | || | \ \ / / | || | | | | || | / .--. \ | || | | |__) | | |
| | | | | || | / ____ \ | || | \ \/ / | || | | | _ | || | | | | | | || | | __ / | |
| | _| |_ | || | _/ / \ \_ | || | _| |_ | || | _| |__/ | | || | \
| | |_____| | || ||____| |____|| || | |______| | || | |________| | || | `.____.’ | || | |____| |___| | |
| | | || | | || | | || | | || | | || | | |
| ‘————–‘ || ‘————–‘ || ‘————–‘ || ‘————–‘ || ‘————–‘ || ‘————–‘ |
‘—————-‘ ‘—————-‘ ‘—————-‘ ‘——̵
“
$hello
“Welcome back, Taylor”
保存即可。
接下来,要么重启Windows Terminal(终端)
,要么新开一个标签页才能看到效果。
7. 安装Posh-git
Posh-git是一个PowerShell模块,它将Git和PowerShell整合在一起,提供可以在PowerShell提示符下显示的Git状态汇总信息,例如:
通过管理员模式打开Windows Terminal(终端)
打开。
运行如下命令:
Install-Module posh-git -Scope CurrentUser
安装之后,我们前往PowerShell配置文件:
notepad $PROFILE
追加对它的引入:
Import-Module posh-git
8. 亚克力和透明度
9. 自动补全
通过PSReadLine
可以显现自动补全,在Windows 10开始已经自带了,如果需要补装可以使用:
通过管理员模式打开Windows Terminal(终端)
打开。
Install-Module PSReadLine -Scope CurrentUser
安装之后,我们前往PowerShell配置文件:notepad $PROFILE
追加对它的配置项:
保存后即可生效。
使用的时候,它会自动提示你猜测的补全,如果你要采纳,按下->
左箭头按钮即可。
通过向上按键和向下按键即可切换历史的命令。
10. 交互可视化
通过GraphicalTools
可实现可视化交互。
Install-Module Microsoft.PowerShell.ConsoleGuiTools
12. 卸载插件
通过命令Uninstall-Module
即可卸载指定的插件。
卸载Oh-My-Posh
Uninstall-Module oh-my-posh
卸载Terminal-Icons
Uninstall-Module Terminal-Icons
卸载posh-git
Uninstall-Module posh-git
参考
-
[ 2 ] 主题:Themes ohmyzsh/ohmyzsh Wiki GitHub
必须 注册 为本站用户, 登录 后才可以发表评论!