tmux 使用看这一篇文章就够了

news2025/1/15 19:42:46

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 中,会话、窗口和面板是组织你的工作环境的三个基本单位。在本文中,我们将介绍每个单位的含义以及如何使用它们。

tmux 会话、窗口和面板

会话(session)

会话是 tmux 最高层次的单位。它可以包含多个窗口和面板,并可以在不同的终端或远程 SSH 连接之间共享。在 tmux 中创建新的会话时,它将在后台运行,可以在需要时重新连接并恢复之前的状态。

以下是一些常用的 tmux 会话命令:

  • tmux new -s [session-name] - 创建一个名为 session-name 的新会话。
  • tmux attach -t [session-name] - 连接到名为 session-name 的会话。
  • tmux list-sessions - 列出当前所有的 tmux 会话。
  • tmux kill-session -t [session-name] - 关闭名为 session-name 的会话。

窗口(window)

窗口是会话中的一组单独的工作区。每个窗口都有自己的标题栏,其中包含窗口的名称以及其他信息。在 tmux 中,您可以创建多个窗口,并在它们之间切换以在同一会话中执行不同的任务。

面板(pane)

面板是窗口中的可分割区域。在同一个窗口中,您可以创建多个面板并在它们之间切换以同时执行多个任务。您可以垂直或水平拆分面板,以便将工作区划分为多个区域。

如图:两个 pane 组成一个 window,多个 window 组成一个 session

在这里插入图片描述

tmux 快捷键

在使用tmux时,最重要的是在不同的会话、窗口和面板之间切换。下面将介绍在tmux中如何进行这些切换以及快捷键,其中prefix是您在tmux中定义的前缀键,默认情况下为Ctrl + b

会话

  • 切换到上一个会话prefix + (

  • 切换到下一个会话prefix + )

  • 列出所有会话prefix + s ,选择后回车即可进入特定的 session

窗口

  • 创建新窗口,可以使用prefix + c

  • 切换到上一个窗口,可以使用prefix + p

  • 切换到下一个窗口,可以使用prefix + n

  • 列出所有窗口,可以使用 prefix + w,选择后即可进入特定的 window

面板

  • 横向分割,可以使用prefix + %

  • 纵向分割,可以使用prefix + :

  • 切换面板,可以使用prefix + 方向键

帮助

可以使用prefix + ?

tmux 配置及改键

配置文件

tmux 的配置文件位于 ~/.tmux.conf。如果该文件不存在,可以手动创建。

配置文件示例

下面是一个简单的 tmux 配置文件示例:

vbnetCopy code
# 使用鼠标
set-option -g mouse on

# 自动重命名窗口
set-option -g allow-rename on

# 自动切换到新窗口
set-option -g switch-window -n

# 更改窗口状态栏前缀
set-option -g status-left "[#S]"

# 更改窗口状态栏颜色
set-option -g status-bg colour235
set-option -g status-fg white
set-option -g window-status-current-bg colour236
set-option -g window-status-current-fg black
set-option -g window-status-bg colour235
set-option -g window-status-fg white

改键

tmux 的默认键位设置并不是所有人都习惯,所以我们需要对其进行改键。

其他常用快捷键

很多常用的快捷键可以进行改键,比如:

# 切换窗口
bind-key -n C-h select-pane -L
bind-key -n C-l select-pane -R
bind-key -n C-j select-pane -D
bind-key -n C-k select-pane -U

# 重命名窗口
bind-key -n C-r command-prompt -p "Rename window to: " "rename-window '%%'"

文章最后会给出我使用的 tmux 配置文件

tmux 插件

tmux 插件是由社区开发和维护的,可以通过 Git 存储库进行安装和管理。tmux 插件管理器(TPM)是一种常见的插件管理方式,它能够简化安装、更新和管理多个 tmux 插件的过程。

在本文中,我们将介绍如何安装和配置 tmux 插件管理器(TPM),以及如何安装、更新和管理 tmux 插件。

安装和配置 tmux 插件管理器(TPM)

首先,您需要下载并安装 tmux 插件管理器。您可以从 TPM 的 GitHub 存储库中下载脚本,将其保存到您的本地计算机上,然后将其移动到 ~/.tmux/plugins/ 目录下。

$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

接下来,您需要将以下代码添加到 ~/.tmux.conf 文件中:

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

# Initialize TPM 
# 确保此代码放置在 `~/.tmux.conf` 文件的最底部。
run '~/.tmux/plugins/tpm/tpm'

重载配置文件即可完成安装

tmux source ~/.tmux.conf

安装和管理插件

现在,您已经成功安装并配置了 TPM,接下来我们将介绍如何使用 TPM 安装和管理插件。

  1. 安装插件,请使用 prefix + I

  2. 更新插件,可以使用 prefix + U

  3. 禁用插件,请将其从 ~/.tmux.conf 文件中删除,然后重新加载 tmux 配置文件。


以下是一些常用的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 配置

set-window-option -g mode-keys vi
set -g mouse on
set -g set-clipboard on

# 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'、
# 插件可以使用 C + h\j\k\l 在面板中移动
set -g @plugin 'christoomey/vim-tmux-navigator'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# 改键 prefix + | 横向切分面板
# bind keys
unbind %
bind | split-window -h
# 改键 prefix + - 纵向切分面板
unbind '"'
bind - split-window -v
# 改键 prefix + r 重载配置文件
unbind r
bind r source-file ~/.tmux.conf
# 改键 可以按 prefix + h\j\k\l 调整面板的大小,-r 代表可以连续按
bind -r j resize-pane -D 5
bind -r k resize-pane -U 5
bind -r l resize-pane -R 5
bind -r h resize-pane -L 5
bind -r m resize-pane -Z

bind C-l send-keys 'C-l'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

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

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

相关文章

八、Bean的生命周期

Bean生命周期的管理,可以参考Spring的源码:AbstractAutowireCapableBeanFactory类的doCreateBean()方法。 1 什么是Bean的生命周期 Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。 所谓的生命周期就是&#xff1a…

【SpringCloud】SpringCloud教程之Feign实战

目录前言SpringCloud Feign远程服务调用一.需求二.两个服务的yml配置和访问路径三.使用RestTemplate远程调用(order服务内编写)四.构建Feign(order服务内配置)五.自定义Feign配置(order服务内配置)六.Feign配置日志(oder服务内配置)七.Feign调优(order服务内配置)八.抽离Feign前…

论文投稿指南——中文核心期刊推荐(新闻事业)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

Spring Cloud融合Nacos配置加载优先级 | Spring Cloud 8

一、前言 Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置: A:通过内部相关规则(应用名、扩展名、profiles)自动生成相关的 Data Id 配置B:通过 spring.cloud.nacos.config.extension-configs的方式支持…

Redis十大类型——List常见操作

Redis十大类型——List常见操作 底层数据结构是双端链表 Redis列表是字符串值的链接列表。Redis列表经常用于: 实现堆栈和队列。为后台工作系统构建队列管理。 命令操作简列 lpush : 左侧添加元素rpush : 右侧添加元素lrange : …

LPNet for Image Derain

Lightweight Pyramid Networks for Image Deraining前置知识高斯-拉普拉斯金字塔图像中的高频信息和低频信息为什么高斯-拉普拉斯金字塔可以实现去雨?可能性分析网络结构整体结构:子网结构:递归块结构:后续补充代码 前置知识 这…

数组--java--动态数组--有序数组--底层

java数组基础--java中的数组创建数组空间占用初始化数组访问元素插入查找删除元素动态数组扩容插入和添加重写toString删除二维数组二维数组注意点有序数组实现测试写在开头: 这篇文章包括数组的基础、一点底层的内容和一些稍微深入的东西。 作为第一个深入学习的数…

【2021.12.25】ctf逆向中常见加密算法和编码识别

【2021.12.25】ctf逆向中常见加密算法和编码识别(含exe及wp) 文章目录【2021.12.25】ctf逆向中常见加密算法和编码识别(含exe及wp)0、前言1、基础加密手法2、base64(1)原理:(2&#…

利用出厂状态下的闲置主机配置HP M1136打印机

利用出厂状态下的闲置主机配置HP M1136打印机 打印机型号:LaserJet M1136 MFP 主机状态:出厂状态,C盘及储存盘被分成了5片 网络环境:与打印机相连的主机全程无Internet连接,主机处于离线状态。打印机驱动及一些相关软…

Splunk 成功获取Salesforce 数据

1: 先说一下Splunk server 上要安装Splunk Add-on for Salesforce : (https://splunkbase.splunk.com/) 去下载: https://splunkbase.splunk.com/app/3549 2: 下载安装后,看到如下界面: 3: 官方的指导文档: Configure your Salesforce account to collect data…

0301_对应的南京比特物联网

0301_对应的南京比特物联网目录概述需求:设计思路实现思路分析1.流程拓展实现性能参数测试:参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better …

C#的Version类型值与SQL Server中二进制binary类型转换

使用C#语言编写的应用程序可以通过.NET Framework框架提供的Version类来控制每次发布的版本号,以便更好控制每次版本更新迭代。 版本号由两到四个组件组成:主要、次要、内部版本和修订。 版本号的格式如下所示, 可选组件显示在方括号 ([ 和…

UML 时序图

时序图(Sequence Diagram)是显示对象之间交互的图,是按时间顺序排列的。 时序图中显示的是参与交互的对象及其对象之间消息交互的顺序。 时序图包括的建模元素主要有:对象(Actor)、生命线(Lif…

项目实战典型案例19——临时解决方案和最终解决方案

临时解决方案和最终解决方案一:背景介绍二:思路&方案四:总结五:升华一:背景介绍 本篇博客是对项目开发中出现的临时解决方案和最终解决方案进行的总结和改进。目的是将经历转变为自己的经验。通过博客的方式分享给…

(蓝桥真题)最长不下降子序列(权值线段树)

样例输入: 5 1 1 4 2 8 5 样例输出: 4 分析:看到这种对其中连续k个数进行修改的我们就应该想到答案是由三部分组成,因为求的是最长不下降子序列,那么我们可以找到一个最合适的断点i,使得答案是由区间[1…

【信息安全案例】——网络信息面临的安全威胁

📖 前言:2010年,震网病毒(Stuxnet)席卷全球工业界。其目标是从物理上摧毁一个军事目标,这使得网络武器不仅仅只存在于那个人类创造的空间。网络武器的潘多拉魔盒已经打开。 目录🕒 1. 信息、信息…

28个精品Python爬虫实战项目

先来说说Python的优势!然后给大家看下这28个实战项目的实用性!Python跟其他语言相比,有以下优点:1. 简单Python是所有编程语言里面,代码量最低,非常易于读写,遇到问题时,程序员可以把…

学习 Python 之 Pygame 开发魂斗罗(八)

学习 Python 之 Pygame 开发魂斗罗(八)继续编写魂斗罗1. 创建敌人类2. 增加敌人移动和显示函数3. 敌人开火4. 修改主函数5. 产生敌人6. 使敌人移动继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(七)中&#xff0…

通信网络-Socket、Java中的网络支持、多线程服务器

前言 通信网络-Socket、Java中的网络支持、多线程服务器 场景:使用java网络创建一个聊天室 博客地址:芒果橙的个人博客 文章目录前言通信网络-SocketTCP/IPTCP/IP 模型端口Java中的网络支持概念1. InetAddress2. URL3. Socket4. Datagram多线程服务器应用…

使用ECharts打造一个数据可视化面板

使用ECharts打造一个数据可视化面板1. 使用技术2. 案例适配方案3. 基础设置4. header 布局5. mainbox 主体模块6. 公共面板模块 panel7. 柱形图 bar 模块(布局)8. 中间布局9. ECharts 介绍10. ECharts 体验11. ECharts 基础配置12. 柱状图图表&#xff0…