tmux是提升terminal使用效率的工具,在一个terminal里操作多个session、window、panel。另外,特别适合控制远程开发机使用,分离会话后关闭terminal,进程可以在远程开发机继续执行。
首先了解tmux里不同层级的概念:
session:可以理解成进入到系统不同的程序(浏览器、word),在每个session上干一类事;
window:可以理解成一个浏览器不同的选项卡,根据需要选择不同的选项卡显示在当前terminal中,其他的隐藏起来;(terminal下面的状态栏可以显示当前所在的session名以及该session下的所有window名和当前所在的window)
panel:一个页面分成不同的区域,可以同时显示,方便一起操作。
一个session可以包含多个window,一个window可以包含多个panel。
session操作:
- 创建默认名的会话: tmux new
- 创建指定名的会话:tmux new -s <session_name>
- 分离会话:ctrl+b, d
- 查看所有会话:tmux ls
- 连接上次使用的会话:tmux a
- 连接会话:tmux a -t <target_session_name>
- 列出所有session并选择:ctrl+b, s
- 重命名session: ctrl+b, $
- 关闭会话: tmux kill-session -t <target_session_name>
- 关闭服务器(即关闭所有会话): tmux kill-server
window操作:
- 创建window:ctrl+b, c
- 列出所有window并选择: ctrl+b, w
- 根据window编号选择:ctrl+b, 0~9
- 重命名window:ctrl+b, ,
- 关闭当前window:ctrl+b, &
panel操作:
- 左右分屏:ctrl+b, %
- 上下分屏:ctrl+b, "
- 关闭panel:ctrl+b, x
- 显示panel号:ctrl+b, q
- 切换当前panel:ctrl + b, up|down|left|right箭头
- 顺时针切换当前panel:ctrl+b, o
- 放大当前panel(全屏):ctrl+b, z (进入该模式后在terminal下方的状态栏的相应窗口会显示Z状态;再操作一次还原)(备注:多pannel下多行复制操作无法区分多个pannel,进入该模式可以解决)
- 将当前panel移动到上一个panel位置:ctrl+b, {
- 将当前panel移动到下一个panel位置:ctrl+b, }
- 调整panel布局:ctrl+b , space (在even-horizontal, even-vertical, main-horizontal, main-vertical, tiled之间切换)
- 调整当前panel边界大小:ctrl+b, ctrl+up|down|left|right箭头
拷贝Trick:选中要拷贝的内容,点击鼠标右键即在远程开发机中实现复制,在远程开发机terminal中再次点击鼠标右键即实现复制。
常见操作:tmux常用命令 - 亡灵族 - 博客园