文章插图
在服务器开发的过程中,经常使用SSH连接到远程服务上执行脚本,有些脚本可能需要运行一段时间
在脚本运行期间,如果会话超时或者会话意外断开又或者不小心关掉了关掉了当前会话窗口,那么脚本有可能执行到一半儿时就被强制停止了
更麻烦的是,可能数据只修改了一部分,而另一部分又没有修改,相当于出现脏数据了,这时就需要先恢复已经修改了的数据,才能再次执行脚本
今天介绍的 tmux 命令可以完美的避免上述问题
tmux 简介tmux 是一个终端多路复用器,在终端中可以创建,访问和控制多个终端会话
在一个会话中可以打开多个窗口,每个窗口都占据整个屏幕,一个窗口还可以分成多个窗格
tmux 让远程终端窗口和会话分离开了,终端窗口关闭时,会话继续在后台运行,新的终端窗口可以随时接入会话,接入之后终端窗口上会显示会话的信息
tmux 启动时,会默认创建一个具有单个窗口的会话,在会话屏幕的底部,显示当前会话的信息
linux下 screen 命令的功能与 tmux 命令相似,相比 screen,tmux更易用,功能也更强大
安装tmux 一般都是需要自己安装的,可以使用下面的命令安装 tmux
sudo yum install tmux
基础概念在讲 tmux 命令的使用之前,先解释下 tmux中的 会话(session),窗口(window),窗格(pane) 之间的关系文章插图
一个远程服务器终端窗口可以管理多个tmux会话(session)
一个tmux会话里可以管理多个窗口(window), 窗口(window)之间是互相独立的, 并且可以切换到任一窗口
一个窗口(window)可以划分成多个窗格(pane), 窗格之间是互相独立的, 也可以切换到任一窗格
快捷键前缀进入tmux会话之后,会话中所有的快捷键,都需要先输入 Ctrl + B组合键,后面再输入快捷键才会生效,这里的 Ctrl + B组合键就是快捷键的前缀,可以把它理解成激活快捷键的前缀命令
进入tmux会话之后,tmux会话和终端分离的快捷命令是 Ctrl + B d
具体的使用方法是: 先在 tmux会话中,按下键盘上 Ctrl + B 组合键,然后再按下字母 d 键,会话就会和终端分离
会话操作一个远程终端窗口可以创建多个会话,会话之间相互独立,可以随时分离、接入、退出,转换、重命名会话
- 新建会话
文章插图
1:会话ID,默认从0开始,依次递增
2:窗口ID,默认从0开始,依次递增
3:当前用户命令目录
4:系统信息
上面个的例子使用了ID编号来标识会话,实际使用中不便于记忆,也不直观,可以使用 tmux new -s <session-name> 创建一个自定义名字的会话
[root@ecs-centos-7 ~]# tmux new -s aa[root@ecs-centos-7 ~]# tmux lsaa: 1 windows (created Sun Sep 20 23:26:33 2020) [134x34] (attached)
上面的例子中,tmux new -s aa 命令创建了一个名字是aa的会话tmux ls命令是查看系统中的所有会话,从命令输出结果中可以看到
会话的名字是aa, 会话共有1个窗口,会话创建时间是Sun Sep 20 23:26:33 2020,后面的 attached 字符串表示当前终端已经接入了名字为aa的会话
- 分离会话
[root@ecs-centos-7 ~]# tmux detach[aa] 0:root@ecs-centos-7:~*[detached][root@ecs-centos-7 ~]#
上面的例子中,输入 tmux detach 命令之后tmux窗口从名字为 aa 的会话中分离出来了- 接入会话
[root@ecs-centos-7 ~]# tmux lsaa: 1 windows (created Sun Sep 20 23:26:33 2020) [134x34]bb: 1 windows (created Mon Sep 21 22:51:01 2020) [134x34][root@ecs-centos-7 ~]# tmux attach -t bb[bb] 0:root@ecs-centos-7:~*
上面的例子中 tmux ls 命令列出所有的会话,从结果中可以看到,目前有会话名字为 aa 和 bb 两个会话,tmux attach -t bb 命令使tmux窗口接入会话bb中- 转换会话
推荐阅读
- 五香饼的做法
- 机器人会像人类一样思考吗 一些科学家担心人工智能机器人会将人变成宠物
- IOS 14“资源库”详解 看完再也不会迷失App图标
- 冰箱要一直开着寿命才会长吗 冰箱长时间不用好吗
- win10系统文件损坏不用怕,使用这2个命令,轻松修复
- 全网最全的IDEA热部署方案,看完弄懂,再也不用加班
- 为什么百度SEM竞价,不用抢排名了?
- JavaScript数组去重的方法有哪些?学会这9招,再也不怕算法题了
- 不用“沟”引的挑逗暗示你能明白几种
- 电脑上重要文件总担心被人看到?禁止磁盘访问了解一下