会话利器Tmux使用指南
简介
tmux是一款优秀的终端复用软件,它比Screen更加强大,至于如何强大,网上有大量的文章讨论了这点,本文不再重复。tmux之所以受人们喜爱,主要得益于以下三处功能:
- 丝滑分屏(split),虽然iTem2也提供了横向和竖向分屏功能,但这种分屏功能非常拙劣,完全等同于屏幕新开一个窗口,新开的pane不会自动进入到当前目录,也没有记住当前登录状态。这意味着如果我ssh进入到远程服务器时,iTem2新开的pane中,我依然要重新走一遍ssh登录的老路(omg)。tmux就不会这样,tmux窗口中,新开的pane,默认进入到之前的路径,如果是ssh连接,登录状态也依旧保持着,如此一来,我就可以随意的增删pane,这种灵活性,好处不言而喻。
- 保护现场(attach),即使命令行的工作只进行到一半,关闭终端后还可以重新进入到操作现场,继续工作。对于ssh远程连接而言,即使网络不稳定也没有关系,掉线后重新连接,可以直奔现场,之前运行中的任务,依旧在跑,就好像从来没有离开过一样;特别是在远程服务器上运行耗时的任务,tmux可以帮你一直保持住会话。如此一来,你就可以随时随地放心地进行移动办公,只要你附近的计算机装有tmux(没有你也可以花几分钟装一个),你就能继续刚才的工作。
- 会话共享(适用于结对编程或远程教学),将 tmux 会话的地址分享给他人,这样他们就可以通过 SSH 接入该会话。如果你要给同事演示远程服务器的操作,他不必直勾勾地盯着你的屏幕,借助tmux,他完全可以进入到你的会话,然后静静地看着他桌面上你风骚的键盘走位,只要他愿意,甚至还可以录个屏。
以上,只是主要功能,更多功能还在后头,接下来我将详细地介绍tmux的使用技巧。
常用命令配置
查看子命令帮助
# -h 选项
tumux new-session -h
新建会话
tmux # 新建一个无名称的会话
tmux new -s demo # 新建一个名称为demo的会话
查看所有的会话
tmux list-session # 查看所有会话
tmux ls # 查看所有会话,提倡使用简写形式
进入指定的会话
# 语法
tmux attach-session -t session-name # 可简写为: tmux a -t session-name 或 tmux a
# 实际使用如下即可
tmux a # 默认进入第一个会话
tmux a -t demo # 进入到名称为demo的会话
关闭会话
# 关闭 session
tmux kill-session -t demo # 关闭demo会话
tmux kill-server # 关闭服务器,所有的会话都将关闭
快捷键
设置鼠标滚动
按下ctrl+b,然后输入以下配置即可:
:set -g mouse on