Tmux 是一个终端复用器(Terminal Multiplexer),它可以让用户在单个终端窗口中创建、访问和控制多个终端会话,特别适合远程服务器管理和长时间运行任务。
核心功能
会话持久性
Tmux 最强大的功能之一是会话持久性。当您在服务器上运行长时间任务时(如编译大型项目、运行数据分析脚本或进行系统维护),通常需要保持SSH连接处于活动状态。使用Tmux即使网络断开或关闭终端,Tmux 会话仍会在后台继续运行,可以随时重新连接到之前的会话,恢复工作环境。
多任务处理
Tmux 允许在单个终端窗口中运行多个相关或不相关的任务,每个任务在自己的面板或窗口中运行。
提高生产力
通过提供分割屏幕、多会话和窗口管理的功能,Tmux 极大地提高了终端用户的生产力。您可以创建适合特定工作流程的环境布局,并在不同项目之间快速切换。
团队协作
多个用户可以连接到同一个 Tmux 会话,使其成为结对编程或远程协作的绝佳工具。一个用户的动作对所有连接的用户都是可见的。
安装Tmux
sudo apt-get update
sudo apt-get install tmux
基本概念
在深入了解tmux的使用方法之前,了解其核心概念非常重要。tmux的层次结构是:会话(Session)> 窗口(Window)> 面板(Pane)。
会话 (Session)
会话是tmux的顶层对象,它是一组窗口的集合,加上一些会话范围内的设置和状态信息。会话可以被分离(detached)和重新连接(attached),这是tmux最强大的功能之一。
你可以有多个独立的会话,每个会话用于不同的项目或任务组。例如,你可能会为每个正在进行的开发项目创建一个会话。
窗口 (Window)
窗口类似于传统终端应用程序中的标签页。每个会话可以包含多个窗口,每个窗口占据整个屏幕,可以包含一个或多个面板。窗口由其索引(从0开始)和可选的名称标识。
面板 (Pane)
面板是窗口内的矩形区域,每个面板运行一个独立的shell或程序。您可以水平或垂直分割窗口来创建多个面板,并可以根据需要调整它们的大小或重新排列它们。
前缀键 (Prefix Key)
tmux使用前缀键作为命令的开始。默认前缀键是Ctrl+b(通常写作C-b)。要发送tmux命令,您先按前缀键,然后是命令键。例如,要创建一个新窗口,您按C-b c(按住Ctrl键,按b,松开两个键,然后按c)。
常用命令
会话管理
// 创建新的会话
tmux
tmux new -s my-session // 带上名字
// 列出所有会话
tmux ls
// 分离当前会话
C-b d
// 连接特定会话
tmux attach -t my-session
tmux a -t my-session
// 终止会话
tmux kill-session -t session-name
// 切换会话
C-b ((上一个会话)或C-b )(下一个会话)
// 在会话间交互式切换
C-b s
窗口管理
创建和管理窗口
创建新窗口:C-b c
重命名当前窗口:C-b ,
关闭当前窗口:C-b &或在窗口的所有面板中输入exit
列出所有窗口:C-b w
查找窗口:C-b f
切换到下一个窗口:C-b n
切换到上一个窗口:C-b p
切换到特定编号的窗口:C-b 0到C-b 9
切换到最后活动的窗口:C-b l(小写L)
移动当前窗口:C-b .然后输入新的索引号
窗口布局
* C-b Space:循环切换预定义布局
* C-b M-1到C-b M-5:直接选择特定布局
* M-1:even-horizontal
* M-2:even-vertical
* M-3:main-horizontal
* M-4:main-vertical
* M-5:tiled