配置 Linux 终端 (zsh)

原文链接

如何配置一个高效、美观、有趣的终端

缘起

最近配置的新环境比较多,包括 WSL, VsCode, ssh 等等方面,之前也做过很多环境配置,但笔记都比较散,有些更是想不起来了,这篇就把一些常用配置记录一下

Zsh

zsh 是一个类 bash 的 shell,它比 bash 更加强大,功能更丰富,但配置起来也更复杂一些,但一旦配置好,体验会非常好

安装

笔者这里使用 Ubuntu 进行演示,其他平台也基本类似,用自己常用包管理器即可

首先使用 apt 安装 zsh

sql 复制代码
sudo apt update
sudo apt install zsh

安装好后,使用以下命令修改默认终端为 zsh

bash 复制代码
chsh -s $(which zsh)

修改完后重新打开一个终端,即可进入 zsh 界面

安装 oh-my-zsh

oh-my-zsh 是一个用于管理 Zsh 配置的开源框架,它提供了大量的插件、主题和配置选项,以帮助用户更高效地使用 Zsh 。直接使用 curl 安装即可

bash 复制代码
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

使用如下命令安装

bash 复制代码
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

ini 复制代码
...
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

ini 复制代码
...
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 会补全哪些命令来提示你,效果如下:

提示

想要设置根据 tab 会补全哪些命令来提示你,可以执行如下命令,然后再 source ~/.zshrc 即可

bash 复制代码
echo "ZSH_AUTOSUGGEST_STRATEGY=(history completion)" >> /root/.oh-my-zsh/custom/my_patch.zsh

zsh-syntax-highlighting

zsh-syntax-highlighting 用于告诉你当前命令是否合法,如果是绿色,说明命令存在,可以执行,反之显示红色,效果如下:

命令合法:

命令不合法:

相当于在每次运行前提醒你是否输入了正确的命令,避免误操作

z

oh-my-zsh 内置了 z 插件,该插件用于快捷跳转到之前访问过的目录,省去 cd 一长串路径了,效果如下:

extract

oh-my-zsh 内置了 extract 插件,该插件用于解压任何格式的压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。使用 x 命令即可解压文件,再也不用记 tar -czvf

一键配置插件

bash 复制代码
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

ini 复制代码
...
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 地址,再使用 cowsaylolcat 来输出,最后将整个命令添加别名,效果如下:

~/.zshrc

ini 复制代码
...
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"
...

之后使用 ifcifcc 命令即可,效果如下:

ifc:

ifcc:

同样,主打图一乐

figlet

figlet 用于生成 ASCII 艺术字,也比较简单,一般可以用于在用户登录时输出一个很酷的 banner,安装方式如下:

复制代码
sudo apt install figlet

提示

想要在用户登陆时输出一个 banner,可以在 ~/.zshrc 的最后一行添加 figlet -Wct xxxxxx

sl

一辆火车从屏幕开过 🚂,使用 sl 命令即可

arduino 复制代码
sudo apt-get install sl

cmatrix

cmatrix 是一个动态终端矩阵效果,类似黑客帝国里的那种,可以作为一个屏保玩玩,安装方式如下

复制代码
sudo apt install cmatrix
相关推荐
wifi chicken27 分钟前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.29142 分钟前
Linux 信号详解
linux·运维·网络
放飞梦想C1 小时前
CPU Cache
linux·cache
Hoshino.411 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
播播资源3 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry3 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
lay_liu4 小时前
Linux安装redis
linux·运维·redis
寂柒5 小时前
序列化与反序列化
linux·网络
lay_liu5 小时前
ubuntu 安装 Redis
linux·redis·ubuntu
li星野6 小时前
[特殊字符] Linux/嵌入式Linux面试模拟卷
linux·运维·面试