linux 命令 tmux 用法详解

一、tmux 解决的痛点(screen命令一样可以解决,但是tmux功能更强大)

痛点一:大数据传输的漫长一夜

相信做过 Linux 服务运维的同学,都用 scp 进行过服务器间的大文件网络传输。一般这需要很长的时间,这期间,如果工作电脑出现断网或者断电的情况,则会导致远程连接工具无法与服务器通信,从而使得它所控制的数据传输也因此中断。

情景再现:

localhost:~ roc$ ls -hl
total 36419584
-rw-------  1 roc  staff    17G  1 20 11:06 win7.vdilocalhost:~ roc$ scp -P 22000 win7.vdi roc@roclinux.cn:/home/roc
win7.vdi                                                                              0% 7296KB 800.3KB/s 6:19:05

一个 17GB 的大文件,刚刚开始传输,预估耗时 6 小时 19 分钟,谁能保证中间不出现关机和断电的情况呢。

有些同学说可以用 nohup 来解决啊,是的,这是一个办法,可是使用 nohup 的问题在于如果同时传输的任务众多,则最后你自己可能都分不清哪个任务对应哪个传输了,何况 nohup 还会留下 nohup.out 这么一个临时文件在那里。

还有同学说,即使中断了,也可以断点续传啊。可惜的是,scp 并不支持断点续传。如果改用 rsync 倒是可以,可惜 rsync 参数用起来很是复杂,谁能保证每位运维工程师都能熟练掌握那么多复杂的参数呢?这个时候,请试一试 tmux 吧!


痛点二:正在编译却被拉去开会

和大文件数据传输情况类似,一些大型的开发项目的代码编译过程,往往也需要很长的时间,短则几分钟,长则一通宵。对于一通宵的编译来说,这要是中间出现断网断电,那就相当悲剧了。整个项目进展就又要向后推迟至少一天。这个时候,我们向你推荐 tmux!

痛点三:多个窗口切换到晕

作为运维工程师,一定有过在众多窗口间切换,查看各种服务器上的信息和状态的情况,这个时候,如果没有一款好用的窗口管理软件,过不了多久,你就会晕头转向了。就像图 2 所示的这种情况。

痛点四:一屏显示多窗口之殇

有时候为了进行多文件内容对比,如果没有一款很好用的分屏管理工具,那么我们只好创建多个终端,然后手动调整它们的大小和位置,如图 3 所示。

二、tmux 命令安装、配置及窗口元素介绍

1. 命令安装

$ sudo apt-get install tmux

打开tmux 运行该命令会新建一个窗口为0,此时窗格就是窗口的默认会话,会话名默认为0,也可以自定义会话名字,这个后面会说到。

$ tmux

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

2. 配置

首先,如果你有一个已有的 tmux 配置文件,请对其进行备份。tmux 的配置文件是 ~/.tmux.conf
特别是要配置鼠标操作,这部分很重要不然记不住切换的一些命令

//18.04配置
#below reset tmux prefix command key
set -g prefix C-x
unbind C-b
bind C-x send-prefix
#set swap pane key
bind-key k select-pane -U
bind-key j select-pane -D
bind-key h select-pane -L
bind-key l select-pane -R
set-option -g mouse on

在14.04上会出现不能用出现鼠标不能选取窗口或则回滚,故将

set-option -g mouse on

替换为

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)。例如,假如你想通过快捷键列出当前 Tmux 中的会话(对应的快捷键是 s),那么你只需要做以下几步:

• 按下组合键 Ctrl-b (Tmux 快捷键前缀)
• 放开组合键 Ctrl-b
• 按下 s 键

3. 窗口元素介绍

三、常用操作

1.  会话操作

新建 session
新建一个 session ,在终端输入一个 tmux 命令即可:

tmux

上面的命令会创建一个 session ,默认是通过数字编号来命令的,有时候我们需要明确的知道我们的 session 的名字,方便我们快速进入该 session ,我们可以使用如下的命令:

tmux new -s  <session-name> 

例如新建一个名称是 keenon 的session :

tmux new -s keenon

离开 session
有时候我们需要离开终端,操作其他的任务,需要离开该任务,但是又想该任务继续在后台执行,这时候我们需要在 tmux 的任何一个窗格中输入如下命令:

tmux detach

也可以使用快捷键

 ctrl + b   d 

这里解释一下该快捷键,上面已经提到过快捷键。 tmux 离开 session 的快捷键是 d ,但是在 tmux 当中任何快捷键都需要搭配 tmux 的前缀按键 ctrl + b 来唤醒,所以改快捷键的操作是先按 ctrl +b ,紧接着按下按键 d ,这样我们便顺利的离开当前 session 了。

查看 session 列表
有时候我们可能同时操作了好几个 session, 我们可以通过如下的命令来查看我们目前操作了几个session:

tmux  ls  

也可以通过快捷键操作

 ctrl + b s 

列出所有的 session。

进入 session
离开 session 之后,有时候我们还需要对某个 session 进行操作,这时候可以通过如下的操作:

tmux attach -t  <session-name>

例如我的 session 名称是 keenon , 就可以通过 tmux attach -t keenon 顺利进入 session,
也可以通过 tmux a -t keenon,该命令中的 a 是 attach 的简写形式

关闭 session
如果需要关闭 session, 可以通过执行如下的命令即可:

tmux kill-session -t <session-name>

例如关闭zempty 这个session :

tmux kill-session -t zempty

也可以使用快捷键 ctrl + d 来关闭当前的 session。

切换 session
执行命令,可以从当前的 session 快速切换到另一个 session:

tmux switch -t <session-name>

重命名 session

tmux rename-session -t <old-session-name> <new-session-name>

例如: tmux rename-session -t keenon wuxi 该命令会把 keenon这个 session 重新命名为 wuxi.
也可以通过快捷键 ctrl +b $ 来重命名当前的session 。

session 总结

session 在 tmux 操作当中非常重要,希望你可以熟练的使用以上操作: 新建 session -> 离开 session -> 查看
session 列表 -> 进入 session -> 关闭 session -> 不同 session 之间的切换 -> 重命名 session。

2. 窗口操作

新建 切换 关闭

输入tmux后进入到终端复用器,其会话名默认为0,依次累加。

& 关闭当前窗口
l 前后窗口间互相切换
. 修改当前窗口编号,相当于重新排序
f 在所有窗口中查找关键词
, 重命名当前窗口
w 列出所有窗口
% 水平分割窗口
" 竖直分割窗口
n 选择下一个窗口
p 选择上一个窗口
0~9 选择 0~9 对应的窗口


3. 窗格操作

分屏(新建)切换 关闭

好了,至此,你已经掌握了最最基本的 tmux 使用方法了。当然,tmux 还有很多更高级的用法,但是为了方便调试,用到基本功能就足够了。

>tmux new  创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令)
>tmux new -s mysession               创建名为mysession的会话 
>tmux ls                                               显示会话列表 
>tmux a -t mysession                     连接指定会话 
>tmux rename -t s1   s2                 重命名会话s1为s2
>tmux kill-session                           关闭上次打开的会话
>tmux kill-session -ts1                  关闭会话s1
>tmux kill-session -a -t s1            关闭除s1外的所有会话 tmux
>kill-server                                         关闭所有会话

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/196220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化集成有哪些典型应用场景?

为什么要做自动化场景集成&#xff1f; 主要分为以下几点&#xff1a; 提高效率/减少错误&#xff1a;减少人工操作、人为错误、人力成本&#xff0c;提高生产效率、生产质量和稳定性。 提高可靠性&#xff1a;提高系统的可靠性和稳定性&#xff0c;减少系统故障和停机时间。…

【云备份】项目介绍

1. 云备份认识 自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载&#xff0c;其中下载过程支持断点续传功能&#xff0c;而服务器也会对上传文件进行热点管理&#xff0c;将非热点文件进行压缩存储&#xff0c;节省磁…

golang使用es,报错Elasticsearch health check failed

今天golang代码里调用es&#xff0c;结果一直报错。报错内容 ElasticsearchRestHealthIndicator : Elasticsearch health check failed然后又去es管理端看&#xff0c;明明节点是绿色的&#xff0c;估计是golang的这个有问题&#xff0c;时间紧迫&#xff0c;我就直接关掉了健…

【网络安全】-《网络安全法》制定背景和核心内容

文章目录 1. 背景介绍1.1 数字时代的崛起1.2 中国网络安全形势 2. 《网络安全法》核心内容2.1 法律适用范围2.2 个人信息保护2.3 关键信息基础设施保护2.4 网络安全监管和应急响应2.5 网络产品和服务安全管理2.6 法律责任和处罚 3. 法律的意义和影响3.1 维护国家安全3.2 保护个…

易石无代码开发:电商平台连接CRM与客服系统,实现营销自动化

易石无代码开发的优势 易石软件以其强大的无代码开发平台&#xff0c;为电商企业提供了一种全新的业务集成手段。在激烈的市场竞争中&#xff0c;电商平台必须不断优化其运营效率和客户服务质量。易石无需复杂的API开发&#xff0c;通过简单的配置就能实现电商平台与CRM、客服…

翻硬币(第四届蓝桥杯省赛C++B组)(java版)

//翻硬币,每次都会改变两个硬币的状态 //因此我们可以从前往后枚举,s1[i] 与 s2[i] 状态不同就改变它的状态 //同时s1[i 1] 与 s2[i 1] 的状态会因此改变 // 所以继续往下枚举s1[i 1] 与 s2[i 1] //因为题目有说必须有解,因此枚举到 n - 1位的时候&#xff0c;两个字符串的…

微软推出AI助手Copilot的正式版本;ChatGPT:七位研究人员分享他们的观点

&#x1f989; AI新闻 &#x1f680; 微软推出AI助手Copilot的正式版本 摘要&#xff1a;微软宣布其AI助手Copilot正式上线&#xff0c;此前Copilot的预览版已成为很多用户的日常AI伴侣。此次上线后&#xff0c;Copilot将继续提供AI驱动的网络聊天体验&#xff0c;并具备商业…

Linux:dockerfile编写搭建mysql练习(10)

搭建了httpyum仓库 Dockerfile 主要文件 基于centos基础镜像 centos.repo yum仓库 db_init.sh mysql初始化脚本 run.sh 启动脚本 vim Dockerfile写入FROM centosMAINTAINER teacher lyRUN mkdir /etc/yum.repos.d/bak ; mv /etc/yu…

深入了解Java Period类,对时间段的精确控制

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概2900多字&#xff0c;预计阅读时间长需要3分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…

上机实验四 哈希表设计 西安石油大学数据结构

实验名称&#xff1a;哈希表设计 &#xff08;1&#xff09;实验目的&#xff1a;掌握哈希表的设计方法及其冲突解决方法。 &#xff08;2&#xff09;主要内容&#xff1a; 已知一个含有10个学生信息的数据表&#xff0c;关键字为学生“姓名”的拼音&#xff0c;给出此表的一…

二叉树的统一迭代法(统一模板样式)

前言&#xff1a; http://t.csdnimg.cn/WzCFU&#xff08;二叉树的前&#xff0c;中&#xff0c;后序递归与迭代法&#xff09; 在前文中我们发现迭代法实现的先中后序&#xff0c;其实风格也不是那么统一&#xff0c;除了先序和后序&#xff0c;有关联&#xff0c;中序完全就…

Leetcode 538 把二叉搜索树转换为累加树

理解题意&#xff1a; 所谓累加树&#xff1a;对于每个节点&#xff0c;将所有比它大的点累加于这一点。 而二叉搜索树&#xff1a;任何一个中间节点&#xff0c;都大于左子树任何节点&#xff0c;小于右子树所有节点。 而二叉搜索树中序排列是严格单调递增的序列。 所以二叉搜…

VBA字典与数组第八讲:数组及数组公式结果的制约性和集合性

《VBA数组与字典方案》教程&#xff08;10144533&#xff09;是我推出的第三套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;字典是VBA的精华&#xff0c;我要求学员必学。7.1.3.9教程和手册掌握后&#xff0c;可以解决大多数工作中遇到的实际问题。…

Mysql内联接inner join以后数据条数比原数据表多

数据表A有500条数据&#xff0c;数据表B有600条数据&#xff0c;执行如下sql&#xff0c;预期500条结果 select * from A inner join B on A.id b.a_id;但是执行结果有520条&#xff0c; 原因&#xff1a; B中有一些c_id重复的数据&#xff0c;在与A表进行内联接的时候&…

OpenGL学习(一)绘制一个图形

本文使用Qt进行操作演示。 注意: 坐标原点位于屏幕中心 坐标参数:0.0f - 1.0f 颜色参数:0.0f - 1.0f OpenGL提供了几种用于绘制几何图形的绘制模式。下面是一些常用的绘制模式&#xff1a; 点&#xff08;GL_POINTS&#xff09;&#xff1a;绘制单个点。 线&#xff08;GL_LIN…

【云备份】服务端数据管理模块

21. 服务端工具类实现-文件实用工具类设计 不管是客户端还是服务端&#xff0c;文件的传输备份都涉及到文件的读写&#xff0c;包括数据管理信息的持久化也是如此&#xff0c;因此首先设计封装文件操作类&#xff0c;这个类封装完毕之后&#xff0c;则在任意模块中对文件进行操…

Tap虚拟网卡 (草稿)

1 概述 Tap设备通常用于虚拟化场景下&#xff0c;参考如下场景&#xff1a; 图中标注了关键函数&#xff0c;以及数据流向。 tun有两个数据接口&#xff0c; file&#xff0c;给用户态使用&#xff1b;socket&#xff0c;给内核态使用&#xff0c;例如vhost 2 异步处理 图…

IRS辅助的隐蔽通信 (IRS aided covert communication)

这里写自定义目录标题 系统模型与问题formulation系统模型Willie的检测优化问题构建 提出算法A IRS反射矩阵优化Willie的Detection Error Probability (DEP) 本文是论文 Covert Communication in Intelligent Reflecting Surface Assisted Networks With a Friendly Jammer 的阅…

常见算法

简单认识算法 什么是算法&#xff1f; 解决某个实际问题的过程和方法&#xff01; 排序算法 冒泡排序 选择排序 冒泡排序 每次从数组中找到最大值放在数组的后面去 import java.util.Arrays;public class Work1 {public static void main(String[] args) {//准备一个数组in…

浅谈对ASP.NET MVC(微软Web开发框架)的理解

今天来总结下y2扩展就业的课程使用asp.netmvc开发企业级应用自学成果。首先ASP.NET是Microsoft公司.NetFramwork框架的一个动态网页开发的核心技术集&#xff0c;他可以帮助.net方向的动态web开发人员快速高效制作动态网页交互&#xff0c;同样支持jquery&#xff0c;js和h5c3&…