记录一下tmux的个人常用操作。
简单介绍
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一般情况下,使用SSH远程登录计算机,打开一个远程窗口执行命令。如果突然网络突然断线或关闭该窗口,下次再次登录的时候,是找不回上一次执行的命令和结果的,因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,我们需要会话与窗口可以"解绑",tmux就是会话与窗口的"解绑"工具。
会话与窗口
在使用tmux时,可以根据工作需要建立多个会话,在各个会话内又可建立多个窗口。比如按我的工作习惯,由于在某台服务器上多个人同享一个账户,所以为了区分不同个人的会话,只能将会话名称设为名字简写,而会话中的多个窗口可以执行不同的任务,比如“window 0”用于执行算法A的调试训练,“window 1”用于执行算法B的调试训练......如果觉得"window 0"这个名称不直观,也可以换成相应的任务名。
常用命令/快捷键(快捷键是在会话内操作,命令是在命令行操作
会话
# 新建会话
tmux new -s <session_name>
# 进入会话
tmux attach -t <session_name>
# 退出该会话
ctrl+B + D
# 会话重命名
tmux rename-session -t <old_name> <new_name>
# 删除会话
tmux kill-session -t <session_name>
# 查看所有会话
tmux ls
窗口
# 新建窗口(默认对应上次attach的会话)
tmux newwindow -n <window_name>
# 查看当前会话的所有窗口(可选中后按enter切换窗口)
ctrl+B + W
# 切换上一个窗口
ctrl+P
# 切换下一个窗口
ctrl+N
# 删除窗口
tmux kill-window -t <window_name>
# 删除当前窗口(快捷键
ctrl+B + &
另外
tmux 还有划分窗格这一功能,感兴趣的话可以自行查阅,网上已有相当多的教程。简单来说就是将一个window划分成多个小window,可以上下排列或左右排列。但个人没有这方面的需求,也懒得记这么多命令和快捷键,因此本文仅记录本身工作常用的、满足日常工作需求的命令。