热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

go复用ssh中的session_详解linux终端复用工具tmux的安装、命令、快捷键

概述之前在服务器跑代码的时候用到了screen会话管理命令,可以新建不同的session来不间断运行shell。而tmux更为强大,不仅提供了会话的管理
概述

之前在服务器跑代码的时候用到了screen会话管理命令,可以新建不同的session来不间断运行shell。而tmux更为强大,不仅提供了会话的管理,还支持同一窗口下分出不同的窗格。

总的来说,tmux的结构分为:

session

  • window
    • pane

一、Tmux 是什么?

1、 会话与进程

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

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

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

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

2、Tmux 的作用

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

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

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

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

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

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


二、基本用法

1、安装

Tmux 一般需要自己安装。

# Ubuntu 或 Debianapt-get install tmux# CentOS 或 Fedorayum -y install tmux# Macbrew install tmux

032b146629013b53d3e1ecb3756d6534.png


2、 启动与退出

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

tmux

上面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。

3、查看版本

tmux -V

4af922c92b147b57bfdc8150abfd7596.png

三、快捷键(在tmux session中)

这里所有的快捷键都是以Ctrl+B开头的。以下所有命令均在按下前缀Ctrl+B后再按下生效。

1、会话

D:分离(detach) 当前会话(会话仍在后台运行);
S:列出所有会话,此时可通过方向键和回车键切换;
$:重命名当前会话;
:new -s :创建并进入名为name的会话(不存在父子级关系)。

2、窗口(标签页)

窗口在tmux中相当于同一个session下的子窗口。
想到的使用场景为:在一个多人使用的服务器下,你只需新建自己名字的sessiontmux new -s suixin,想要再新建会话时,不去tmux new -s suixin2,而是选择在已有的suixinsession下新建窗口,避免了多用户用tmux开启巨多session的困扰。(说的有点绕……)
c:新建窗口;
w:列出所有窗口,此时可通过方向键和回车键切换;
n:切换到后一个窗口(使用后面的主题后失效);
p:切换到前一个窗口(使用后面的主题后失效);
,:重命名当前窗口(不知是否可以在创建时就命名);
&:关闭当前窗口。

窗格(分割窗口)

窗格为tmux优于screen的一个强大的功能,可以实现在同一个窗口下分割窗口为多个窗格运行不同的命令,一览无余。棒棒棒!!
%:垂直分割;
::水平分割;
x:关闭窗格(也可以直接在命令行输入exit);
o:交换窗格(将输入切换到下一个窗格);
q:显示窗格的编号(和尺寸),此时可通过按下数字切换(使用后面的主题后数字切换失效);
{:与上一个窗格交换位置;
}:与下一个窗格交换位置。


四、常用命令
3598264994801c1d09bdac3454e58b2a.png
c12c50723c6aacfb4e0132d9f47e8e07.png
f1ada22ed86ddb29392ddecac668e4ef.png
648d1ce91386f5c80152d230065b3a5c.png
f5422578cb9764544f0a49f042358d3f.png

效果图:

dbe18b06bea1804a5c8bffd03d05c3b4.png

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

e168c28171bf8cb06e7af99add712dab.gif



推荐阅读
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • NanoPi2 使用体验深入解析(续篇)
    随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 如何安装和使用 WinSCP 与 PuTTY:连接 Linux 系统的专业工具指南
    本指南详细介绍了如何在Windows环境中安装和使用WinSCP与PuTTY,以实现与Linux系统的安全连接。WinSCP是一款开源的图形化SFTP客户端,支持SSH和SCP协议,主要用于在本地和远程计算机之间安全地传输文件。用户可以通过官方下载页面获取最新版本的WinSCP和PuTTY,按照简单的步骤完成安装,并利用这些工具进行高效的文件管理和远程操作。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 如何利用Git实现高效的多人协作开发(远程仓库应用实例)——Ares Zhao
    Git作为一种分布式版本控制系统,每位开发者都是本地仓库的管理者。然而,为了实现团队间的高效协作,需要将本地的开发成果推送至远程共享仓库,以便其他成员能够同步更新。本文将以GitHub为例,详细介绍如何通过设置和使用远程仓库,实现多人协作开发的最佳实践。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • 在Linux系统中,特别是Ubuntu和其他发行版中,配置TTY终端字体对于提升用户体验至关重要。本文将详细介绍如何在这些系统中设置TTY字体,并探讨Debian和Ubuntu的默认控制台字体选择。通过合理的字体配置,可以显著改善TTY终端的可读性和美观性。 ... [详细]
author-avatar
MCphp
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有