飞行日志
常用链接
韭菜搞钱
三省吾身
知行合一
🤔胡思乱想:最好的终端模拟器
type
status
date
slug
summary
tags
category
icon
password
1. 终端的概念2. 终端的分类2.1. Windows 平台2.2. Linux 平台2.3. MacOS 平台2.4. 跨平台2.5. 小众选手3. 多路复用技术4. 未来的趋势4.1. 全平台4.2. 智能化4.3. 个性化5. 总结5.1. Shell 的种类5.2. 推荐的组合
工作几年了,基本都是单机搞开发,面对每天开开关关的 Gnome Terminal,我居然不知道它背后居然还有这么多的故事…
1. 终端的概念
终端有很多含义,比如最末端的节点,比如个人电脑,比如手机……
本篇文章讨论的是,作为计算机上的终端 —— Terminal 程序。 现代操作系统,无论 MacOS,Linux 还是 Windows 都形成了 内核 + 文件系统 的双层模式,用户无法直接操作内核,需要借助于 Shell(内核外壳的意思)来对内核进行管理。
在图形化操作系统上,并不能直接的去操作 Shell,需要使用一个接受操作系统调度的程序去操作 Shell,这就是图形化的终端模拟器,也叫做终端窗口。
终端窗口是很多 Linux 新手第一次接触图形化桌面时,用到的工具。它能够方便的使用 Shell,让用户更好的驾驭系统。一般来说,终端到 Shell 程序,分为以下三层:终端 ->【终端复用器】-> Shell。
这其中,终端复用器(terminal multiplexer)并不是必须的,有些终端已经自带这个。
2. 终端的分类
对于热衷于造轮子的程序员来说,几十年的计算机发展历史中,终端模拟器的种类数不胜数。这些终端有的是历久弥新,有的天马行空,总有一款适合你。
2.1. Windows 平台
- CMD:Windows 经典终端,统治 Windows 平台数十年。【对于熟悉 Linux 终端的用户很不友好。】
- Windows Terminal:微软开源的终端,于 Windows 11 后座位默认终端加入。【WT 起始可以玩出花来,比如可以选择不同的 Shell,比如 PowerShell、git bash 或者 MSYS2 + fish。】
- xShell5:最强大的全能型终端,堪称最强!【要收费,但这不是它的缺点。】
- MobaXterm:强大的全能型终端,all in one,有免费版和收费版。【免费版相当良心。】
2.2. Linux 平台
- GNOME Terminal:GNOME 桌面自带的终端。【GNOME 桌面推荐】
- Konsole:KDE 桌面自带的终端,支持分屏。【KDE 桌面推荐】
- Mate Terminal:与 GNOME 终端类似。【Mate 桌面推荐】
- QTerminal:Qt 编写的终端,支持多路复用,支持高度定制化。【支持 OpenGL 加速】
- Deepin Terminal:深度团队编写的终端,无论在主题和分屏使用上都非常出色。【DDE 桌面推荐】
- XTerm:非常古老的终端,可以作为以上终端启动失败的 fallback。
2.3. MacOS 平台
- terminal:MacOS 自带终端,基本够用。
- iTerm2:Mac 平台下超好用的终端,几乎成为每一台 Mac 的标配,是必装软件之一。【Mac 推荐】
- Warp:Mac 平台下的超级终端,非开源,团队仅凭借这一个产品就收获融资,它有两大特色,一是窗口底部的固定编辑区,二是 AI 提示,非常强。
2.4. 跨平台
- tabby:颜值超高的跨平台终端,由于使用了 JS 技术,部分使用者反馈有卡顿现象。
- alacritty:使用 rust 打造跨平台终端,由于使用了 GPU 加速,号称史上最快!【推荐】
- kitty:使用 C + Python 编写的现代化终端,支持 GPU 加速,比不上 rust 抢风头,但是潜力无限。【推荐】
- wezterm:使用 rust 打造的跨平台终端,但是不如 alacritty,配置难学。
2.5. 小众选手
- Yakuake:下拉式终端,设计新颖【Linux】
- Terminator:古老的终端。【Linux】
3. 多路复用技术
多路复用技术是为了弥补终端程序不支持分屏显示等操作,所想出来的一种解决方案,借助于终端复用器,可以让那些终端变得更高效。
- tmux: 包含 Window,Pane,Session 等概念,为后续同类型产品的推出,提供了指引。【推荐】
- zellij:使用 rust 编写的终端复用器,兼容 tmux 的快捷键,显示提示都更友好,但是用的人不对,也没有人打 deb 包。【推荐】
- screen:老牌终端复用器,设计思想上已经落后。【不推荐】
4. 未来的趋势
除了以上介绍的终端复用器技术之外,TUI 还有很多好用的技巧。据我观察,终端技术发展到今天,除了满足基本功能外,还呈现了以下的几个特点:
4.1. 全平台
新版本的终端,大部分都注重全平台支持,或者说在选用技术栈时,选择了跨平台比较好的技术栈。
4.2. 智能化
Warp 终端的 AI 模式,非常智能,虽然不开源,但是也让人眼前一亮。
4.3. 个性化
新出现的终端,一定解决了竞品没有解决的问题,比如 GPU 加速,启动速度慢等。一定要有吸引别人进行使用的个性化功能,才能让别人抛弃旧工具,迎接新时代。
5. 总结
5.1. Shell 的种类
Shell 是为使用者提供操作界面的软件,接收用户指令,并调用相应的程序。Shell 与 Unix 系统有很深的渊源,在后续出现的 Shell 中,也借鉴了 Bash 的部分设计,保证了兼容性问题。
- bash:Bourne again shell,sh 的重写,已经成为事实标准。
- dash:Debian 系列使用的 Shell。
- zsh:非常优秀的智能化 Shell,搭配 ohmyzsh,体验非常出色。
- fish:非常优秀的智能化 Shell,插件丰富,体验出色,但兼容性问题限制了它的发展。
5.2. 推荐的组合
总结起来就是三条原则:
- 不支持多路复用的终端 + 复用器 + 某种 Shell
- 支持多路复用的终端 + 某种 Shell
- 特殊平台的最佳选择:
- Windows:MobaXterm,Windows Terminal + 某种 Shell
- Mac:iTerm2 + 某种 Shell