Mac完美终端(iterm2 + oh my zash + tmux+ControlMaster)
Mac完美终端
- 1、完美终端
- 1.iterm2 (终端,对终端分屏窗口)
- 2.oh-my-zsh (美化iterm2,主题插件)
- 3.tmux(会话,对会话分屏窗口)
- 4.ControlMaster (实现ssh不用每次都输入密码)
- 2、iterm2
- **一、核心功能:为什么选择 iTerm2?**
- **二、安装与基础配置**
- **1. 安装方式**
- **2. 基础设置**
- **三、高阶功能与效率技巧**
- **1. 分屏与标签页管理**
- **2. 智能搜索与历史复用**
- **3. 主题与颜色方案**
- **4. 触发功能(Triggers)**
- **5. 集成 Tmux(多会话管理)**
- **四、常见问题解决**
- **总结**
- 3、zsh 和oh-my-zsh
- **一、zsh vs bash:为什么选择 zsh?**
- **二、Oh My Zsh:zsh 的「开箱即用」解决方案**
- **1. 安装 Oh My Zsh**
- **2. 核心功能与配置**
- **(1)主题定制**
- **(2)插件管理**
- **(3)自定义别名**
- **三、进阶配置:以 powerlevel10k 为例**
- **1. 安装 powerlevel10k**
- **2. 配置主题**
- **四、常见问题解决**
- **总结**
- 4、tmux终端复用器(terminal multiplexer)
- 5、ControlMaster实现ssh不用每次都输入密码
- 附录:(会话)
- 附录1、 linux会话(工具)
- 1. **终端复用工具(Terminal Multiplexers)**
- **Tmux**
- **Screen**
- 2. **远程会话工具**
- **SSH(Secure Shell)**
- **Mosh(Mobile Shell)**
- 3. **图形化会话工具**
- **X2Go**
- **VNC(如 TigerVNC、RealVNC)**
- 4. **系统级会话管理**
- **systemd**
- **nohup / disown**
- 5. **协作与会话共享**
- **tmate**
- **使用场景推荐**
- 附录2: Windows会话
- 一、基于 Linux 子系统的方案
- 1. **WSL + tmux/Screen**
- 2. **Cygwin + tmux/Screen**
- 二、原生 Windows 终端复用工具
- 1. **ConEmu / cmder**
- 2. **MobaXterm**
- 3. **Windows Terminal + 插件**
- 三、远程协作与共享工具
- **tmate**
- 四、替代方案对比
- 五、使用建议
- **一、微软官方:Windows Terminal(推荐首选)**
- **核心功能**
- **安装方式**
- **二、经典增强工具:ConEmu/Cmder**
- **核心功能**
- **安装方式**
- **三、远程管理利器:MobaXterm**
- **核心功能**
- **安装方式**
- **四、轻量工具:Terminals**
- **核心功能**
- **安装方式**
- **五、如何选择?**
- **效率提升技巧**
- **总结**
1、完美终端
完美终端
- iterm2 + oh my zash + tmux
- ControlMaster实现ssh不用每次都输入密码
作用:
1.iterm2 (终端,对终端分屏窗口)
2.oh-my-zsh (美化iterm2,主题插件)
3.tmux(会话,对会话分屏窗口)
4.ControlMaster (实现ssh不用每次都输入密码)
效果:
参考:
https://blog.csdn.net/buzhidao2333shuosha/article/details/121066685
https://www.ruanyifeng.com/blog/2019/10/tmux.html
https://juejin.cn/post/7257740918432792632
https://cloud-atlas.readthedocs.io/zh-cn/latest/apple/macos/vim_tmux_iterm_zsh.html
https://www.jianshu.com/p/d58192137061
安装教程参考:https://zhuanlan.zhihu.com/p/550022490
1.iterm2 (终端,对终端分屏窗口)
参考:
官方文档:https://iterm2.com/documentation.html
https://github.com/eillsu/iTerm2-Chinese-Tutorial/tree/master
https://zhuanlan.zhihu.com/p/550022490
https://segmentfault.com/a/1190000022813972
https://www.cnblogs.com/HGNET/p/18565051
https://www.jianshu.com/p/9c3439cc3bdb
Homebrew安装
打开电脑终端,命令行输入如下命令回车:
brew install iTerm2
iterm2 :在右上角打开它设置
设置说明:
1.Preferences 偏好
The preferences dialog contains the following sections:
首选项对话框包含以下部分:
General 常规
Appearance 外观
Profiles 配置 文件
Keys 钥匙
Arrangements 安排
Pointer 指针
Shortcuts 快捷方式
Advanced 高深
Profiles 配置 文件2.Profiles 配置 文件
Profiles preferences contains the following sections:
“配置文件”首选项包含以下部分:
General 常规
Colors 颜色
Text 发短信
Window 窗
Terminal 终端
Session 会期
Keys 钥匙
Advanced 高深
颜色设置:
配置主题:参考https://zhuanlan.zhihu.com/p/550022490
访问iTerm2主题网站
https://github.com/mbadolato/iTerm2-Color-Schemes
取消勾选是指定义主题,勾选是使用color preset中的主题:“Use separate colors for light and dark mode”。
窗口设置
这里可以设置窗口透明度、背景图片、行列数以及风格等。
字体选择:text
安装好字体库之后,我们来设置iTerm2的字体,具体的操作是iTerm2 -> Preferences -> Profiles -> Text,在Font区域选中Change Font,然后找到Meslo LG字体。有L、M、S可选,看个人喜好
快捷键参考:参考
2.oh-my-zsh (美化iterm2,主题插件)
参考:
官网https://ohmyz.sh/#install
https://github.com/ohmyzsh/ohmyzsh/wiki
https://github.com/ohmyzsh/ohmyzsh
https://github.com/ohmyzsh/ohmyzsh/wiki/Cheatsheet
教程:https://zhuanlan.zhihu.com/p/550022490
安装修改默认shell
1.查看shell
#查看系统安装的所有Shell
cat /etc/Shells
#查看当前使用的Shell
echo $Shell
echo $0
#修改默认Shell为zsh
chsh -s /bin/zsh 应该安装 Zsh(v4.3.9 或更高版本很好,但我们更喜欢 5.0.8 和更新版本)。
如果未预装(运行 zsh --version 确认),请在此处查看以下 wiki 说明: 安装 ZSH2.安装ohmyzsh
Oh My Zsh 是通过在终端中运行以下命令之一来安装的。您可以通过命令行使用 curl、wget 或其他类似工具安装它。Method 方法 Command 命令
curl 方法:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
wget 方法:
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fetch 获取 :
sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
主题和插件配置
配置参考:https://zhuanlan.zhihu.com/p/550022490
例如:headline
例如:
3.tmux(会话,对会话分屏窗口)
参考:
- 官方:
https://github.com/tmux/tmux?tab=readme-ov-file
https://github.com/tmux/tmux/wiki - 教程:
https://www.ruanyifeng.com/blog/2019/10/tmux.html
https://blog.csdn.net/buzhidao2333shuosha/article/details/121066685
会话,将终端窗口和运行程序分隔
正常情况下终端运行的程序和终端是绑定的,我们一旦关闭终端窗口,程序就会停止运行。tmux的作用就是将终端窗口和运行的程序分隔开,当我们关闭窗口也不会终止会话。
关于tmux的介绍以及安装使用这篇文章链接讲的特别好,一文足够。
例如:
以下是根据教程整理的 tmux命令及快捷键汇总,按功能分类整理:
一、会话管理
命令
新建会话
tmux new -s <会话名称>
(示例:tmux new -s my_session)
查看所有会话
tmux ls 或 tmux list-sessions
接入会话
tmux attach -t <会话编号/名称>
(示例:tmux attach -t my_session)
杀死会话
tmux kill-session -t <会话编号/名称>
切换会话
tmux switch -t <会话编号/名称>
重命名会话
tmux rename-session -t <原编号/名称> <新名称>
(示例:tmux rename-session -t 0 new_name)
快捷键
Ctrl+b d:分离当前会话(后台保持运行)。
Ctrl+b s:列出所有会话并切换。
Ctrl+b $:重命名当前会话。
二、窗格操作
命令
划分窗格
tmux split-window(上下划分)
tmux split-window -h(左右划分)
切换窗格
tmux select-pane -U/D/L/R(上下左右)
交换窗格位置
tmux swap-pane -U/D(上下交换)
快捷键
Ctrl+b %:左右划分窗格。
Ctrl+b ":上下划分窗格。
Ctrl+b 方向键:切换至相邻窗格。
Ctrl+b ;:切换到上一个窗格。
Ctrl+b o:切换到下一个窗格。
Ctrl+b { 或 Ctrl+b }:与相邻窗格交换位置。
Ctrl+b x:关闭当前窗格。
Ctrl+b z:当前窗格全屏显示(再次按恢复)。
Ctrl+b Ctrl+方向键:调整窗格大小。
三、窗口管理
命令
新建窗口
tmux new-window(默认名称)
tmux new-window -n <窗口名称>(自定义名称)
切换窗口
tmux select-window -t <窗口编号/名称>
重命名窗口
tmux rename-window <新名称>
快捷键
Ctrl+b c:创建新窗口。
Ctrl+b p:切换到上一个窗口。
Ctrl+b n:切换到下一个窗口。
Ctrl+b 数字键:跳转到指定编号窗口(如 Ctrl+b 1)。
Ctrl+b w:列出所有窗口并切换。
Ctrl+b ,:重命名当前窗口。
四、其他常用命令
列出所有快捷键
tmux list-keys
列出所有Tmux命令
tmux list-commands
重新加载配置
tmux source-file ~/.tmux.conf
五、典型操作流程
新建会话
tmux new -s my_session
运行程序
在Tmux窗口中执行命令(如启动服务、编辑文件等)。
分离会话
按 Ctrl+b d 返回Shell,会话在后台保持运行。
重新接入会话
tmux attach -t my_session
整理后的命令和快捷键已覆盖会话、窗格、窗口管理及常用操作,适合快速查阅和日常使用。
快捷键:
https://github.com/Tristin-C/tmux-cheatsheet?tab=readme-ov-file
https://think.leftshadow.com/docs/tmux/tmux/
4.ControlMaster (实现ssh不用每次都输入密码)
参考:https://blog.csdn.net/weixin_44986037/article/details/138031518
打开或创建 SSH 客户端配置文件 ~/.ssh/config(Linux 和 macOS 系统)或 %USERPROFILE%.ssh\config(Windows 系统)。
在配置文件中添加以下内容:
#方式一:
Host *ControlPath ~/.ssh/test%r@%h:%pControlMaster autoControlPersist yes
例如:
Host *ControlPath ~/.ssh/test%r@%h:%pControlMaster autoControlPersist yesHost kc1HostName 121.9.4.183User rootHost kc2HostName 122.9.4.183User rootHost aliyunHostName exec.aliyun.comUser root
添加前:
Host kc1HostName 121.9.4.183User rootHost kc2HostName 122.9.4.183User rootHost aliyunHostName exec.aliyun.comUser root
链接命令为:ssh HostName
例如:
2、iterm2
iTerm2 是 macOS 平台上一款功能强大、高度可定制的终端模拟器,完美替代系统原生的 Terminal
。它通过分屏、智能搜索、热键窗口、主题定制等特性,大幅提升终端操作效率,是 macOS 开发者和运维人员的「生产力神器」。
一、核心功能:为什么选择 iTerm2?
iTerm2 在原生终端基础上扩展了以下关键能力:
功能 | 描述 | 效率提升点 |
---|---|---|
智能分屏 | 支持水平/垂直分割窗格(Cmd+D 垂直分屏,Cmd+Shift+D 水平分屏),支持任意调整窗格大小 | 同时运行多个任务(如代码编辑+日志查看) |
热键窗口 | 全局快捷键(如 Cmd+ 反引号 ` )调出/隐藏终端,类似游戏控制台 | 快速切换终端与其他应用,减少窗口切换成本 |
会话恢复 | 意外关闭终端后,自动恢复所有标签页和窗格状态(需启用 Preferences > General > Reconnect sessions on startup ) | 避免任务中断,无需重新启动命令 |
智能查找 | 双指在触控板上滑动触发搜索(Cmd+F ),支持正则匹配、高亮所有匹配项 | 快速定位历史命令或输出中的关键信息 |
集成 zsh/Oh My Zsh | 完美兼容 zsh 及 Oh My Zsh 的主题、插件(如 powerlevel10k 主题、自动补全) | 打造高颜值+高效率的终端环境 |
触发功能(Triggers) | 自动识别输出文本(如 URL、错误日志),触发自定义操作(如自动打开链接、高亮错误) | 自动化处理重复操作,减少手动干预 |
iTerm2 和 macOS 原生终端(Terminal.app) 对比
核心功能对比
功能 | macOS 原生终端 | iTerm2 |
---|---|---|
分屏能力 | 仅支持简单水平/垂直分屏(Shell > New Window with Split View ),窗格比例固定 | 支持任意方向分屏(Cmd+D 垂直,Cmd+Shift+D 水平),可拖动调整比例;支持嵌套分屏(在分屏内再分屏) |
热键窗口 | 无 | 全局快捷键(如 Cmd+ ` )调出/隐藏终端,类似游戏控制台,支持自定义位置、透明度 |
会话恢复 | 意外关闭后仅保留当前标签页,历史命令丢失 | 自动恢复所有标签页和分屏状态(需启用 Preferences > General > Reconnect sessions on startup ),历史记录不丢失 |
智能搜索 | 基础搜索(Cmd+F ),仅高亮当前匹配项 | 双指触控板滑动触发搜索,支持正则匹配、高亮所有匹配项;输入命令时按 Cmd+; 弹出历史命令建议(模糊匹配) |
触发功能(Triggers) | 无 | 自动识别输出文本(如 URL、错误日志),触发自定义操作(自动打开链接、高亮错误) |
集成增强 | 仅支持基础 shell(bash/zsh) | 深度集成 zsh/Oh My Zsh,完美兼容 powerlevel10k 等主题;支持 tmux 会话管理 |
适用场景建议
用户类型 | 推荐工具 | 理由 |
---|---|---|
普通用户(日常查文件、运行简单命令) | macOS 原生终端 | 轻量、稳定,满足基础需求,无需学习复杂功能 |
开发者/运维人员(多任务管理、代码调试、远程服务器操作) | iTerm2 | 分屏/热键窗口/智能搜索大幅提升效率;支持插件和脚本扩展 |
追求高颜值终端环境的用户 | iTerm2 + zsh + Oh My Zsh | 支持主题定制、颜色方案导入,配合 powerlevel10k 主题实现炫酷界面 |
需要自动化操作的用户 | iTerm2 | 支持 Python 脚本和触发规则,可自动处理重复任务(如自动打开常用分屏) |
二、安装与基础配置
1. 安装方式
- 官网下载:访问 iTerm2 官网 下载最新稳定版(推荐)。
- Homebrew(需先安装 Homebrew):
brew install --cask iterm2
2. 基础设置
安装后,通过 iTerm2 > Preferences
(Cmd+,
)进入配置界面,重点调整以下选项:
-
默认 Shell:
Profiles > Default > General > Command
选择Login shell
,确保使用zsh
(需提前安装)。 -
热键窗口:
Keys > Hotkey > Create a Dedicated Hotkey Window
,设置全局快捷键(如Cmd+
`
),并调整窗口位置(如顶部居中)、透明度(Appearance > Window > Transparency
)。 -
滚动历史:
Profiles > Default > Terminal > Scrollback Buffer
勾选Unlimited scrollback
(保存无限历史记录)。
三、高阶功能与效率技巧
1. 分屏与标签页管理
- 新建分屏:
- 垂直分屏:
Cmd+D
(左右分)。 - 水平分屏:
Cmd+Shift+D
(上下分)。
- 垂直分屏:
- 切换窗格:
Cmd+[
(左)/Cmd+]
(右),或Cmd+Option+方向键
(精准控制)。 - 关闭窗格:
Cmd+W
(关闭当前窗格);Cmd+Shift+W
(关闭当前标签页)。
2. 智能搜索与历史复用
- 双指滑动搜索:在触控板上双指上下滑动,快速搜索历史输出(支持正则表达式)。
- 历史命令自动补全:输入部分命令后按
Cmd+;
,弹出历史命令建议(支持模糊匹配)。
3. 主题与颜色方案
iTerm2 支持自定义颜色方案(如暗系 Solarized Dark
、亮系 Atom
),可通过以下方式导入:
- 下载颜色方案文件(推荐 iTerm2-Color-Schemes 仓库)。
- 进入
iTerm2 > Preferences > Profiles > Default > Colors > Color Presets > Import
,选择下载的.itermcolors
文件。
推荐颜色方案:
Dracula
(暗系,高对比度)。One Dark
(VS Code 同款暗系主题)。
4. 触发功能(Triggers)
通过 Profiles > Default > Advanced > Triggers > Edit
配置触发规则,自动处理输出文本。例如:
- 识别 URL 并变为可点击链接:添加触发正则
https?://\S+
,动作为Open URL
。 - 高亮错误日志(如
ERROR:
):添加触发正则ERROR:.*
,动作为Change Background Color
(设为红色)。
5. 集成 Tmux(多会话管理)
iTerm2 与 tmux
配合可实现更复杂的会话管理(如跨窗口/分屏复用会话):
# 安装 tmux(通过 Homebrew)
brew install tmux# 创建命名会话
tmux new -s dev_session# 分离会话(`Ctrl+B + d`)后,可关闭 iTerm2 窗口,后续通过 `tmux attach -t dev_session` 恢复
四、常见问题解决
-
分屏后窗口大小不均:
按住Option
键拖动分屏线,可精准调整窗格比例(如 1:1、2:1)。 -
热键窗口无法呼出:
检查System Preferences > Security & Privacy > Privacy > Accessibility
,确保 iTerm2 已授权。 -
颜色方案导入后无效:
确认在Profiles
中选择了正确的配置文件(默认是Default
),并重启 iTerm2。
总结
iTerm2 是 macOS 终端的「终极解决方案」,通过分屏、热键窗口、智能搜索、主题定制等功能,大幅提升终端操作效率。搭配 zsh + Oh My Zsh + powerlevel10k
主题,可打造「高颜值 + 高效率」的开发环境。
如果需要具体功能的配置教程(如触发规则、颜色方案导入),可以随时提问!
3、zsh 和oh-my-zsh
Zsh 是什么
Zsh 属于 Shell 的一种,和 Bash 一样,但比 Bash 更好用,Zsh 完全兼容 Bash,拥有极其丰富的插件,其强大的自动补全参数、文件名以及自定义功能,可以大大提高我们使用 Linux 的效率。ZSH,也称为 Z shell,是 Bourne Shell (sh) 的扩展版本,具有大量新功能,并支持插件和主题。由于它与 Bash 基于相同的 shell,因此 ZSH 具有许多相同的功能,并且切换起来轻而易举。
Oh-My-Zsh
传统的 bash 功能比较简陋,且不美观。本文基于 Ubuntu22.04 LTS 系统,安装 zsh,并使用 oh-my-zsh 对终端进行美化。Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。Oh My Zsh 是一个开源的、社区驱动的框架,用于管理您的 zsh 配置。
Zsh 是一个功能强大的 Linux 终端 shell,而 oh-my-zsh 是一个基于 Zsh 的轻量级框架,提供了丰富的主题和插件,能够帮助用户快速设置和使用 Zsh,以增强终端操作的体验和效率。
zsh 是一款功能强大的 Unix shell,在传统 bash
的基础上扩展了智能补全、主题定制、插件系统等特性,被称为「终极 shell」。而 Oh My Zsh 是一个开源的 zsh 配置管理框架,通过预集成主题、插件和便捷的配置工具,大幅降低了 zsh 的使用门槛,让用户快速享受高效的终端体验。
一、zsh vs bash:为什么选择 zsh?
zsh 兼容 bash 的大部分语法(旧脚本无需修改即可运行),但新增了以下核心优势:
功能 | zsh 特性 | bash 限制 |
---|---|---|
智能补全 | 支持路径、命令参数、Git 分支等上下文感知补全(按 Tab 自动联想) | 仅基础补全,需手动配置复杂规则 |
通配符增强 | 支持 ** 递归匹配目录(如 ls **/*.txt 列出所有子目录的 txt 文件) | 需 shopt -s globstar 启用,且功能有限 |
主题与样式 | 支持自定义提示符(显示 Git 分支、当前目录、执行时间等) | 提示符仅支持简单变量拼接 |
插件系统 | 原生支持插件扩展(如 zsh-autosuggestions 自动建议历史命令) | 需手动整合工具,无统一插件管理 |
别名增强 | 支持「全局别名」(如 `alias -g G=’ | grep’,输入 ls G error等价 ls |
二、Oh My Zsh:zsh 的「开箱即用」解决方案
Oh My Zsh 是 zsh 的配置管理框架,通过预配置主题、插件库、自动安装工具,解决了 zsh 原生配置复杂的问题。即使是新手也能快速获得「高颜值 + 高效率」的终端环境。
1. 安装 Oh My Zsh
前置条件:已安装 zsh(未安装时 Oh My Zsh 会自动尝试安装)。
安装命令(支持 macOS、Linux、WSL):
# 通过 curl 安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"# 或通过 wget 安装
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
注意:
- 安装完成后,终端会自动切换为 zsh(默认主题为
robbyrussell
)。 - 若未自动切换,需手动执行
chsh -s $(which zsh)
(Linux/macOS),并重启终端。
2. 核心功能与配置
Oh My Zsh 的配置集中在 ~/.zshrc
文件中,通过修改该文件可定制主题、启用插件等。
(1)主题定制
Oh My Zsh 内置了 100+ 主题,支持在提示符中显示 Git 状态、当前目录、命令执行时间等信息。
修改主题:
编辑 ~/.zshrc
,找到 ZSH_THEME
字段,替换为主题名称(如 agnoster
或 powerlevel10k
):
ZSH_THEME="powerlevel10k/powerlevel10k" # 推荐现代主题 powerlevel10k
推荐主题:
powerlevel10k
:高颜值、高自定义性(支持图标、动画、多信息面板),需配合 Nerd Fonts 字体使用。agnoster
:简洁风格,适合代码开发(显示 Git 分支、错误状态)。robbyrussell
:默认主题,适合轻量需求。
(2)插件管理
Oh My Zsh 内置了 200+ 插件,覆盖 Git、Docker、Node.js 等常用工具,以及自动补全、命令高亮等效率功能。
启用插件:
编辑 ~/.zshrc
,找到 plugins
字段,添加插件名称(空格分隔):
plugins=(git # Git 命令补全(如 `gco` 自动补全为 `git checkout`)zsh-autosuggestions # 自动建议历史命令(灰色提示,按 → 补全)zsh-syntax-highlighting # 命令语法高亮(错误命令红色,正确绿色)docker # Docker 命令补全(如 `docker run -it` 自动补全镜像名)npm # npm 命令补全(如 `npm ins` 补全为 `npm install`)
)
推荐插件:
zsh-autosuggestions
:根据历史命令自动提示后续输入(需手动安装,Oh My Zsh 不内置,需通过git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
安装)。zsh-syntax-highlighting
:实时检查命令语法(错误命令红色高亮)。autojump
:快速跳转目录(输入j dirname
跳转到含dirname
的任意目录)。kubectl
:Kubernetes 命令补全(需已安装kubectl
)。
(3)自定义别名
Oh My Zsh 支持在 ~/.zshrc
中定义别名,简化常用命令:
# 基础别名
alias ll='ls -lFh' # 显示详细文件列表(带颜色、可读大小)
alias grep='grep --color=auto' # grep 结果高亮# Git 别名
alias g='git'
alias ga='git add'
alias gp='git push'# 全局别名(用 -g 定义,适用于命令末尾)
alias -g G='| grep' # 输入 `ls G error` 等价 `ls | grep error`
alias -g L='| less' # 输入 `cat big.log L` 等价 `cat big.log | less`
三、进阶配置:以 powerlevel10k 为例
powerlevel10k
是 Oh My Zsh 中最受欢迎的主题之一,支持交互式配置向导,可自定义提示符显示的信息(如 Git 分支、Python 虚拟环境、时间等)。
1. 安装 powerlevel10k
# 克隆主题到 Oh My Zsh 的 custom 目录
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
2. 配置主题
安装后,编辑 ~/.zshrc
,将 ZSH_THEME
设为 powerlevel10k/powerlevel10k
,重启终端会自动进入配置向导。根据提示选择:
- 是否显示图标(需先安装 Nerd Fonts 字体,如
MesloLGS NF
)。 - 提示符样式(经典/紧凑/极简)。
- 要显示的信息模块(Git、Python 环境、执行时间等)。
四、常见问题解决
-
插件未生效:
检查~/.zshrc
中plugins
字段是否正确添加插件名,保存后执行source ~/.zshrc
刷新配置。 -
主题乱码(显示方框):
安装 Nerd Fonts 字体(推荐MesloLGS NF
),并在终端设置中修改字体为该字体。 -
终端启动变慢:
禁用不必要的插件(尤其是需要联网或大量计算的插件),或通过zsh -x
分析启动耗时步骤。
总结
- zsh 是功能强大的 shell,适合追求效率和个性化的开发者。
- Oh My Zsh 是 zsh 的「开箱即用」解决方案,通过主题和插件大幅降低配置成本。
- 推荐组合:zsh + Oh My Zsh + powerlevel10k 主题 +
zsh-autosuggestions
/zsh-syntax-highlighting
插件,可打造「高效 + 高颜值」的终端环境。
4、tmux终端复用器(terminal multiplexer)
参考:
https://www.ruanyifeng.com/blog/2019/10/tmux.html
https://zhuanlan.zhihu.com/p/90464490
https://support.apple.com/zh-cn/guide/terminal/trmlshtcts/mac
一、 会话与进程
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
我们使用Linux的时候,常常需要多个会话操作,这时候有个tmux工具可以实现在同一个会话中进行多窗口的显示的功能,而且在使用如xshell等工具远程链接使用服务器的时候,有时会话会断开,当我们重连tmux后,会发现之前的操作还可以保留。某种意义上也提升了我们在Linux下开发的效率,故小编总结了一些tmux的安装、常用的快捷键及常用命令,如下。
二、tmax工具的优点
可以在单个会话窗口中,同时分割成多个窗口,相当于之前访问的多个会话。对于同时运行多个命令行程序很有用。
可以让新窗口"接入"已经存在的会话。
允许每个会话有多个连接窗口,因此可以多人实时共享会话。
还支持窗口任意的垂直和水平拆分。
5、ControlMaster实现ssh不用每次都输入密码
ControlMaster实现ssh不用每次都输入密码
附录:(会话)
附录1、 linux会话(工具)
参考:
https://www.ruanyifeng.com/blog/2019/10/tmux.html
https://zhuanlan.zhihu.com/p/90464490
https://support.apple.com/zh-cn/guide/terminal/trmlshtcts/mac
一、 会话与进程
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
我们使用Linux的时候,常常需要多个会话操作,这时候有个tmux工具可以实现在同一个会话中进行多窗口的显示的功能,而且在使用如xshell等工具远程链接使用服务器的时候,有时会话会断开,当我们重连tmux后,会发现之前的操作还可以保留。某种意义上也提升了我们在Linux下开发的效率,故小编总结了一些tmux的安装、常用的快捷键及常用命令,如下。
二、tmax工具的优点
可以在单个会话窗口中,同时分割成多个窗口,相当于之前访问的多个会话。对于同时运行多个命令行程序很有用。
可以让新窗口"接入"已经存在的会话。
允许每个会话有多个连接窗口,因此可以多人实时共享会话。
还支持窗口任意的垂直和水平拆分。
在 Linux 系统中,会话管理工具主要用于管理长时间运行的进程、保持远程连接的稳定性,或在多个终端任务之间灵活切换。以下是常用的工具及其用途:
1. 终端复用工具(Terminal Multiplexers)
允许在单个终端窗口中运行多个会话,支持会话的分离(detach)和重连(re-attach),适合长时间任务或网络不稳定的场景。
Tmux
- 特点:功能强大、支持分屏、会话持久化、脚本化操作。
- 常用命令:
tmux new -s <session_name> # 创建新会话 tmux ls # 列出所有会话 tmux attach -t <session_id> # 重新连接到会话 Ctrl+b d # 分离当前会话(不终止进程)
- 优势:支持窗口分割、快捷键自定义、会话共享(多人协作)。
Screen
- 特点:轻量级终端复用器,功能比 Tmux 简单。
- 常用命令:
screen -S <session_name> # 创建新会话 screen -ls # 列出会话 screen -r <session_id> # 重新连接会话 Ctrl+a d # 分离会话
- 适用场景:快速管理简单任务,适合老旧系统(预装率较高)。
2. 远程会话工具
用于安全连接到远程服务器,保持会话稳定。
SSH(Secure Shell)
- 用途:加密远程登录,执行命令或传输文件。
- 保持连接:
ssh -o ServerAliveInterval=60 user@host # 每60秒发送心跳包
- 密钥认证:使用
ssh-keygen
生成密钥对,避免密码登录。
Mosh(Mobile Shell)
- 特点:基于 UDP,适应网络波动(如 Wi-Fi 切换、IP 变化),输入实时反馈。
- 安装:
# 服务端需安装 mosh sudo apt install mosh # 客户端连接 mosh user@host
3. 图形化会话工具
X2Go
- 用途:基于 SSH 的远程图形化桌面管理,适合低带宽环境。
- 支持协议:NX 协议压缩图形数据传输。
VNC(如 TigerVNC、RealVNC)
- 用途:远程图形界面访问,适合完整的桌面环境操作。
4. 系统级会话管理
systemd
- 用途:通过
systemd-run
创建独立进程,由系统托管(不依赖终端)。systemd-run --scope --user command # 用户级托管
nohup / disown
- 用途:后台运行进程,避免因终端关闭而终止。
nohup command & # 忽略挂断信号 jobs; disown %<job_id> # 剥离进程与终端的关联
5. 协作与会话共享
tmate
- 特点:基于 Tmux 的即时会话共享工具,生成临时 SSH 链接供他人接入。
tmate # 启动后分享显示的 SSH 或 Web URL
使用场景推荐
- 本地多任务管理:优先选择
tmux
(功能全面)或screen
(轻量)。 - 远程服务器连接:使用
SSH
(基础) +Mosh
(网络不稳定时)。 - 持久化进程:
tmux
或systemd
托管。 - 图形界面远程访问:
X2Go
或VNC
。 - 实时协作:
tmate
或tmux
会话共享。
如果需要具体工具的详细教程,可以进一步说明!
附录2: Windows会话
在 Windows 系统中,虽然原生环境对终端复用工具(如 tmux
和 GNU Screen
)的支持有限,但通过以下方式仍可实现类似功能。以下是综合多种方案的推荐工具及使用方法:
一、基于 Linux 子系统的方案
1. WSL + tmux/Screen
- 适用场景:需在 Windows 中运行 Linux 环境下的终端复用工具。
- 实现步骤:
- 启用 WSL(Windows Subsystem for Linux)并安装 Linux 发行版(如 Ubuntu)。
- 在 Linux 子系统中通过包管理器安装
tmux
或Screen
:sudo apt-get install tmux # 安装 tmux sudo apt-get install screen # 安装 GNU Screen
- 直接在 WSL 终端中使用
tmux
或screen
命令,功能与 Linux 原生环境一致。
- 优势:完整的 Linux 工具链支持,适合开发者或运维人员。
- 注意:需 Windows 10 及以上版本,并启用开发者模式。
2. Cygwin + tmux/Screen
- 适用场景:在 Windows 原生环境中模拟 Linux 终端。
- 实现步骤:
- 安装 Cygwin(选择
tmux
或screen
包)。 - 通过 Cygwin 终端启动
tmux
或screen
。
- 安装 Cygwin(选择
- 缺点:性能较低,部分功能受限。
二、原生 Windows 终端复用工具
1. ConEmu / cmder
- 特点:支持多标签、分屏、自定义布局,集成 SSH 客户端。
- 功能亮点:
- 类似
tmux
的窗格分割(需手动配置快捷键)。 - 支持与 PuTTY、WSL 等工具集成。
- 类似
- 安装:
- ConEmu:直接下载安装包。
- cmder:基于 ConEmu 的增强版,内置 Git 支持。
- 适用场景:本地多任务管理,替代原生 CMD/PowerShell。
2. MobaXterm
- 特点:集成 SSH、X11 服务器、文件传输等功能。
- 优势:
- 支持标签式终端窗口。
- 内置
screen
会话管理。
- 适用场景:远程服务器运维,需图形化界面支持的操作。
3. Windows Terminal + 插件
- 特点:微软官方终端,支持多标签、分屏(需手动配置)。
- 扩展性:可通过插件实现高级复用功能,如
wsl-tmux
集成。
三、远程协作与共享工具
tmate
- 实现方式:通过 WSL 或 Cygwin 安装
tmate
。 - 功能:基于
tmux
的即时会话共享,生成临时 SSH 链接供他人接入。 - 适用场景:远程协作调试、教学演示。
四、替代方案对比
工具 | 适用场景 | 优势 | 限制 |
---|---|---|---|
WSL + tmux | Linux 兼容环境开发/运维 | 功能完整,支持持久会话 | 需配置 WSL,占用资源较高 |
ConEmu/cmder | 本地多任务管理 | 原生支持,无需依赖 Linux 子系统 | 分屏功能较基础 |
MobaXterm | 远程服务器运维 | 集成度高,支持图形化操作 | 商业版收费 |
Cygwin + tmux | 轻量级 Linux 工具链需求 | 无需 WSL,适合老旧系统 | 性能较差,兼容性问题 |
五、使用建议
- 开发与运维:优先选择 WSL + tmux,功能最接近 Linux 环境。
- 本地多任务:使用 ConEmu/cmder 或 Windows Terminal,搭配分屏插件。
- 远程协作:通过 tmate 共享
tmux
会话,或使用 MobaXterm 内置的screen
功能。
如需详细安装教程或问题排查,可进一步参考具体工具的官方文档或社区资源。
在 Windows 系统中,终端复用工具主要解决多任务管理需求,支持在一个窗口内通过**标签页(Tab)或分屏(Split Pane)**同时运行多个终端会话(如 cmd
、PowerShell
、WSL
或远程 SSH 连接)。以下是主流工具的详细介绍与对比:
一、微软官方:Windows Terminal(推荐首选)
Windows Terminal 是微软推出的现代终端应用,支持多标签、分屏、自定义主题,且深度集成 Windows 生态(如 WSL、PowerShell、Azure CLI 等),是 Windows 10/11 用户的首选。
核心功能
-
多标签页管理:
点击顶部+
按钮或按Ctrl+Shift+T
新建标签页,每个标签页可独立运行不同的 shell(如cmd
、PowerShell
、Ubuntu (WSL)
)。- 切换标签:
Ctrl+Tab
(下一个)或Ctrl+Shift+Tab
(上一个)。 - 关闭标签:
Ctrl+Shift+W
。
- 切换标签:
-
分屏(Split Pane):
支持水平/垂直分割当前窗格,同时显示多个终端会话。- 垂直分割:
Alt+Shift+D
(左右分)。 - 水平分割:
Alt+Shift+_
(上下分)。 - 切换窗格:
Alt+方向键
(上下左右)。 - 关闭窗格:
Alt+Shift+X
。
- 垂直分割:
-
自定义配置:
通过settings.json
文件(Ctrl+Shift+,
打开)配置主题、字体、快捷键、默认 shell 等。// 示例配置:设置默认启动 WSL,主题为暗系 {"profiles": {"defaults": {"colorScheme": "Campbell Powershell", // 暗系主题"fontFace": "Cascadia Code PL", // 等宽字体(支持编程符号)"startingDirectory": "//wsl$/Ubuntu/home/username" // WSL 目录},"list": [{"name": "Ubuntu (WSL)","commandline": "wsl.exe -d Ubuntu","hidden": false}]} }
-
集成高级功能:
- 支持 GPU 加速渲染,字体和文本显示更清晰。
- 内置对
Azure Cloud Shell
、Git Bash
等第三方 shell 的支持。
安装方式
- Windows 11:默认预装(可在 Microsoft Store 更新到最新版)。
- Windows 10:通过 Microsoft Store 搜索 “Windows Terminal” 安装,或直接下载 GitHub 发布包。
二、经典增强工具:ConEmu/Cmder
ConEmu
是一款开源的终端模拟器,提供多标签、分屏、会话保存等功能;Cmder
是基于 ConEmu
的定制版,内置常用开发工具(如 Git、Clink),更适合开发者。
核心功能
-
多标签与分屏:
- 新建标签:
Ctrl+T
。 - 分割窗格:右键标签栏选择
Split
(支持水平/垂直)。 - 会话保存:通过
Settings > Integration > Taskbar
保存当前标签和窗格布局,下次启动时快速恢复。
- 新建标签:
-
兼容多种 Shell:
支持cmd
、PowerShell
、Git Bash
、WSL
等,可在新建标签时选择目标 shell。 -
Clink 增强(仅 Cmder):
内置Clink
工具,提供类似 Linuxbash
的命令补全(如Tab
补全路径、历史命令搜索)。
安装方式
- ConEmu:直接下载 官方安装包。
- Cmder:下载 Cmder 安装包(推荐下载
Full
版,包含 Git 等工具)。
三、远程管理利器:MobaXterm
MobaXterm 是一款集成远程连接(SSH、RDP、VNC)和本地终端复用的工具,适合需要同时管理多个远程会话的用户。
核心功能
-
多标签远程会话:
每个标签对应一个 SSH/RDP 连接,支持保存常用连接配置(如 IP、端口、认证方式)。 -
分屏协作:
支持水平/垂直分割窗格,同时显示多个远程终端(如左侧连接服务器 A,右侧连接服务器 B)。 -
内置工具集:
集成 SFTP 文件传输、X11 转发、网络诊断(ping
/traceroute
)等功能,无需额外安装工具。
安装方式
- 下载 MobaXterm 官方版(免费版足够日常使用)。
四、轻量工具:Terminals
Terminals 是一款轻量级终端复用工具,仅 2MB 左右,适合需要极简多标签管理的用户。
核心功能
- 多标签管理:支持
cmd
、PowerShell
等本地 shell,界面简洁无冗余。 - 快速切换:通过标签栏直接点击或
Ctrl+数字键
切换标签。
安装方式
- 下载 Terminals 安装包(需 .NET Framework 支持)。
五、如何选择?
需求场景 | 推荐工具 | 理由 |
---|---|---|
日常开发/本地多任务 | Windows Terminal | 官方支持、功能全面、持续更新 |
开发者工具链集成 | Cmder | 内置 Git/Clink,兼容 Linux 操作习惯 |
远程服务器管理 | MobaXterm | 集成 SSH/RDP/SFTP,多会话高效管理 |
轻量多标签需求 | Terminals | 体积小、无依赖,适合基础复用 |
效率提升技巧
-
Windows Terminal 分屏自动化:
通过配置settings.json
定义启动时自动分割窗格(例如同时打开 WSL 和 PowerShell):"actions": [{"command": {"action": "splitPane","split": "vertical","profile": "Ubuntu (WSL)"},"keys": "alt+shift+d"} ]
-
Cmder 自定义别名:
在cmder\config\user_aliases.cmd
中添加常用命令别名(类似 Linuxalias
):ll=ls -l --color $* # 模拟 Linux 的 ll 命令 grep=findstr /S /I $* # 模拟 Linux grep
-
MobaXterm 会话同步:
登录 MobaXterm 账号后,可将保存的远程连接配置同步到云端,跨设备使用。
总结
- 首选 Windows Terminal:功能全面、界面现代,适合大多数 Windows 用户。
- 开发者推荐 Cmder:兼容 Linux 操作习惯,集成常用工具链。
- 远程管理选 MobaXterm:一站式解决 SSH/RDP 会话和文件传输需求。
如需具体工具的配置教程或问题排查,可以随时提问!