Tmux 使用小记

本文详细介绍了Tmux这款工具的核心功能,包括会话管理(如新建、分离、重命名和接入)、窗口操作(快捷键和管理方法),以及与screen的对比。重点讲解了如何通过Tmux提高服务器环境下的任务管理和窗口切换效率。

本文参考自 阮一峰老师Tmux 使用教程[1]

Tmux,不仅仅是分屏那么简单。。。

与tmux类似的工具是screen


会话管理


将窗口与会话"解绑" 对于没有图形界面只有shell的场景(如服务器),尤其有用..这是其最核心解决的问题(窗口管理啥的只能算锦上添花的辅助功能)

即便是窗口关了,ssh断了,只要不重启机器, 不结束tmux进程,“会话中的任务”就一直还在 (不然之前这种case,只能用nohup,但用nohup无法恢复会话了~)


新建会话


第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。

使用编号区分会话时间一长就忘了,无法直观获悉0号,1号都对应啥内容。更好的方法是为会话起自定义的名称

tmux new -s 自定义的会话名称


分离会话


Ctrl+b dtmux detach

会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行

tmux ls 可查看当前所有的 Tmux 会话


接入会话


tmux attach 用于重新接入某个已存在的会话

# 使用会话编号
$ tmux attach -t 0

#
 使用会话名称
$ tmux attach -t 自定义的会话名称`

杀死会话


tmux kill-session 用于杀死某个会话

# 使用会话编号
$ tmux kill-session -t 0

#
 使用会话名称
$ tmux kill-session -t 自定义的会话名称`

切换会话


tmux switch 用于切换会话

# 使用会话编号
$ tmux switch -t 0

#
 使用会话名称
$ tmux switch -t 自定义的会话名称

重命名会话


tmux rename-session用于重命名会话

tmux rename-session -t 0 <new-name>

上面命令将0号会话重命名


会话快捷键


下面是一些会话相关的快捷键

Ctrl+b d:分离当前会话。
Ctrl+b s:列出所有会话。
Ctrl+b $:重命名当前会话。

即最简的使用步骤:

  • 1.新建会话tmux new -s my_session。
  • 2.在 Tmux 窗口运行所需的程序。
  • 3.按下快捷键Ctrl+b d将会话分离。
  • 4.下次使用时,重新连接到会话tmux attach-session -t my_session。
alt
alt



窗格操作 & 窗口管理


这个用处没那么大,不过比较容易弄得很酷炫

例如,对于tmux,可以通过执行

tmux
ctrl+b
%

实现竖直分屏(ctrl+b将tmux激活为"快捷键接受模式")

alt

更多命令:

Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格与上一个窗格交换位置。
Ctrl+b }:当前窗格与下一个窗格交换位置。
Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
Ctrl+b w:从列表中选择窗口。
Ctrl+b ,:窗口重命名。

其实Mac上iTerm2或者终端的分屏&窗口管理快捷键差不多够用了

对于iterm2:

​ - ​⌘ + d​ ​: 垂直分屏

​ - ​⌘ + shift + d​ ​: 水平分屏

​ - ​⌘ + ]​ ​​和​ ​⌘ + [​ ​在最近使用的分屏直接切换

alt

而对于Mac自带的终端:

  • command+w:关闭标签
  • command+t:新建标签
  • command+数字或command+左右方向键:切换标签
  • command+enter:切换全屏
  • command+f:查找
  • command+d:垂直分屏
  • command+shift+d:水平分屏
  • command+option+方向键:切换屏幕
  • ctrl+u:清除当前行
  • ctrl+a:到行首
  • ctrl+e:到行尾
  • ctrl+w:从光标位置删除至开始
  • ctrl+k:从光标位置删除至末尾


参考资料:

tmux cheatsheat[2]

参考资料

[1]

Tmux 使用教程: http://www.ruanyifeng.com/blog/2019/10/tmux.html

[2]

tmux cheatsheat: https://blog.freecloud.dev/2023/05/03/tmux-cheatsheet/

本文由 mdnice 多平台发布

### Tmux 安装 对于不同操作系统,Tmux 的安装方式有所不同。在基于 Debian 或 Ubuntu 的系统上,可以使用 `apt` 包管理器来完成安装: ```bash sudo apt-get install tmux ``` 而在 CentOS 或 RHEL 系统,则应采用 `yum` 来执行相同的操作[^4]。 ### 基本命令概览 了解一些基础的 Tmux 指令有助于快速上手该工具。例如,要查看所有的快捷键映射以及它们所关联的具体操作,可以运行如下指令: ```bash tmux list-keys ``` 如果想获取完整的内置命令列表连同各自的参数说明,那么下面这条语句将会很有帮助: ```bash tmux list-commands ``` 另外,通过 `$ tmux info` 可以得到当前所有会话的状态详情;当修改过 `.tmux.conf` 文件之后想要使更改生效的话,只需简单地输入: ```bash tmux source-file ~/.tmux.conf ``` 这将立即应用新的设置而不必重启程序[^1]。 ### 会话管理常用命令 创建一个新的会话非常直观,只需要调用 `new` 子命令即可建立默认名的新实例或者指定特定的名字给新启动的会话: ```bash tmux new -s mysession ``` 查询现有会话可通过以下命令实现: ```bash tmux ls ``` 连接至某个已存在的会话也很容易做到: ```bash tmux a -t mysession ``` 至于结束某一会话或是整个服务器进程也有相应的控制手段可供选用[^5]。 ### 高级特性与插件支持 除了上述提到的基础功能之外,Tmux 还提供了丰富的扩展能力供用户自定义工作环境。比如借助于第三方插件——Tmux Resurrect,能够保存并恢复复杂的布局结构,极大地方便了日常开发流程中的场景切换需求。其安装过程涉及克隆仓库到本地目录下: ```bash mkdir ~/.tmux && cd ~/.tmux git clone https://github.com/tmux-plugins/tmux-resurrect.git ``` 综上所述,无论是初学者还是有一定经验的技术人员都能找到适合自己水平的学习切入点,在掌握这些核心概念和技术细节的基础上进一步探索更多可能性[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值