Tmux入门
2024-04-28

Tmux概念:

引入manpage中的介绍:

tmux is a terminal multiplexer: it enables a number of terminals to be
     created, accessed, and controlled from a single screen.  tmux may be 
     detached from a screen and continue running in the background, then later
     reattached.

tmux是一款优秀的终端复用软件,它比Screen更加强大,至于如何强大,网上有大量的文章讨论了这点,本文不再重复。tmux之所以受人们喜爱,主要得益于以下三处功能:

  • 丝滑分屏(split),虽然iTem2也提供了横向和竖向分屏功能,但这种分屏功能非常拙劣,完全等同于屏幕新开一个窗口,新开的pane不会自动进入到当前目录,也没有记住当前登录状态。这意味着如果我ssh进入到远程服务器时,iTem2新开的pane中,我依然要重新走一遍ssh登录的老路(omg)。tmux就不会这样,tmux窗口中,新开的pane,默认进入到之前的路径,如果是ssh连接,登录状态也依旧保持着,如此一来,我就可以随意的增删pane,这种灵活性,好处不言而喻。
  • 保护现场(attach),即使命令行的工作只进行到一半,关闭终端后还可以重新进入到操作现场,继续工作。对于ssh远程连接而言,即使网络不稳定也没有关系,掉线后重新连接,可以直奔现场,之前运行中的任务,依旧在跑,就好像从来没有离开过一样;特别是在远程服务器上运行耗时的任务,tmux可以帮你一直保持住会话。如此一来,你就可以随时随地放心地进行移动办公,只要你附近的计算机装有tmux(没有你也可以花几分钟装一个),你就能继续刚才的工作。
  • 会话共享(适用于结对编程或远程教学),将 tmux 会话的地址分享给他人,这样他们就可以通过 SSH 接入该会话。如果你要给同事演示远程服务器的操作,他不必直勾勾地盯着你的屏幕,借助tmux,他完全可以进入到你的会话,然后静静地看着他桌面上你风骚的键盘走位,只要他愿意,甚至还可以录个屏。

Tmux快捷键

tmux的所有指令,都包含同一个前缀,默认为Ctrl+b (C-b),输入完前缀过后,控制台激活,命令按键才能生效。

tmux的快捷键可能会和shell/vim等的快捷键冲突,如果想更换前缀快捷键,可以在 ~/.tmux.conf 配置文件里配置:

# Change the prefix key to C-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

该配置文件将默认前缀改为为Ctrl+a

常用的快捷键

pane:
Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b <arrow key>:光标切换到其他窗格(<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓)
Ctrl+b {:当前窗格与上一个窗格交换位置。
Ctrl+b }:当前窗格与下一个窗格交换位置。

window:
Ctrl+b c: 新开一个窗口
Ctrl+b <number> : 在窗口间切换。
Ctrl+b ,: 为窗口命名

session:
$ tmux (new -s demo): 新建一个无名(有名)对话
Ctrl+b d: 断开并保留一次会话(断开会话同时下次还能接着用)
$ tmux attach/a (-t <name>): 回到上一个(指定名称)会话
$ tmux ls: 查看所有会话
$ tmux rename-session -t <oldname> <newname>: 更改会话名称
Ctrl+b $: 更改当前会话名称
$ tmux kill-session (-t demo): 关闭所有会话(指定会话)
本文标题:Tmux入门
文章作者:windpo
发布时间:2024-04-28
原始链接:https://windpo.top/blog/try-tmux
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。