#tmux# #终端# 常用工具tmux

tmux

tmux是一个终端复用工具,允许用户在一个终端会话中同时管理多个终端窗口,提高了终端使用效率,尤其在服务器上进行远程管理时更加实用。在tmux中,可以创建多个终端窗口和窗格,并在这些窗口和窗格之间自由切换,还可以在后台运行会话,即使在终端断开连接后也可以继续操作,这非常有用,特别是在长时间运行的命令中。

包管理器进行安装。可以使用以下命令安装:

操作系统安装命令
Arch Linuxpacman -S tmux
Debian or Ubuntuapt install tmux
Fedoradnf install tmux
RHEL or CentOSyum install tmux
macOS (using Homebrewbrew install tmux
macOS (using MacPorts)port install tmux
openSUSEzypper install tmux

tmux 的几个名词session, window , pane 在这里我们就把他们分别叫做会话,窗口,窗格 。

关于session 很多人都叫会话,个人感觉叫任务更贴切,更形象。

通常我们在终端中操作一个任务的时候,一旦终端关闭,任务也就结束了,被强制关闭了,在 tmux 中 使用 session 就可以解决这个问题,我们可以把当前操作的任务隐藏起来,在视觉上让它消失,任务继续执行着,当我们想返回任务做一些操作的时候,它可以很方便的回来,我们通常把上面的操作就做 session 操作,我们可以把 session 给隐藏起来,我们也可以把 session 给真的关掉。

在 tmux 中有一个窗口的概念,我们可以这样要去理解窗口:当前呈现在我们面前的这一个工作区域就是一个窗口(当前的终端界面),窗口可以被不断切割,切割成一个个小块,这一个个小块我们叫做窗格(pane),这就是窗口和窗格的概念,我们把它想象成一块大蛋糕可以切成很多小块蛋糕,窗口可以被分割成很多小的窗格。

总结: 一个 session 通常指一个任务里面可以有很多窗口,一个窗口又可以有很多的窗格。

基本操作

命令描述
tmux启动一个新的tmux会话
tmux new-session -s <session-name>创建一个具有指定名称的新会话
tmux attach -t <session-name>附加到一个已存在的会话
tmux switch-client -n切换到下一个会话
tmux switch-client -p切换到上一个会话
tmux list-sessions显示当前所有会话的列表
tmux detach从当前会话中分离
tmux kill-session -t <session-name>结束指定的会话

窗口操作

命令描述
tmux new-window在当前会话中创建一个新窗口
tmux select-window -t <window-index>选择指定索引的窗口
tmux next-window切换到下一个窗口
tmux previous-window切换到上一个窗口
tmux list-windows显示当前会话的所有窗口列表
tmux rename-window <new-name>重命名当前窗口
tmux kill-window -t <window-index>关闭指定索引的窗口

面板操作

命令描述
tmux split-window在当前窗口中水平分割面板(垂直创建新面板)
tmux split-window -h在当前窗口中垂直分割面板(水平创建新面板)
tmux select-pane -t <pane-index>选择指定索引的面板
tmux select-pane -U切换到上面的面板
tmux select-pane -D切换到下面的面板
tmux select-pane -L切换到左边的面板
tmux select-pane -R切换到右边的面板
tmux kill-pane -t <pane-index>关闭指定索引的面板
tmux swap-pane -s <src-pane> -t <dst-pane>交换两个面板的位置
tmux setw synchronize-panes同步所有面板中的输入(再次执行此命令将取消同步)

快捷键

快捷键描述
会话<session>prefix d分离当前会话
prefix s列出所有会话
prefix $重命名当前会话
窗口<window>prefix c创建一个新窗口,状态栏会显示多个窗口信息
prefix p切换到上一个窗口
prefix n切换到下一个窗口
prefix <number>切换到指定编号的窗口
prefix w从列表中选择窗口
prefix ,重命名窗口
窗格<pane>prefix %划分左右两个窗格
prefix "划分上下两个窗格
prefix ;光标移动到上一个窗格
prefix o光标移动到下一个窗格
prefix {当前窗格与上一个窗格换位
prefix }当前窗格与下一个窗格换位
prefix x关闭当前窗格
prefix !将当前窗格拆分为一个独立的窗格
prefix z当前窗格全屏显示,再使用一次会变回原来的大小
prefix q显示窗格编号

配置

Unix系统上许多软件(vim, tmux)不是一成不变的,而是有了各种配置、插件后才更强大。那么,怎样找到优秀的配置呢?Github是一个好地方,搜索tmux,可以找到许多高星的配置:

  • gpakosz/.tmux
  • tony/tmux-config
  • dracula/dracula-theme

如果刚开始学tmux,你当然可以直接使用它们。但是,其中有许多自定义配置是几乎不可能用到的。遵循少即是多的原则,笔者选择根据自己的需求定义配置。因此,建议你也构建自己的dotfiles,不断维护它们,形成自己的配置体系。

以下是一些常用的tmux插件,它们可以提高tmux的使用体验并增强其功能:

  1. Tmux Resurrect:可以在tmux崩溃或关闭会话时自动保存和恢复会话状态的插件。官方网站:https://github.com/tmux-plugins/tmux-resurrect
  2. Tmuxinator:可以创建和管理tmux会话的命令行工具。官方网站:https://github.com/tmuxinator/tmuxinator
  3. Tmux Open:可以轻松地从tmux会话中打开文件或URL的插件。官方网站:https://github.com/tmux-plugins/tmux-open
  4. Tmux Sidebar:可以在tmux会话的侧边栏中显示各种信息,如系统资源、时间和日期等。官方网站:https://github.com/tmux-plugins/tmux-sidebar
  5. Tmux CPU:可以在tmux状态栏中显示CPU使用率的插件。官方网站:https://github.com/tmux-plugins/tmux-cpu
  6. Tmux Battery:可以在tmux状态栏中显示电池电量和充电状态的插件。官方网站:https://github.com/tmux-plugins/tmux-battery
  7. Tmux Yank:可以在tmux和系统剪贴板之间复制和粘贴文本的插件。官方网站:https://github.com/tmux-plugins/tmux-yank
  8. Tmux Copycat:可以帮助您在tmux缓冲区中搜索和复制文本的插件。官方网站:https://github.com/tmux-plugins/tmux-copycat

以上是一些常用的tmux插件,它们可以提高tmux的使用体验并增强其功能。您可以访问它们的官方网站了解更多信息,也可以使用TPM管理器轻松安装和管理它们。

我使用的 tmux 配置

# mouse mod
set -g mouse off
#run-shell ~/tmux-better-mouse-mode/scroll_copy_mode.tmux
#set -g @scroll-speed-num-lines-per-scroll 10

# cpu memory display
#set -g status-interval 3
#set -g status-right "#(vmstat -SM 1 2 | awk 'END {print \"cpu:\"100-$15\"%\" \" mem:\"512-$4-$5-$6\"M\"}')#[default] %R"


# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# github
set -g @plugin 'github_username/plugin_name'
set -g @plugin 'github_username/plugin_name#branch'
set -g @plugin 'git@github.com:user/plugin'

# Other examples:
set -g @plugin 'tmux-plugins/tmux-sidebar'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.config/tmux/plugins/tpm/tpm'

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

斐波那契数列题解(非递归c++方法实现)

在做信奥赛&#xff08;信息学奥赛&#xff09;中的for循环题目时&#xff0c;有一道斐波那契数列&#xff0c;想到的第一个方法是使用递归求解&#xff1b;因为以往题目最多使用的就是递归形式&#xff0c;但鉴于该题目在for循环题目堆&#xff0c;所以就思考了一些新方法&…

仙境传说RO:添加限购物品刷新物品库存教程

仙境传说RO&#xff1a;添加限购物品刷新物品库存教程 大家好我是艾西&#xff0c;在游戏中我们会有普通的基础装备那么必然就会有到顶的套装&#xff0c;往往可能一套到顶的套装就可能霸服。那么就需要GM去做游戏的设定以及限制&#xff0c;上一篇文章中我给大家讲述了如果创…

RabbitMQ的基本概念

目录 1、MQ 的基本概念 1.1 MQ概述 1.2 MQ 的优势和劣势 1.3 MQ 的优势 1. 应用解耦 2. 异步提速 3. 削峰填谷 小结: 1.4 MQ 的劣势 1.5 常见的 MQ 产品 1.6 RabbitMQ 简介 1.7 JMS 1、MQ 的基本概念 1.1 MQ概述 MQ全称 Message Queue&#xff08;消息队列&#…

火山引擎DataLeap的Catalog系统搜索实践(三):Learning to rank与后续工作

Learning to rank Learning to rank主要分为数据收集&#xff0c;离线训练和在线预测三个部分。搜索系统是一个Data-driven system&#xff0c;因此火山引擎DataLeap的Catalog系统设计之初就需要考虑数据收集。收集的数据可以用来评估和提升搜索的效果。数据收集和在线预测前面…

Augmentation Matters:一种简单而有效的半监督语义分割方法(CVPR2023)

文章目录 Augmentation Matters: A Simple-yet-Effective Approach to Semi-supervised Semantic Segmentation摘要本文方法Random Intensity-based AugmentationsAdaptive Label-aided CutMix 实验结果 Augmentation Matters: A Simple-yet-Effective Approach to Semi-superv…

【C语言】C预处理器(宏、文件包含、条件编译...)

一、C语言编译的预处理阶段1.1 C语言的编译过程1.2 C语言编译的预处理 二、C语言 宏2.1替换常量2.2函数宏2.3 字符串化和连接&#xff1a;#和##2.4 变参宏 三、文件包含&#xff1a;#include3.1 写法3.2 头文件的作用——声明3.3 头文件和extern 、static 四、 其他指令4.1 #un…

路径之谜 2016年国赛 深度优先搜索

目录 解题思路 AC代码&#xff1a; 题目描述 小明冒充 XX 星球的骑士&#xff0c;进入了一个奇怪的城堡。 城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡地面是 nn 个方格。如下图所示。 按习俗&#xff0c;骑士要从西北角走到东南角。可以横向或纵向…

公司新来一00后,真让人崩溃...

2022年已经结束结束了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;相信很多小伙伴也在准备今年的金九银十的面试计划。 在此展示一套学习笔记 / 面试手册&#xff0c;年后跳槽的朋友可以好好刷一刷&#xff0c;还是挺有必要的&#xff0c;它几乎涵盖了所有的…

Executor框架的两级调度模型

Executor框架的两级调度模型 在HotSpot VM的线程模型中Java线程&#xff08;java.lang.Thread&#xff09;被一对一映射为本地操作系统线程。Java线程启动时会创建一个本地操作系统线程&#xff1b;当该Java线程终止时&#xff0c;这个操作系统线程也会被回收。操作系统会调度…

计算机网络-网络层与链路层协议分析实验

一.实验目的 通过本实验&#xff0c;进一步熟悉PacketTracer的使用&#xff0c;学习路由器与交换机的基本配置&#xff0c;加深对网络层与链路层协议的理解。 二.实验内容 1.完成路由器交换机的基本配置 2.了解 ICMP 数据包的格式 3.检查ARP交换 三.实验过程 1.完成路由…

【Python】Python系列教程-- Python3 列表(十二)

文章目录 前言访问列表中的值更新列表删除列表元素Python列表截取与拼接嵌套列表列表比较Python列表函数&方法 前言 往期回顾&#xff1a; Python系列教程–Python3介绍&#xff08;一&#xff09;Python系列教程–Python3 环境搭建&#xff08;二&#xff09;Python系列…

【熬夜送书 | 第四期】python期末考试总结

文章目录 前言单选题程序填空题函数题编程题熬夜送书 第三期 前言 博主也是第一次接触到python语言&#xff0c;在考试前过了一遍python语法&#xff0c;因为有Java基础学习起来相对比较轻松&#xff0c;学校考的题相对简单一些&#xff0c;也是PTA上机考试&#xff0c;大概30…

一文说透ES6中的箭头函数表达式

一 总述 ​箭头函数表达式的语法比函数表达式更简洁&#xff0c;并且没有自己的this&#xff0c;arguments&#xff0c;super或new. target。箭头函数表达式更适用于那些本来需要匿名函数的地方&#xff0c;并且它不能用作构造函数。 二 详细 1 1个或多个参数 (param1, par…

Linux 实操篇-进程管理(重点)

Linux 实操篇-进程管理(重点) 基本介绍 在LINUX 中&#xff0c;每个执行的程序都称为一个进程。每一个进程都分配一个ID 号(pid,进程号)。>windows > linux每个进程都可能以两种方式存在的。前台与后台&#xff0c;所谓前台进程就是用户目前的屏幕上可以进行操作的。后…

基于matlab仿真带有飞机的虚拟场景

一、前言 此示例演示如何通过 MATLAB接口使用空间鼠标。 开始此示例后&#xff0c;带有飞机的虚拟场景将显示在 Simulink 3D 动画查看器中。您可以使用空格鼠标在场景中导航平面。通过按下设备按钮 1&#xff0c;您可以在当前平面位置放置标记。 此示例需要空间鼠标或其他兼容设…

chatgpt赋能python:Python就业学历要求

Python 就业学历要求 Python 是一门广泛应用于数据科学、人工智能、Web 开发和自动化等领域的编程语言&#xff0c;正在迅速成为行业内最受欢迎的语言之一。如果你想进入这些领域从事相关职业&#xff0c;那么 Python 编程技能将是你的一个优势。但是&#xff0c;Python 就业所…

【LeetCode全题库算法速练】2、两数相加

文章目录 一、题目&#x1f538;题目描述&#x1f538;样例1&#x1f538;样例2&#x1f538;样例3 二、代码参考 作者&#xff1a;KJ.JK &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &a…

深入浅出讲解闭包及其原理

闭包 什么是闭包&#xff1f; 闭包的概念并不复杂&#xff0c;但是它的定义比较绕&#xff08;就像平时经常用到它&#xff0c;却又说不出来是什么&#xff09;。可以在一个作用域中调用函数的内部函数并访问到该函数中的作用域的成员&#xff0c;这就是闭包。给一个建议&…

“大四在读生”都四面成功拿到字节跳动Offer了,你还有什么理由去摸鱼?

博主大四在读&#xff0c;投的是字节 Data 的软件测试岗位实习生&#xff0c;base 杭州。 时间线&#xff1a; 4.12 投递4.13 安排简历筛选4.14 安排面试4.19 16:00 一面4.22 16:00 二面 4.23 8:00 三面4.23 16:00 HR 面4.23 16:30 Offer 一面 你对字节跳动的了解和认知有哪…

《架构设计》-09-分布式服务架构(注册中心、服务发布、服务调用、服务治理)

文章目录 1. 概述2. 集群容错策略3. 服务路由3.1 直接路由3.2 间接路由和注册中心3.3 路由规则3.4 服务路由/负载均衡/集群容错的关系 4. 服务发布4.1 发布启动器4.2 动态代理4.3 发布管理器4.4 协议服务器 5. 服务调用6. 服务治理 1. 概述 RPC架构的意义 解决了分布式环境下两…