LINUX/MAC 打造次世代终端

效果图:

对于终端的基本要求:语法高亮+命令补全+配色美化

涉及工具:

  • zsh
  • on-my-zsh
  • powerlevel10k
  • iterm2

网上有很多教程,做得也很好,贴一下链接:

安装字体

Nerd Fonts 是一个使用大量字体图标来解决程序员在开发过程中缺少合适字体的问题的项目。它可以从流行的字体图标库中将大量外部字体引入待开发的项目中,它支持的字体图标库包括 Font Awesome , Devicons , Octicons , and others。

Nerd fonts 就是把各种常见的 ‘iconic fonts’,打包到你常用的字体里,这样在命令行里就支持显示这些图标了。

reference:https://blog.csdn.net/SmallTeddy/article/details/124850597

安装 nerd font

1
2
3
>>> git clone https://github.com/ryanoasis/nerd-fonts.git --depth 1
>>> cd nerd-fonts
>>> ./install.sh

安装zsh

zsh是一款强大的交互式shell,也可以作为脚本解释器来使用。它融合了bash、ksh、tcsh等其他shell中的许多优秀功能,并具备诸多自身特色。zsh最初由保罗·弗斯塔德(Paul Falstad)于1990年在普林斯顿大学求学时编写,其名称来源于普林斯顿大学助教的邵中(Zhong Shao)的用户名“zsh”。zsh以其开箱即用的命令行补全功能、可编程性、强大的变量与数组处理能力、多兼容模式以及完全可定制化的特性而著称。自macOS Catalina版本起,zsh成为macOS的默认shell。

zsh与bash的比较

特性 zsh bash
起源与发展 最初由保罗·弗斯塔德编写,后由彼得·斯蒂芬森等人继续开发。 由布莱恩·福克斯为GNU计划编写,是Bourne shell的后继兼容版本。
默认shell地位 macOS Catalina及以后版本的默认shell。 曾是许多Linux发行版和旧版macOS的默认shell。
交互性 提供更强大的交互性特性,如更好的自动补全、拼写纠正等。 也具备自动补全等功能,但相对zsh来说可能稍逊一筹。
配置 拥有一个交互式配置器,便于定制shell环境。 配置过程通常需要编辑.bashrc或.bash_profile文件,相对较为繁琐。
兼容性 在大多数系统上都能运行,但并非所有系统的默认shell环境。 几乎在所有的Unix系统中都是默认的shell环境,脚本兼容性好。
社区支持 社区用户群体和支持相对较小,但社区正在不断壮大。 拥有大量的用户和社区支持,教程和资源丰富。
插件和主题 拥有Oh-My-Zsh等社区驱动的框架,提供丰富的插件和主题。 插件和主题相对较少,需要手动配置和安装。
性能 通常比bash更快,且功能更加强大。 性能稳定,但相对于zsh来说可能在某些方面稍逊。

如果你的系统是mac,它自带zsh,不需要安装。

on-my-zsh

Oh My Zsh 是一个开源的、社区驱动的命令行工具,它基于 zsh(Z Shell)命令行,为 zsh 提供了丰富的主题配置、插件机制以及内置的便捷操作。Oh My Zsh 的出现极大地改善了 zsh 的使用体验,为用户带来了一种全新的命令行交互方式。

Oh My Zsh 的主要特点包括:

  1. 主题配置:Oh My Zsh 提供了大量的主题供用户选择,这些主题可以自定义命令行的外观,包括颜色、字体、提示符样式等,使得命令行界面更加美观和个性化。
  2. 插件机制:Oh My Zsh 支持安装各种插件,这些插件可以扩展 zsh 的功能,比如提供自动补全、语法高亮、命令历史记录等功能,从而提高用户的工作效率。
  3. 便捷的命令操作:Oh My Zsh 内置了许多便捷的命令操作,比如快速跳转到指定目录、快速查看文件内容等,这些操作可以极大地简化用户的命令行操作过程。

on-my-zsh 安装

以下四个命令选一个,会自动下载执行install脚本。

1
2
3
4
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
sh -c "$(wget -O- https://gitee.com/pocmon/mirrors/raw/master/tools/install.sh)"
  • curl是一个用于从服务器传输数据的命令行工具,支持多种协议,包括HTTP、HTTPS等。
  • $(...) 这是命令替换的语法。它会执行括号内的命令,并将输出替换到当前位置。
  • sh -c 选项后面跟着的字符串是要由sh执行的命令。

插件安装方法

首先将插件下载到 ${ZSH_CUSTOM:-/.oh-my-zsh/custom 目录下,然后在 `/.zshrc` 中设置开启的插件。

(1)语法高亮 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

(2)自动提示 zsh-autosuggestions

1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

(3)配置 .zshrc

~/.zshrc 中设置 plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

然后再生效一下 source ~/.zshrc

iterm2

iTerm2 是一款专为 macOS 用户设计的强大终端模拟器,旨在提供比 macOS 默认的 Terminal.app 更丰富、更高效的终端体验。

iterm2安装

从官网上点击下载安装包:https://iterm2.com/downloads.html

像安装正常软件一样安装Iterm2即可,或者利用homebrew下载:

1
brew install iTerm2  

iterm2其他设置

设置字体

iTerm2 -> Preferences -> Profiles -> Text -> Font 修改字体为 Hack Nerd Font

为了测试是否成功,可以到这个网址:www.nerdfonts.com/cheat-sheet

点击 Show All Icons 按钮,选择一个图标,点击右上角的 Copy Icon,然后粘贴到我们的 Terminal 命令行里。

设置状态栏

可以为每个打开的终端都设置一个状态栏,显示一些系统信息(比如 CPU、RAM、当前目录等)。

Profiles -> session-> 勾选 Status bar enable-> configure Status bar,选择自己想要的展示内容即可。

统一标签页配色

打开iTerm2,打开Preferences配置界面,Appearence -> General,将 Theme 改为 Minimal

设置终端历史行数

打开iTerm2,打开Preferences配置界面,Profiles -> Terminal,根须需求进行修改,如果想不限制行数可以勾选Unlimited scrollback

powerlevel10k

Powerlevel10k 是一个高度可定制化的 Zsh(Z Shell)主题,旨在提升终端用户的体验,使其既美观又实用。

Powerlevel10k 是 Powerlevel9k 的改进版本,具有更快的渲染速度和更好的兼容性。它基于 Zsh 这一功能强大的 Unix shell,利用了 Zsh 的自动完成、语法高亮和命令历史搜索等高级特性,并进一步优化了终端的界面显示。

powerlevel10k安装

以下两个命令二选一

1
2
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

设置主题

打开zshrc文件然后修改ZSH_THEME

1
2
open ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"

然后进行手动完成配置,执行下面的命令为逐步引导你完成主题配置

1
p10k configure

执行完命令之后,就会初始化 p10k,在根目录下生成 ~/.p10k.zsh,并且在 ~/.zshrc 底部写入:

1
2
# To customize prompt, run p1ok configure’or edit ~/ .p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] | | source ~/.p10k.zsh

如果想废除 p10k 的配置,只需要删除 ~/.p10k.zsh,并且删除上面这条命令即可。

踩坑

zsh-autosuggestion的配色问题

自动提示的颜色有时会淹没在背景色中,需要修改它的颜色。

在zshrc中追加一行:

1
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=blue'

当前仅支持有限种颜色:

black, red, green, yellow, blue, magenta, cyan and white

作者

Desirer

发布于

2023-12-01

更新于

2024-08-17

许可协议