3、终端与Shell:Windows Terminal、iTerm2、Linux原生终端的安装与配置,以及Bash/Zsh/Fish的选择
说实话,很多新手朋友一上来就问我:「老师,我该用哪个终端?哪个Shell最好?」
我的回答通常是——先别纠结,把工具装好再说。终端和Shell,说白了就是你跟操作系统对话的窗口。你想想看,一个程序员每天要在这个窗口里敲几百条命令,要是窗口不好用,那得多难受?
我个人习惯是:Windows用Windows Terminal,macOS用iTerm2,Linux直接用原生终端。至于Shell,我推荐Zsh,但Bash和Fish也各有拥趸。下面我一个个说。
3.1 终端模拟器的选择与安装
终端模拟器,就是那个黑乎乎的窗口。别小看它,好的终端能让你效率翻倍。
3.1.1 Windows Terminal
Windows自带的cmd和PowerShell,说实话,颜值和功能都差点意思。微软后来推出了Windows Terminal,这才算真正能打。
安装方式:去Microsoft Store搜索「Windows Terminal」,点安装就行。或者用winget命令:
winget install Microsoft.WindowsTerminal
配置要点:
- 默认启动配置:打开设置,把默认配置文件改成「Windows PowerShell」或「命令提示符」,看你习惯
- 字体设置:我推荐JetBrains Mono或Fira Code,支持连字,代码看起来舒服
- 配色方案:内置了One Half Dark、Solarized等,我个人喜欢Catppuccin,护眼
- 快捷键:Ctrl+Shift+1/2/3 切换标签页,Ctrl+Shift+D 复制标签页
3.1.2 iTerm2
macOS用户,别用自带的Terminal.app了。iTerm2才是王道。
安装方式:去官网下载,或者用Homebrew:
brew install --cask iterm2
配置要点:
- Profiles设置:Preferences → Profiles → 新建一个Profile,设置字体、配色、背景透明度
- 热键窗口:Preferences → Keys → Hotkey,设置一个全局快捷键(比如Ctrl+`),按一下就能呼出终端,再按一下隐藏。我写代码时经常用这个,效率极高
- 分屏:Cmd+D垂直分屏,Cmd+Shift+D水平分屏
- 搜索:Cmd+F,支持正则搜索
3.1.3 Linux原生终端
Linux桌面环境自带的终端,比如GNOME Terminal、Konsole、Alacritty等,其实都够用。
配置要点:
- GNOME Terminal:右键打开偏好设置,可以改字体、配色、快捷键
- Alacritty:如果你追求极致性能,可以试试Alacritty。它用GPU渲染,启动飞快。配置文件是YAML格式,放在~/.config/alacritty/alacritty.yml
- 快捷键:Ctrl+Shift+T新建标签页,Ctrl+Shift+W关闭标签页
echo $TERM查看终端类型,如果是xterm-256color,基本没问题。
3.2 Shell的选择:Bash vs Zsh vs Fish
Shell是终端里的「翻译官」,你敲的命令由它解释执行。选哪个?我直接说结论:新手推荐Zsh,老手随意。
| 特性 | Bash | Zsh | Fish |
|---|---|---|---|
| 兼容性 | 最广泛,几乎所有Linux默认 | 兼容Bash,macOS默认 | 不兼容Bash,语法不同 |
| 插件生态 | 一般,有bash-it | 非常丰富,Oh My Zsh | 一般,有Fisher |
| 自动补全 | 基础 | 强大,支持模糊匹配 | 非常强大,开箱即用 |
| 主题 | 少 | 非常多,Powerlevel10k | 少 |
| 学习成本 | 低 | 中 | 低(但迁移成本高) |
3.2.1 Bash
Bash是Linux世界的「老大哥」。几乎所有Linux发行版都默认用Bash。如果你在服务器上工作,大概率只能用它。
优点:
- 兼容性最好,脚本到处都能跑
- 不需要额外安装
- 稳定,不会出幺蛾子
缺点:
- 自动补全弱,不支持模糊匹配
- 主题少,颜值低
- 插件生态不如Zsh
我个人建议:如果你主要做运维或服务器管理,用Bash就够了。但如果你做开发,尤其是前端或Python,Zsh会让你更舒服。
3.2.2 Zsh
Zsh是目前最流行的Shell,macOS从Catalina开始默认就是Zsh。我本人也用了好几年Zsh,回不去了。
安装方式:
# macOS(已预装)
# Linux
sudo apt install zsh # Debian/Ubuntu
sudo yum install zsh # CentOS/RHEL
# 设置为默认Shell
chsh -s $(which zsh)
配置框架:推荐Oh My Zsh,它帮你管理插件和主题。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
常用插件:
git:提供git命令的别名和补全zsh-autosuggestions:根据历史命令自动提示,按→键补全zsh-syntax-highlighting:命令语法高亮,敲错了会变红web-search:在终端里直接搜索,比如google 如何安装Python
主题推荐:Powerlevel10k,颜值和功能都是顶级的。安装后运行p10k configure,按提示配置就行。
3.2.3 Fish
Fish(Friendly Interactive Shell)是「开箱即用」的典范。你不需要配置任何东西,它就已经很好用了。
安装方式:
# macOS
brew install fish
# Linux
sudo apt install fish # Debian/Ubuntu
sudo yum install fish # CentOS/RHEL
特点:
- 自动补全非常强大,甚至能补全命令的参数
- 语法高亮开箱即用
- Web配置界面:运行
fish_config,在浏览器里改设置 - 函数式编程风格,写脚本很爽
缺点:
- 不兼容Bash语法,很多Bash脚本跑不了
- 插件生态不如Zsh
- 如果你需要写跨平台的Shell脚本,Fish可能不太合适
我个人觉得:Fish适合那些不想折腾、只想开箱即用的用户。但如果你需要写复杂的脚本,或者需要在不同机器间迁移配置,Zsh更稳妥。
3.3 我的最终推荐
说了这么多,我直接给结论:
- Windows用户:Windows Terminal + Zsh(通过WSL2)
- macOS用户:iTerm2 + Zsh + Oh My Zsh + Powerlevel10k
- Linux用户:原生终端(GNOME Terminal或Alacritty)+ Zsh
- 服务器用户:Bash就够了,别折腾
嗯,这里要注意:不要为了追求花哨而牺牲效率。我见过有人花了一整天配置终端主题,结果代码一行没写。工具是为你服务的,别被工具绑架了。
下一章,我们会聊包管理器的选择与配置,包括pip、npm、conda等。到时候见!