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

news2024/9/23 17:20:46

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'

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

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

相关文章

MySQL命令行速查手册(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 最近更新时间&#xff1a;2023.6.5 最早更新时间&#xff1a;2023.6.5 每个命令都以;作为结尾&#xff08;以下localhost都可以替换成实际IP地址&#xff09;&#xff08;和’的区别应该不大&#xff09;用户管理 修改密码&#xff1a;ALTER U…

如何使用Facebook Business Suite来管理你的FB和Ins商业账户

Facebook Business Suite是Facebook推出的一种强大的数字营销工具&#xff0c;可帮助企业轻松管理其在Facebook和Instagram上的商业账户。该工具集成了多种功能&#xff0c;提供了一种简单、直观的方式来管理你的社交媒体营销活动。 在本文中&#xff0c;我们将详细介绍如何优化…

深眸科技基于技术与人才优势,创新研发机器视觉系统赋能工业生产

随着人工智能技术加速进入生产生活&#xff0c;机器视觉系统作为工业发展的刚需&#xff0c;凭借着能够为机器提供视觉&#xff0c;并在众多场景实现柔性化生产应用的能力&#xff0c;逐步被接受和普及&#xff0c;并在工业生产领域发挥巨大作用。 深眸科技作为国家高新技术企…

物流货运车货匹配平台源码

网络货运平台具有较强的信息数据交互和处理能力&#xff0c;能够对托运人&#xff0c;平台运营人&#xff0c;实际承运人&#xff0c;驾驶员的相关方的交易&#xff0c;运输&#xff0c;结算等全过程进行透明&#xff0c;动态的管理&#xff0c;该平台由托运人、实际承运人、司…

ControlNet: Adding Conditional Control to Text-to-Image Diffusion Models

Adding Conditional Control to Text-to-Image Diffusion Models (Paper reading) Lvmin Zhang and Maneesh Agrawala, Stanford University, arXiv, Cited:113, Code, Paper 1. 前言 我们提出了一种名为ControlNet的神经网络结构&#xff0c;用于控制预训练的大规模扩散模型…

element中table的列标题自定义

一、需求 工作中要求表格table中的某一列标题为红色如图 二、方案一 使用el-table-column自带的:render-header"renderHeader"函数 render-header列标题 Label 区域渲染使用的 FunctionFunction(h, { column, $index })—— 使用有点像v-html插入代码片段&#xf…

PubChem介绍及API及PubChempy

PubChem 【官网 https://pubchem.ncbi.nlm.nih.gov/】 简介 PubChem is the world’s largest collection of freely accessible chemical information. Search chemicals by name, molecular formula, structure, and other identifiers. Find chemical and physical proper…

casbin基于RBAC的权限管理案例

在RBAC模型中新定义了角色和继承关系&#xff0c;用户可以通过角色区分不同的权限&#xff0c;继承不同的角色时用户有多个权限。 [role_definition] g _, _ g2 _, _g 是一个 RBAC系统, g2 是另一个 RBAC 系统。 _, _表示角色继承关系的前项和后项&#xff0c;即前项继承后项…

局部探索测试的要素

局部探索测试的要素 局部探索测试是软件测试过程中的一种方法&#xff0c;旨在发现一个系统、软件或应用程序的局部缺陷和问题。局部探索测试不是全面测试&#xff0c;而是通过对特定功能、模块或环节进行测试来检查其中潜在的缺陷&#xff0c;从而提高软件的质量和可靠性。 局…

【白话机器学习系列】白话Broadcasting

白话 Broadcasting 文章目录 什么是 BroadcastingBroadcasting 的规则逐元素操作向量与标量运算矩阵与向量运算行向量列向量 张量与向量运算张量与矩阵运算 矩阵与张量的点积总结 什么是 Broadcasting 在 《白话张量》 中我们讲过&#xff0c;张量之间进行运算需要满足一定的…

Hadoop之MapReduce概述

MapReduce概述 MapReduce定义MapReduce优缺点MapReduce核心思想MapReduce进程MapReduce编程规范MapTask并行度决定机制ReduceTask并行度决定机制mapreduce中job的提交流程MapReduce工作流程shuffle机制分区partition数据清洗&#xff08;ETL&#xff09;进一步分析MapTask和Red…

Jenkins+RF持续集成测试(二) 定时更新SVN完成构建

在上一篇中讲了Jenkins的安装&#xff0c;这篇将介绍 定时从SVN库中&#xff08;git库与之类似&#xff0c;这里就不具体介绍了&#xff0c;有需要自己折腾&#xff09;拉取最新的测试脚本&#xff0c;完成jenkins的定时构建。这是我们做自动化测试最基本的环节&#xff0c;每天…

【Linux】还在用top命令?可以试试atop工具,信息一目了然,运维工程师的新选择

atop使用 Linux以其稳定性&#xff0c;越来越多地被用作服务器的操作系统(当然&#xff0c;有人会较真地说一句&#xff1a;Linux只是操作系统内核:)。但使用了Linux作为底层的操作系统&#xff0c;是否我们就能保证我们的服务做到7*24地稳定呢&#xff1f;非也&#xff0c;要…

06.05

1.二进制求和 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 考虑一个最朴素的方法&#xff1a;先将 aaa 和 bbb 转化成十进制数&#xff0c;求和后再转化为二进制数。利用 Python 和 Java 自带的高精度运算&#xff0c;我们可以很简单地写出这…

发现问题更全面,减少测试成本:WEB自动化测试的价值分析!

目录 前言&#xff1a; 一、WEB自动化测试的价值 1. 提高测试效率 2. 提高软件的质量 3. 减少测试成本 二、WEB自动化测试的瓶颈 1. 可维护性差 2. 兼容性问题 3. 比手工测试慢 三、代码示例 四、总结 前言&#xff1a; 自动化测试是软件开发中必不可少的一环&…

shell简单命令

命令入门&#xff1a; [rootlocalhost ~]# #/root [jinxflocalhost ~]$ #/home/jinxf 用户名主机名 当前目录 #系统权限 $普通权限 命令格式 命令 选项 参数&#xff08;三者之间要有空格&#xff0c;区分大小写&#xff09; command [-options] [args]…

004-从零搭建微服务-认证中心(四)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff1a;https://gitee.com/csps/mingyue 文档地址&#xff1a;https://gitee.com/csps/mingyue/wikis 搭建前端框架 感谢开源项目【vue-next-adm…

最厉害的缓存框架,没有之一!

Redis有多火爆&#xff1f; 现在阿里、腾讯这样的大厂和大部分互联网公司&#xff0c;基本上都需要使用到Redis技术。网上发布的Java开发工程师岗位的招聘信息&#xff0c;对Redis的要求都是熟练掌握。 而且现在大厂的大部分面试题都和Redis有关&#xff0c;尤其是在阿里、字节…

在 iPhone 和 Android 上恢复已删除的微信消息/聊天的 3 种方法

微信是一款面向移动用户的免费即时通讯应用程序。它适用于 iOS 和 Android。 好消息是&#xff0c;在微信 经历了如此艰难的运行之后&#xff0c;它仍在我们身边&#xff0c;并将在其新所有者恢复工具的帮助下继续发展。 微信 是一个相当受欢迎消息应用程序。非常简单易用&am…

【论文阅读】Megatron-LM要点

Megatron-LM论文要点 本文主要是对李沐老师的b站分享做一下自己的理解和总结。 李沐老师b站分享 模型结构无非就是那样&#xff0c;相比而言&#xff0c;想要训练更大的模型而又能平稳进行&#xff0c;是一项非常高超的技术&#xff01; nvidia 跟gpipe类似&#xff0c;也是…