如何配置一个高效、美观、有趣的终端
原文链接https://dino.castamerego.com/blog/LinuxTerminal
缘起
最近配置的新环境比较多,包括 WSL, VsCode, ssh 等等方面,之前也做过很多环境配置,但笔记都比较散,有些更是想不起来了,这篇就把一些常用配置记录一下
Zsh
zsh 是一个类 bash 的 shell,它比 bash 更加强大,功能更丰富,但配置起来也更复杂一些,但一旦配置好,体验会非常好
安装
笔者这里使用 Ubuntu 进行演示,其他平台也基本类似,用自己常用包管理器即可
首先使用
apt
安装 zsh
sudo apt update
sudo apt install zsh
安装好后,使用以下命令修改默认终端为 zsh
chsh -s $(which zsh)
修改完后重新打开一个终端,即可进入 zsh 界面
安装 oh-my-zsh
oh-my-zsh 是一个用于管理 Zsh 配置的开源框架,它提供了大量的插件、主题和配置选项,以帮助用户更高效地使用 Zsh 。直接使用
curl
安装即可
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
其他安装方式
DIY
字体库
配置主题时,最常见的问题就是爆出奇奇怪怪的字符,其原因就是没有安对字体。注意,这里的字体是要安装到终端所在的环境,而不是运行的环境,比如你用 Windows Terminal 连 ssh,那你的字体要安装到 Windows 下;或者用 Vs Code 连 WSL,同样也要安装到 Windows 下。
字体可以点击链接直接下载 MesloLGS NF Font。下载好后,将四个字体文件都安装即可
安装完成后,要去对应的终端里进行配置,这里列出 Windows Terminal 和 Vs Code 的配置方法,其他终端可以参考 font configure 配置(Apple Termina, Jet Brains 系列, MobaXterm, puTTY, xterm, )
Windows Terminal
找到字体设置后,选择 MesloLGS NF 字体即可
Vs Code
使用
ctrl + ,
进入到设置页面,搜索
terminal.integrated.fontFamily
, 修改为
MesloLGS NF
即可
powerlevel10k
安装好字体库后,我们就可以开始配置主题,powerlevel10k
使用如下命令安装
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# Github 连不上去也可使用国内源
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
安装好后下一小节讲如何修改主题
如何修改配置
zsh 的配置文件为
~/.zshrc
, 其中需要我们关注的只有以下两行:
~/.zshrc
...
ZSH_THEME="robbyrussell"
...
plugins=(git)
修改
~/.zshrc
中的
ZSH_THEME
字段,修改完后保存,使用
source ~/.zshrc
使配置生效,默认主题为 robbyrussell,还有比较常用的 agnoster, powerlevel10k 等。前面两个都是 oh-my-zsh 内置的,直接修改
ZSH_THEME="agnoster"
即可。 powerlevel10k 的话,上一步安装好了之后,需要设置
ZSH_THEME="powerlevel10k/powerlevel10k"
首次使用 powerlevel10k 主题,会提示你进行配置,按照提示一步步来即可,效果如下:
想要删除 powerlevel10k 主题,参考 uninstall Powerlevel10k
注意,在我们每次修改
~/.zshrc
后,都要执行
source ~/.zshr
来应用新配置
可以在该文件中设置
alias -g setzsh="source ~/.zshrc"
和
catzsh='cat ~/.zshrc | grep -v "^#" | grep -v "^$"'
, 之后可以使用
setzsh
命令快速使配置生效,
catzsh
命令快速查看当前配置。在
~/.zshrc
文件最后添加即可,如下:
~/.zshrc
...
alias -g setzsh="source ~/.zshrc"
alias -g catzsh='cat ~/.zshrc | grep -v "^#" | grep -v "^$"'
插件推荐
下面先逐个介绍插件,最后安装配置会放在一起说
GIT
oh-my-zsh 内置了 git 插件,该插件用于显示当前 git 仓库的状态,并提供了一系列的 git 命令的快捷方式,可以使用
alias | grep git
查看
zsh -autosuggestions
zsh-autosuggestion 用于在终端中显示历史命令的自动补全建议。它可以帮助你快速找到并执行之前使用过的命令,从而提高工作效率。除此之外,也可以设置根据 tab 会补全哪些命令来提示你,效果如下:
zsh-syntax-highlighting
zsh-syntax-highlighting 用于告诉你当前命令是否合法,如果是绿色,说明命令存在,可以执行,反之显示红色,效果如下:
命令合法:
命令不合法:
相当于在每次运行前提醒你是否输入了正确的命令,避免误操作
z
oh-my-zsh 内置了
z
插件,该插件用于快捷跳转到之前访问过的目录,省去
cd
一长串路径了,效果如下:
extract
oh-my-zsh 内置了
extract
插件,该插件用于解压任何格式的压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。使用
x
命令即可解压文件,再也不用记
tar -czvf
了
一键配置插件
cd /root/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-autosuggestions.git
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
修改
~/.zshrc
~/.zshrc
...
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z extract)
...
修改完成后使用
source ~/.zshrc
使配置生效(或者前面配置过的话,使用
setzsh
即可)
其他玩具
下面都是一些linux 的小玩具,图一乐系列
cowsay
cowsay
很单纯,类似
cat
,就是让一头牛来说一段话,除了牛之外,还有其他的动物,使用
cowsay -l
列举出所有的动物,再使用
cowsay -f <animal>
来输出,安装方式如下:
sudo apt install cowsay
还有
cowthink
以及其他参数,读者可以自己玩玩
lolcat
lolcat
用于将文本颜色化并添加彩虹渐变效果
可以将几个命令组合起来,并在 zsh 中创建 alias,比如下面就是先获取
ifconfig
让后通过
grep
过滤出 ip 地址,再使用
cowsay
和
lolcat
来输出,最后将整个命令添加别名,效果如下:
...
alias -g ifc="cls && ifconfig | grep -E '.inet.|.flags.' | cowsay -f dragon -W 100 -n | lolcat"
alias -g ifcc="cls && ifconfig | grep -E 'inet [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' -o | grep -v '127.0.0.1' | cowthink -d -W 20 | lolcat"
...
之后使用
ifc
和
ifcc
命令即可,效果如下:
ifc:
ifcc:
同样,主打图一乐
figlet
figlet
用于生成 ASCII 艺术字,也比较简单,一般可以用于在用户登录时输出一个很酷的 banner,安装方式如下:
sudo apt install figlet
tip
想要在用户登陆时输出一个 banner,可以在
~/.zshrc
的最后一行添加
figlet -Wct xxxxxx
sl
一辆火车从屏幕开过 🚂,使用
sl
命令即可
sudo apt-get install sl
cmatrix
cmatrix
是一个动态终端矩阵效果,类似黑客帝国里的那种,可以作为一个屏保玩玩,安装方式如下
sudo apt install cmatrix
版权归原作者 Casta-mere 所有, 如有侵权,请联系我们删除。