简介

Terminal Multiplexer (From WIKIPEDIA) - A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions inside a single terminal display, terminal emulator window, PC/workstation system console, or remote login session, or to detach and reattach sessions from a terminal.

Tmux 是 Linux 平台下一款 终端复用 的工具,其可以在单一的终端上实现多任务管理,通过简单的操作进行任务之间的切换,且任务的执行不受终端退出等意外情况的影响。

Session(会话)、Window(窗口)、Pane(窗格):tmux使用session来区分不同的工作环境,一个session可以包含多个window,一个window可以被分割成多个pane

安装与使用

sudo apt-get install tmux
  • 安装完成后,在终端输入 tmux 命令就可以进入tmux环境
  • 设置 tmux 随终端自启动:终端窗口右键 -> Profile Preferences -> Command -> 勾选 "Run a custom command instead of my shell" -> 在 Custom command 中填入 tmux

基本配置

  • 在 tmux 环境中,使用功能命令之前都需要一个前缀,默认为 Ctrl + b
  • 这两个键距离较远,操作起来不方面,可以在 tmux 的配置文件(~/.tmux.conf,若无此文件,需手动添加)中自定义前缀组合快捷键,如 Ctrl + a。
vim ~/.tmux.conf
 # 解绑 Ctrl + b 快捷键
unbind C-b # 更换前缀快捷键为 Ctrl + a
set -g prefix C-a
  • 配置完 ~/.tmux.conf 后,重启 tmux 生效,或者进入命令行模式(前缀 + : ),输入:
source-file ~/.tmux.conf
  • 若不想每次每次配置完都用上述代码,可在配置文件中自定义快捷键,如 前缀 + r
 # 将快捷键 r 设置为加载配置文件,并在状态栏显示“Config Reloaded”信息
bind-key r source-file ~/.tmux.conf \; display-message "Config Reloaded!"

快捷键与进阶配置

Pane命令

1. 创建 pane

  • 终端中输入 tmux 命令,默认创建了一个 session、一个 window 和一个 pane,此时还没达到终端复用的目的,需创建额外的 pane
  • 默认:前缀 + ” 创建垂直分割(上下)的 pane,前缀 + % 创建水平分割(左右)的 pane
  • 可在配置文件中自定义快捷键,如 前缀 + v 垂直分割,前缀 + h 水平分割
 # 重定义分隔窗格快捷键
unbind '"'
unbind %
bind-key v split-window -h
bind-key h split-window -v

2. 切换 pane

  • 激活不同 pane,即在 pane 间做切换,默认为:前缀 + 上下左右键

3. 关闭 pane

  • 方法一:在该 pane 中输入 exit 命令
  • 方法二:快捷键 前缀 + x
  • 方法三:快捷键 Ctrl + d

4. 全屏显示 pane

  • 前缀 + z 的快捷键可使当前 pane 全屏显示,再用一次 前缀 + z 可返回之前的状态

Window 命令

1. 创建 window

  • 前缀 + c 可创建一个 window,状态栏左侧会有提示符,代表不同的 window

2. 切换 window

  • 前缀 + p:切换至前一窗口
  • 前缀 + n:切换至后一窗口
  • 前缀 + 数字
  • 前缀 + l (L的小写): 在相邻的window切换
  • 前缀 + w: 列出当前 session 中所有 window,通过上下键切换

3. 关闭 window

  • 前缀 + &,会给出提示是否关闭当前窗口,按下 y 确认即可

Session 命令

0. 原理

在 tmux 实现中,会话实际由 tmux 客户端( client )显示在屏幕上,而所有的会话均由一个唯一的 tmux 服务器( server )进行管理,当用户建立第一个 tmux 会话时,tmux server 即启动,而当所有的会话都被注销时,tmux server 则自动停止,从而退出 tmux。tmux client 和 server 均为独立的进程,它们之间通过一个位于 /tmp 目录下的 socket 进行交互。当用户从原始的终端通过 tmux 命令创建一个会话或重新 attach 一个会话时,tmux 即在当前终端下建立一个 tmux client,用于显示进入的 tmux 会话,当用户在 tmux 中进行会话切换时,实际是将当前的 tmux client 重新 attach 到新的会话中( 从而显示新的会话 ),而当用户选择 detach 当前会话时,实际是取消 tmux client 与当前会话的绑定( 从而不再显示该会话 ),无论是上述哪一种情况,实际上只是 tmux client 不再显示某一个会话,而不是关闭会话,会话仍会在后台运行,由 tmux server 进行管理。当从 tmux 退出至原始的终端时,该终端下建立的 tmux client 即自动退出。

1. 创建 session

tmux new -s session_name [-n window_name] //创建并进入一个名为 session_name 的会话,其拥有一个名为 window_name 的窗口

2. 离开 session

  • 离开(detach)当前会话,回到 Shell 终端

    • 前缀 + d
    • 终端:tmux detach

3. 进入 session

tmux attach [-t session_name]  //进入一个名为 session_name 的会话,attch也可以用 a 或 at 代替
  • 若不指定参数 -t,默认进入用户最近离开的会话

4. 查询 session

  • Shell 终端环境中

    • tmux ls
  • tmux 会话环境中

    • 前缀 + s

5. 注销 session

  • 终端环境中
tmux kill-session -t session-name   //删除名为 session-name 的会话
tmux kill-server //删除所有的会话
  • 会话环境中

    • 先进入命令行模式(前置 + :),再输入 kill-session [-t session_name]

6. 重命名 session

  • 终端环境中
tmux rename -t old_session_name  new_session_name
  • 会话环境中

    • 前缀 + $

Linux终端复用工具 tmux的更多相关文章

  1. Linux终端复用工具tmux的使用和配置

    1. 会话管理 新建会话 $ tmux new -s session-one -d -s:指定回话名称 -d:会话在后台运行 查看所有会话 $ tmux ls session-one: 1 windo ...

  2. 终端复用工具-tmux

    目录 终端复用工具--Tmux 一.为什么要用Tmux? 二.tmux是什么? 三.Tmux基本概念 四.Tmux使用规则 1.安装Tmux 2.基本使用 3.自定义配置文件 五.补充 1.tmux ...

  3. (转载)Linux终端复用神器-Tmux使用

    Linux终端复用神器-Tmux使用 转载地址:https://blog.51cto.com/652465/2094738 Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于Open ...

  4. 终端复用工具 tmux 基本操作教程

    简介 在 Linux 操作环境下,终端操作是发挥 Linux 强大命令功能的重要途径,但在本地主机操作中,针对不同任务开启不同的终端,在使用时进行频繁的终端切换在某些场合下是一种使人分心和疲惫的操作, ...

  5. Linux终端复用神器-Tmux使用梳理

    Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“ ...

  6. 终端复用工具tmux的使用

    tmux的作用在于终端复用. 1. 在server上启动一个bash.并在里面执行tmux 2. 通过ssh远程登录server,执行tmux attach,就会切换到server上的那个bash中, ...

  7. Linux/UNIX 下终端复用利器 tmux

    简介 tmux 是一个终端复用器类自由软件,功能类似 GNU Screen,但使用 BSD 许可发布.用户可以通过 tmux 在一个终端内管理多个分离的会话,窗口及面板,对于同时使用多个命令行,或多个 ...

  8. 终端复用软件 tmux

    Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权. Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键). 技巧 ...

  9. [TimLinux] asciinema Linux终端录制工具嵌入私有web中

    yum install asciinema https://github.com/asciinema/asciinema-player # 下载asciinema-player.css, asciin ...

随机推荐

  1. METAGENOMIC SEQUENCING ANALYSIS WORKFLOW

    Metagenomics is defined as the study of the metagenome, which is total genomic DNA from environmenta ...

  2. 2018.07.31 bzoj4569: [Scoi2016]萌萌哒(并查集+倍增)

    传送门 对于每个限制,使用倍增的二进制拆分思想,用并查集数组fa[i][j]" role="presentation" style="position: rel ...

  3. POJ 2728 Desert King (最优比率树)

    题意:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差,现在要求方案使得费用与距离的比值最小,很显然,这个题目 ...

  4. MySQL】存储过程、游标、循环简单实例

    create procedure my_procedure() -- 创建存储过程 begin -- 开始存储过程 declare my_id varchar(32); -- 自定义变量1 decla ...

  5. VS 附加不上w3wp.exe

    今天调用VS 附加不上w3wp.exe,其他的站点都能附加上,就有一个站附加不上,找了各种可能都没有解决,结果发现是版本被编译成release了,原来的配置都是debug的,不知道被谁给改成relea ...

  6. java基础-day3

    第03天 java基础知识 今日内容介绍 u 选择流程控制语句 u 循环流程控制语句 u 控制循环语句 第1章   选择流程控制语句 1.1  顺序结构的基本使用 1.1.1 顺序结构概述 是程序中最 ...

  7. uva 579 ClockHands 几何初接触 求时针与分针的夹角

    貌似是第一次接触几何题... 求时针与分针的夹角,这不是小学生的奥数题么.我小时候也想过这问题的. 每过一小时时针走1/12*360=30度,每过一分钟时针走1/60*30=0.5度,分针走1/60* ...

  8. java web 通过前台输入的数据(name-value)保存到后台 xml文件中

    一:项目需求,前端有一个页面,页面中可以手动输入一些参数数据,通过点击前端的按钮,使输入的数据保存到后台生成的.xml文件中 二:我在前端使用的是easyui的propertygrid,这个能通过da ...

  9. linux系统编程之信号(八):三种时间结构及定时器setitimer()详解

    一,三种时间结构 time_t://seconds   struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microsecond ...

  10. C#模拟请求,模拟登录,Cookie设置、文件上传等问题汇总

    由于业务需求,最近需要模拟完成登陆某个网站,并上传所需要的文件.在开发途中,遇到了很多问题,现在,就我遇到的一些问题及解决办法说明如下,希望对遇到同样问题的人有所帮助.因为技术有限,可能有些内容并不完 ...