概述之前在服务器跑代码的时候用到了screen会话管理命令,可以新建不同的session来不间断运行shell。而tmux更为强大,不仅提供了会话的管理,还支持同一窗口下分出不同的窗格。
总的来说,tmux的结构分为:
session
一、Tmux 是什么?1、 会话与进程
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
2、Tmux 的作用
Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
(2) 它可以让新窗口"接入"已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
(4)它还支持窗口任意的垂直和水平拆分。
类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。
二、基本用法1、安装
Tmux 一般需要自己安装。
# Ubuntu 或 Debianapt-get install tmux# CentOS 或 Fedorayum -y install tmux# Macbrew install tmux
2、 启动与退出
安装完成后,键入tmux命令,就进入了 Tmux 窗口。
tmux
上面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。
3、查看版本
tmux -V
三、快捷键(在tmux session中)这里所有的快捷键都是以Ctrl+B开头的。以下所有命令均在按下前缀Ctrl+B后再按下生效。
1、会话
D:分离(detach) 当前会话(会话仍在后台运行);
S:列出所有会话,此时可通过方向键和回车键切换;
$:重命名当前会话;
:new -s :创建并进入名为name的会话(不存在父子级关系)。
2、窗口(标签页)
窗口在tmux中相当于同一个session下的子窗口。
想到的使用场景为:在一个多人使用的服务器下,你只需新建自己名字的sessiontmux new -s suixin,想要再新建会话时,不去tmux new -s suixin2,而是选择在已有的suixinsession下新建窗口,避免了多用户用tmux开启巨多session的困扰。(说的有点绕……)
c:新建窗口;
w:列出所有窗口,此时可通过方向键和回车键切换;
n:切换到后一个窗口(使用后面的主题后失效);
p:切换到前一个窗口(使用后面的主题后失效);
,:重命名当前窗口(不知是否可以在创建时就命名);
&:关闭当前窗口。
窗格(分割窗口)
窗格为tmux优于screen的一个强大的功能,可以实现在同一个窗口下分割窗口为多个窗格运行不同的命令,一览无余。棒棒棒!!
%:垂直分割;
::水平分割;
x:关闭窗格(也可以直接在命令行输入exit);
o:交换窗格(将输入切换到下一个窗格);
q:显示窗格的编号(和尺寸),此时可通过按下数字切换(使用后面的主题后数字切换失效);
{:与上一个窗格交换位置;
}:与下一个窗格交换位置。
四、常用命令效果图:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~