tmux使用——2019年11月20日16:40:15

1.tmux

命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)

会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。

Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。

(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。

类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。

2.基本用法

2.1 介绍

安装:

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

# Mac
$ brew install tmux

启动退出:

安装完成后,键入tmux命令,就进入了 Tmux 窗口。

$ tmux

上面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。

按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。

$ exit

前缀键

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。

举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。

然后,按下 ESC 键或q键,就可以退出帮助。

2.2 新建会话

第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。

使用编号区分会话,不太直观,更好的方法是为会话起名。

$ sudo tmux new -s <会话名称>

上面命令新建一个指定名称的会话。

2.3 分离会话

在 Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。

$ tmux detach

上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。

tmux ls命令可以查看当前所有的 Tmux 会话。

$ tmux ls
# or
$ tmux list-session

2.4 接入会话

tmux attach命令用于重新接入某个已存在的会话。

# 使用会话编号
$ tmux attach -t 0

# 使用会话名称
$ tmux attach -t <session-name>

2.5 杀死会话

tmux kill-session命令用于杀死某个会话。

# 使用会话编号
$ tmux kill-session -t 0

# 使用会话名称
$ tmux kill-session -t <session-name>

2.6 切换会话

tmux switch命令用于切换会话。

# 使用会话编号
$ tmux switch -t 0

# 使用会话名称
$ tmux switch -t <session-name>

2.7 重命名会话

tmux rename-session命令用于重命名会话。

$ tmux rename-session -t 0 <new-name>

上面命令将0号会话重命名。

2.8 会话快捷键

下面是一些会话相关的快捷键。

  • Ctrl+b d:分离当前会话。
  • Ctrl+b s:列出所有会话。
  • Ctrl+b $:重命名当前会话。

快键键很有用,Ctrl+b s:列出所有会话

2.9 流程

综上所述,以下是 Tmux 的最简操作流程。

  1. 新建会话tmux new -s my_session
  2. 在 Tmux 窗口运行所需的程序。
  3. 按下快捷键Ctrl+b d将会话分离。
  4. 下次使用时,重新连接到会话tmux attach-session -t my_session

修改时间点

2019年11月20日11:00:54

原文地址:https://www.cnblogs.com/oneapple/p/12023432.html

时间: 2024-08-03 07:01:37

tmux使用——2019年11月20日16:40:15的相关文章

2019-03-18 Python time 将2015年11月20日转换为2015-11-20

#ReportingDate = soup.select('body > div.main > div > div.ctr > div.recruit > ul > li > a')[0].text.split('(')[-1].split(')')[0] ReportingDate ="2015年11月20日" array = time.strptime(ReportingDate, u"%Y年%m月%d日") try:

周记 - 2019年11月03日

2019年11月05日 2019年徐州区域赛结束了.封榜前3题铜牌前部,封榜后最后27分钟罚了4次通过E题.虽然4题罚时爆炸,不过万幸得了银牌后部.目前看应该还会再参加一年的,这个博客会不断更新记录最后一年参加比赛的学习进度(以及最后两年本科的其他事情),今年的目标是做一个真正的全能选手,首先希望在寒假结束前把Codeforces打到橙色(2100+),证明自己思维还行吧. 既然想做全能选手,每个专题都要学到省选级别吧,学习的分类就参照OI-Wiki的分类,题单的话,模板题从洛谷找,思维题从Co

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期(2014年11月27日 16:31:49)

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期参考网络(2014年11月27日 16:31:49 浙江) // 格式化当前日期 获取date天后的日期    function getNowFormatDate(date) {        var day = new Date();        var Year = 0;        var Month = 0;        var Day = 0;        var CurrentDate = "";  

抑郁症:2019年11月19日

重度抑郁症确诊第1天,坚持记录第1天 早上 在学校上课,和班主任请假下午去医院检查,没告诉班主任检查什么. 下午 Chicago_01 2019/11/09 14:01:32 14:01 到家了,准备去医院 Chicago_01 2019/11/09 14:01:38 Chicago_01 2019/11/09 14:20:36 14:20 到医院了 Chicago_01 2019/11/09 14:21:05 Chicago_01 2019/11/09 14:53:06 14:52 换一个医院

2016年11月20日--存储过程、视图

存储过程: 存储过程(stored procedure)有时也称为sproc.存储过程存储于数据库中而不是在单独的文件中,有输入参数.输出参数以及返回值等. 在数据库中,创建存储过程和创建其他对象的过程一样,除了它使用的AS关键字外. create proc 存储过程名  --创建存储过程   或    alter proc 存储过程名  --  修改存储过程 参数1 参数类型,参数2 参数类型……参数n 参数类型 as begin---  ={ 查.插.删.改 end---  =} 1 --存

2019年7月20日 - 2

https://leetcode-cn.com/problems/add-two-numbers/submissions/ 我的方法: 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 class Solution { 10 public List

2019年11月10日统计学王菲

A1.一个数据文件包含下列数据,5个家庭没有汽车(编码为0);20个家庭拥有一辆汽车(编码为1);10个家庭拥有两辆车(编码为2).指出下列哪种统计量适用于描述该数据并计算出该统计量的值: A. 拥有汽车数的众数 B. 拥有汽车数的中位数 C. 拥有汽车数的方差 D.变异系数 B2.为了生成某个给定变量的总和(即“otal”),应该选用哪一个汇总统计量 A. mean B. sum C. median D.mode B3.假设有数据如图3-45所示,如果需要求出a.b.c这3个变量的均值,并且希

面试总结(2019年12月20日)

1.js实现promise 1.promise和async/await的区别 函数前面多了一个async关键字.await关键字只能用在async定义的函数内.async函数会引式返回一个promise,改promise的resolve值就是函数return的值. 简洁:使用async和await明显节约了不少代码,不需要.then,不需要写匿名函数处理promise的resolve的值,不需要定义多余的data变量,还避免了嵌套代码. async/await让try/catch 可以同时处理同

2016年11月20日 星期日 --出埃及记 Exodus 20:11

For in six days the LORD made the heavens and the earth, the sea, and all that is in them, but he rested on the seventh day. Therefore the LORD blessed the Sabbath day and made it holy. 因为六日之内,耶和华造天,地,海,和其中的万物,第七日便安息,所以耶和华赐福与安息日,定为圣日.