tmux系列:2、tmux会话


文章目录

  • tmux系列:2、tmux会话
    • 1. 前言
    • 2. 创建会话
    • 3. 状态栏
    • 4. 命令和标志
    • 5. 命令提示符
    • 6. 附加和分离
    • 7. 会话清单
    • 8. 完全杀死tmux
    • 9. 总结一下

1. 前言

其实最开始时候我用tmux是不管这个会话的,但是熟悉了之后我发现这个非常方便,特别是当你有云服务器开发一些云服务的时候,你在公司登录服务器开发一些内容做调试时可以将这些进程的调试过程保存在一个会话中,然后分离终端和会话,这个时候tmux服务会将这个会话运行在后台,当你回家之后或者第二天继续处理对应进程时直接重新附加到这个会话就可以了,之前打开调试的进程都还是在的,不会由于你在某个位置断开了终端这些调试任务就中止了。简单来讲,就是可以将你对服务器的程序和操作终端分离,程序的运行不随着操作终端的退出而退出,这些程序仍然被tmux的服务管理在后台,这个时候tmux就像一个管家,你退出终端之后交待一些事给管家让管家继续看护着,这些事就不会因为没人管而终止掉,而由管家暂时帮你照看,等你回来后可以在管家这里接手继续处理(当然,这个前提是你没有关闭服务器,只是退出了远程连接服务器的终端)。

2. 创建会话

创建会话就相当于要给一系列事情给个名称,比如说你现在调试某个进程的时候需要一边看日志,一边分析进程内存、cpu占用,还需要看下另一个相关进程是否和该进程通信成功,这个调试过程我们可以创建一个统一的会话来管理这几个相关的程序,并给这个会话起个名字,比如叫“debug”。

要创建第一个tmux会话,需要从shell运行tmux。使用new-session命令创建一个新的会话,简写为new:

$ tmux new

如果没有参数,new-session将创建一个新会话并附加它。因为这是第一次会话,tmux服务器将被启动,从shell运行的tmux将成为第一个客户机并附加到它。

新会话将有一个窗口(索引为0),其中有一个包含shell的窗格。shell提示符应该出现在终端的顶部,绿色状态线出现在底部(状态线的更多内容在下面)。

默认情况下,第一个会话将被称为0,第二个会话称为1,依此类推。new-session允许使用-s标志为会话指定一个名称:

$ tmux new -s mysession

这将创建一个名为mysession的新会话。一个命令可以通过传递额外的参数来代替运行shell。如果给出了一个参数,tmux将把它传递给shell,如果有多个参数,则直接运行该命令。例如,这些运行vim(1):

$ tmux new 'vim ~/.tmux.conf'

或者:

$ tmux new -- vim ~/.tmux.conf

默认情况下,tmux调用会话中运行的第一个窗口。-n标志给出了一个名称来代替使用,在这种情况下,一个窗口mytopwindow运行top(1):

$ tmux new -n mytopwindow top

new-session有其他的标志-下面有一些。完整的列表在tmux手册中。

3. 状态栏

当附加tmux客户机时,它会在屏幕的底部显示一个状态行。默认情况下这是绿色的,显示:

  • 在左侧,附加会话的名称:[0]。
  • 在中间,会话中的窗口列表及其索引,例如索引0:0:ksh处的一个窗口称为ksh
  • 在右边,加引号的窗格标题(默认为运行tmux的主机的名称)以及时间和日期。

当新窗口打开时,窗口列表会增长——如果有太多的窗口无法适应终端的宽度,一个<>将在左边或右边或两者都添加,以显示有隐藏的窗口。

在窗口列表中,当前窗口在名称后用*标记,最后一个窗口用-标记。

4. 命令和标志

Tmux有大量的命令。它们都有一个像new-windownew-sessionlist-keys这样的名称,许多还有一个更短的别名,如newwnewlsk

每当使用键绑定时,它都会运行一个或多个tmux命令。例如,C-b c执行new-window命令。

也可以从shell中使用命令,就像上面的new-sessionlist-keys一样。

与标准Unix命令一样,每个命令都有0个或多个标志。标志本身可以也可以不接受单个参数。另外,命令可以在标记后附加参数。标志在命令之后传递,例如运行带有标志-d-nnew-session命令(别名new):

$ tmux new-session -d -nmysession

所有命令及其标志都记录在tmux手册页中。

本文档主要关注可用的键绑定,但是命令是为了提供信息或者有一个有用标志的地方而提到的。它们可以从shell或命令提示符中输入,将在下一节中进行描述。

5. 命令提示符

Tmux有一个交互式命令提示符。这可以按C-b:打开,并显示而不是状态行,如图所示:

在提示符中,可以像在shell中一样输入命令。输出将在状态行中短暂显示一段时间,或者将活动窗格切换到视图模式。

默认情况下,命令提示符使用类似于emacs(1)的键;但是,如果VISUAL或EDITOR环境变量被设置为包含vi(例如vi或vim或nvi)的内容,那么将使用vi(1)风格的键。

在命令提示符下可以同时输入多个命令,以冒号(;)分隔。这称为命令序列。

6. 附加和分离

与tmux分离意味着客户端退出并与外部终端分离,返回到shell,让tmux会话及其内部的任何程序在后台运行。为了将tmux分离,需要使用C-b d键绑定。当tmux分离时,它将打印一条带有会话名称的消息:

[detached (from session mysession)]

attach-session命令用来附加一个已经存在的会话。没有参数,它将附加到最近使用的没有附加的会话:

$ tmux attach

或者-t给出要连接到的会话的名称:

$ tmux attach -tmysession

默认情况下,附加到一个会话不会分离任何附加到同一会话的其他客户端。-d标志是这样做的:

$ tmux attach -dtmysession

new-session命令有一个-A标志,如果现有会话存在,则附加到它;如果不存在,则创建一个新的会话。对于一个名为myssession的会话:

$ tmux new -Asmysession

添加-D标志可以使new-session的行为类似于带有-dattach-session,并分离任何附加到会话的其他客户端。

7. 会话清单

list-session命令(alias ls)显示可以附加的可用会话列表。这显示了4个会话,分别是12myothersessionmyssession:

$ tmux ls
1: 3 windows (created Sat Feb 22 11:44:51 2020)
2: 1 windows (created Sat Feb 22 11:44:51 2020)
myothersession: 2 windows (created Sat Feb 22 11:44:51 2020)
mysession: 1 windows (created Sat Feb 22 11:44:51 2020)

8. 完全杀死tmux

如果tmux内部没有会话、窗口或窗格,服务器将退出。也可以使用kill-server命令完全杀死它。例如,在命令提示符下:

:kill-server

9. 总结一下

  • 创建会话:tmux new -s xxx
  • 分离会话和终端:C-b d
  • 附加到会话:tmux attach或者tmux attach -d xxx
  • 命令提示符进入交互模式:C-b :
  • 列出所有会话:C-b ls
  • 杀死tmux服务直接退出:C-b :进入交互模式后kill-server

tmux系列:2、tmux会话相关推荐

  1. tmux系列:3、tmux窗口和窗格

    tmux系列:3.tmux窗口和窗格 文章目录 tmux系列:3.tmux窗口和窗格 1. 创建新窗口 2. 拆分窗口 3. 切换窗口 4. 切换活动窗格 5. 选择会话.窗口和窗格 6. 分离其它客 ...

  2. Flask扩展系列(八)–用户会话管理

    安装和启用 遵循标准的Flask扩展安装和启用方式,先通过pip来安装扩展: $ pip install Flask-Login 接下来创建扩展对象实例: 1 2 3 4 5 from flask i ...

  3. Ubuntu安装oh my tmux(配置tmux和.tmux)

    安装oh my tmux 官方github地址: .tmux 安装教程已上传到gitee:安装.tmux 预准备 安装终端复用器tmux 二进制包安装 源码编译安装 注:源码安装过程如果如果缺少相应的 ...

  4. WebRTC 系列之音频会话管理

    导读:WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的 API.W3C 和 IETF 在2021年1月26日共同宣布 WebRTC ...

  5. linux终端分屏显示tmux,screen和tmux分屏

    LINUX下有两个比较常用的终端工具:screen和tmux,两者都是支持分屏操作的.不过screen只支持上下分屏,而tmux支持上下左右分屏.这里记录下两者分屏的操作方法. 一.screen分屏 ...

  6. UDS诊断系列之五 诊断会话控制(10)服务

    诊断会话控制服务,其服务ID是0x10,主要功能为控制服务端的会话模式的切换. 一.诊断会话模式 诊断会话模式分为默认会话模式和非默认会话模式,不同的会话模式所支持的功能.权限.时间参数等等是不一样的 ...

  7. 玩转华为ENSP模拟器系列 | 配置BFD会话进入AdminDown状态

    素材来源:华为路由器配置指南 一边学习一边整理试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:玩转华为ENSP模拟器系列 | 合集_COCOgsta的博客-CSDN博客_ensp实验大全 目 ...

  8. [20170711]关于tmux共享会话问题.txt

    [20170711]关于tmux共享会话问题.txt --//星期6,7看了一些tmux相关数据,学习如何共享会话,老外给它起一个很好听的名字叫做结对编程(Pair Programming). --/ ...

  9. screen和tmux管理shell会话

    一.使用screen管理会话 在使用SSH或telnet远程连接服务器时,可能都遇到为一些长时间运行的任务而头疼,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程终端窗口 ...

最新文章

  1. ld-linux-x86-64.so.2+,RedHat6安装Oracle数据库遇到错误 C [ld-linux-x86-64.so.2+0x14d70]
  2. 怎样实现基于Trie树和字典的分词功能
  3. Windows2003 IIS6.0启用Gzip功能
  4. EXT 中form的列横向排列
  5. ArrayBlockingQueue原理分析-put方法
  6. [0630]Tyvj 1063 数字串
  7. C++引用与指针的不同
  8. 9月计算机一级报名入口,北京市2018年9月计算机一级报名时间|网上报名入口【已正式开通】...
  9. C++ 使用VS2010创建MFC ActiveX工程项目
  10. 专升本c语言名词解释题_福建普通高校专升本各类别考试题型及分值
  11. 串口接收到的浮点数(解码后出现的错误)
  12. 通俗易懂!视觉slam第一部分——slam简介与相机介绍
  13. 蓝桥杯 ADV-131算法提高 选择排序
  14. 【java】JOptionPane的几种方法的作用
  15. python监控网页状态
  16. python关闭word_python自动化办公:玩转word之样式秘笈
  17. 【从线性回归到BP神经网络】第一部分:协方差与相关系数
  18. JS打开新页面的两种方式:当前页面打开和新页面打开
  19. java生成word并导出pdf
  20. mac 升级php 到7,macOS High Sierra 10.13升级PHP到7.3并创建Laravel 7项目

热门文章

  1. ios 开发艰难之路
  2. 形状工具应用——制作巧克力
  3. android spp 服务端,Android开发之蓝牙(一)——基于SPP协议蓝牙模块通信,androidspp...
  4. eclipse更新项目中的代码,必须手动clean才能清除
  5. 笔记本电脑快捷键大全
  6. 《基于GPU加速的计算机视觉编程》学习笔记(2)
  7. 如何防范短信接口被恶意调用被刷,防止电信轰炸
  8. 活动策划过程中需要用到的一些工具软件
  9. vue2中el-input number在修复iPhone无法输入小数点的问题
  10. 单片机中堆和栈的区别