怎样配置一个高效、雅观、有趣的终端
原文链接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
修改完后重新打开一个终端,即可进入 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> 来输出,安装方式如下:
还有 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,安装方式如下:
tip
想要在用户登岸时输出一个 banner,可以在 ~/.zshrc 的末了一行添加 figlet -Wct xxxxxx
sl
一辆火车从屏幕开过 |