上一节我们已经将 tmux 安装好了,现在就可以通过以下命令来启动它:

$ tmux
启动之后,可以看到命令行最底部多了一条绿色的状态条,上面显示了一些信息,比如计算机名和时间等。 要退出 tmux,可以输入 exit 回车或者按下组合键 [Ctrl+d] 。 其实刚才我们启动 tmux 之后,它已经自动创建了一个会话(Session),会话是 tmux 的最主要的功能,接下来我们将介绍会话的一些功能。 新建会话 启动 tmux 会自动创建会话,但并没有为会话命名。为了以后使用方便,我们来创建一个自己命名的会话,命令如下: $ tmux new-session -s <会话名称>
现在我们来创建一个会话,取名为 dev ,命令为: $ tmux new-session -s dev
创建完成之后,可以看到底部状态条左边标示出了当前的会话名为 dev 。 这个命令还有一个缩写版本, new-session 缩写成 new ,也就是上述命令可以简写成: $ tmux new -s dev
新建会话还可以带上一个初始命令: $ tmux new -s <会话名称> 初始命令
比如创建一个名为 monitor 的会话,初始命令为 top : $ tmux new -s monitor top
可以看到会话创建后,会自动运行 top 命令。但是一旦退出 top 程序 (按 [q] ),会话也会自动退出,所以在实际应用中,初始命令几乎不会用到。 分离会话(detach) 之前已经说过,退出 tmux 可以使用 exit 命令或者 [Ctrl+d] 组合键,退出 tmux 会把会话结束掉,就像平常关闭终端程序一样。但是在实际应用中,可能你并不希望这样,因为有些程序是要保持运行的,例如 rails 的测试服务、telnet连接远程服务器等等。 这时候分离会话就可以派上用场了,分离后的会话并不会把运行中的程序结束掉,而是会保持运行,你还可以稍后重新连接上这些会话。 分离会话之前,我们先来启动一个需要保持运行的程序,这里用 python 2.x 的 SimpleHTTPServer 为例, 当然你也可以选择启动 rails 或 django 的测试服务、telnet 连接或者更简单的 top 命令。 先在之前创建的会话中运行一下命令来启动一个简单的 HTTP 服务: $ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
这时候 HTTP 服务已经运行起来了,接下来就要做分离会话的操作了,快捷键是: [Ctrl+b] [d] 也就是先按下组合键 [Ctrl+b] 然后再接着按 [d] 。d 代表了 detach,而 [Ctrl+b] 是一个命令前缀(官方称之为 prefix),这个命令前缀是告诉终端程序,接下来的命令是针对 tmux 使用的。在之后的描述中,都将采用 [前缀] 来代替 tmux 的命令前缀。 可以看到,在按下快捷键之后,tmux 已经退出并回到平常的终端中,并带着 [detached] 字样的提示。 这时候可以在浏览器访问一下刚才启动的 HTTP 服务 http://localhost:8000,确实可以正常访问,证明刚才的程序还在保持运行中,并没有被结束,甚至你还可以把整个终端程序关闭。 可能有人会很不习惯这个默认的命令前缀,包括我自己在内,因为 [Ctrl+b] 是一个 Emacs 或 Vim 的快捷键,甚至是命令行本身的快捷键。在 Emacs 或者命令行中,它是后退一个字符的操作;而在 Vim 中,它是一个向上翻页的操作。不过不用担心,先忍耐忍耐,稍后的章节将讲述如何配置 tmux,那时就可以摆脱快捷键冲突的困扰了。 连接会话(attach) 被分离的会话,还可以重新连接上,就让我们来实践一下,命令为: $ tmux attach-session -t <目标会话名>
简写为 $ tmux attach -t <目标会话名>
或 $ tmux a -t <目标会话名>
之前我们创建的会话名叫 dev ,所以命令就可以这样写: $ tmux a -t dev
因为我们只创建了一个会话,所以可以忽略 -t 的参数,直接写成: $ tmux a
如果不指定目标会话名,tmux 将会连接你上次使用的会话。连接上 dev 会话之后,可以看到程序还在运行中,而且终端里显示的内容跟会话分离前没什么两样,只是多了几行 HTTP 请求的日志。 这时候,你还可以在多个终端,甚至是多台电脑通过 ssh 连接上同一个会话,可以实现共同操作,非常强大,具体的感受可以自己体会。 接下来我们多创建几个 tmux 会话,在这之前先把当前会话分离掉: 分离当前会话: [前缀] d
新建一个名为 edit 的会话: $ tmux new -s edit
分离 edit 会话: [前缀] d
新建一个名为 telnet 的会话: $ tmux new -s telnet
分离 telnet 会话: [前缀] d
现在,会话已经足够多了,接下来登场的就是列出所有会话的命令: $ tmux list-sessions
可以简写成 $ tmux ls
屏幕上将会显示出所有创建的会话,比如: dev: 1 windows (created Tue Jun 10 15:10:32 2014) [80x24]
edit: 1 windows (created Tue Jun 10 16:26:20 2014) [80x24]
telnet: 1 windows (created Tue Jun 10 16:26:53 2014) [80x24]
这时候连接会话的 -t 参数就派上用场了,你可以选择连接到哪一个会话。 如果没有创建会话或者会话都全已退出,那么列出所有会话的命令将会提示一个 failed to connect to server 的信息,可以看得出来 tmux 是有运行一个服务的,这个服务管理着所有的会话,并让他们持续运行。 小结 通过创建多会话,以及分离/连接的功能,还能实现多终端连接同一会话,已经完全可以轻松应付许多平常很以实现的功能。在下一章节中,我们将讨论 tmux 里窗口(Window)的功能。

tmux入门 : 3. 会话的更多相关文章

  1. tmux入门

    按键 man tmux和C+b?两个操作可以获得一切. C-b ? 显示快捷键帮助 C-b C-o 调换窗口位置,类似与vim 里的C-w C-b 空格键 采用下一个内置布局 C-b ! 把当前窗口变 ...

  2. Tmux入门教程

      对于程序员来说效率绝对是最重要的,那我们今天就来介绍下一个能极大提高工作效率的软件Tmux.   Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话.不仅如此,你还可以通过 Tmux 使终 ...

  3. 【转】tmux入门指南

    按照官方说明,tmux是一个终端复用软件.我接触tmux也就是这几天的事情,但已经发现其强大.作为一个文艺程序员,有必要向大家分享一下,这么好的东东怎敢藏着掖着. 先用起来再说 假设你已经装好tmux ...

  4. Tmux 入门

    什么是 Tmux Tmux 官方 Wiki 简单来说,Tmux 是一个能够让你一个窗口当多个窗口使用的终端模拟器.并且你还可以将它放到后台,等到想使用的时候再使用. 为什么要用 Tmux 在服务器上调 ...

  5. tmux 入门踩坑记录

    软件安装 sudo apt-get install tmux 1. 分割左右窗口 ^b -> % 运行 tmux 新建一个 tmux 的会话(session),此时窗口唯一的变化是在底部会出现一 ...

  6. tmux 入门教程

    tmux 本教程是基于ACWing的<Linux基础课>所做,希望大家支持ACWing 功能 分屏 当需要同时运行两个终端,并且进行比对着输入时,来回切换比较麻烦,就可以利用分屏 可以在一 ...

  7. tmux使用入门

    tmux是Linux中窗口管理程序,适用于终端复用,尤其适合远程连接.最近,我正苦闷与ssh自动超时退出和broken pipe,决定投入tmux怀抱. 使用tmux最直接的好处,便是可以在一个远程连 ...

  8. Tmux会话-基本操作及原理

    一.Tmux命令介绍: Tmux (“Terminal Multiplexer”的简称), 是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色. tmux来自于OpenBSD ...

  9. Tmux会话的使用

    不想看废话的直接拖到下面看干货部分! 我们管理Linux服务器通常是通过ssh远程连接过去,如果在服务器上执行比较耗时的操作,比如下载安装软件.编译等等,如果需要数个小时来完成这些工作,但是又不得不关 ...

随机推荐

  1. 洛谷P4587 [FJOI2016]神秘数(主席树)

    题面 洛谷 题解 考虑暴力,对于询问中的一段区间\([l,r]\),我们先将其中的数升序排序,假设当前可以表示出\([1,k]\)目前处理\(a_i\),假如\(a_i>k+1\),则答案就是\ ...

  2. 洛谷——P3905 道路重建

    P3905 道路重建 题目描述 从前,在一个王国中,在n个城市间有m条道路连接,而且任意两个城市之间至多有一条道路直接相连.在经过一次严重的战争之后,有d条道路被破坏了.国王想要修复国家的道路系统,现 ...

  3. python3中使用xpath无法定位,为什么一直返回空列表?

    tbody问题: 在爬去某些网站一些信息的时候,xpath工具上显示类容是正确的,但是在scrapy代码中一直返回空列表 Scrapy的部分代码: class LotteryspiderSpider( ...

  4. Sqli-labs less 6

    Less-6 Less6与less5的区别在于less6在id参数传到服务器时,对id参数进行了处理.这里可以从源代码中可以看到. $id = '"'.$id.'"'; $sql= ...

  5. 理解Python的迭代器(转)

    原文地址: http://python.jobbole.com/81916/ 另外一篇文章: http://www.cnblogs.com/kaituorensheng/p/3826911.html ...

  6. 排序小记【2】对 struct 的排序

    有了前面的内容,对于一般的排序已经没有问题了,但是有时候排序的要求可能会有点刁... 举个简单的例子,应该是NOIP2009的分数线划定,差不多算是一个比较高级的排序(吧). 多关键字排序(?) 我一 ...

  7. 【20181023T1】战争【反向并查集】

    题面 [错解] 好像是个树唉我真聪明 然后就开始树上乱搞 最后写了个O(过不了)的神奇算法 60pts [正解] 题目中只有删点而不加点,考虑倒过来并查集 维护一个并查集内的和顺手维护一下就好了 复杂 ...

  8. 转:Oracle密码过期,取消密码180天限制

    原文:https://www.cnblogs.com/soar-gh/p/5949158.html 1.进入sqlplus模式 sqlplus / as sysdba; 2.查看用户密码的有效期设置( ...

  9. text-align 属性,输入框数字向右靠

    1.业务需求:金额输入框数字向右靠 2.HTML文件 <td id="otherPay_Td"> <input id="otherPay" t ...

  10. PostgreSQL配置文件--AUTOVACUUM参数

    8 AUTOVACUUM参数 AUTOVACUUM PARAMETERS 8.1 autovacuum 字符型 默认: autovacuum = on Enable autovacuum subpro ...