【扫盲贴】你对Linux窗口管理程序Tmux了解吗

系统 Linux
tmux是linux中一种管理窗口的程序,不同于iTerm2,它提供了一个Session随时存储和恢复的功能(Session概念后面会介绍),detach Session(保持Session后台运行),然后重新attach Session。更进一步讲,Session可以包含多个Window,每个Window又可以包含多个Pane。

介绍

tmux是linux中一种管理窗口的程序,不同于iTerm2,它提供了一个Session随时存储和恢复的功能(Session概念后面会介绍),detach Session(保持Session后台运行),然后重新attach Session。

常用场景,在公司Terimal中开了多个标签和文件,下班回家忽然有了灵感想要继续编写,使用ssh远程链接公司电脑,然后发现标签页和文件都要重新打开,如果使用Tmux,下班了detach当前Session,回家ssh远程连接后,attach Session后,场景恢复又能愉快的继续编程了…

安装

  1. # 安装Mac OS X下遗失的包管理Homebrew
  2. $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. # 安装神器Tmux
  4. $ brew install tmux

基础

  1. # 启动Tmux
  2. $ tmux
  3. # 关闭Tmux
  4. $ ctrl + d
  5. # 或退出
  6. $ exit

tmux有三个基本概念:会话(Session),窗口(Window)和面板(Pane)。当你输入tmux后,tmux实际做的事是首先创建一个会话(Session),然后在这个会话中创建一个窗口,你可以继续创建多个窗口(Window),每个窗口初始只包含一个面板,继续分屏后,会出现多个面板(Pane) 你在其中看到的终端实际上都属于tmux的某个面板

更进一步讲,Session可以包含多个Window,每个Window又可以包含多个Pane

[[140284]]

基本操作

所有快捷键的执行方式:

按下control + b两个按键组合, 然后松开control + b(为了告诉Tmux我要用Tmux的快捷键了), 然后在按快捷键触发各种行为。

例如: C-b ?的执行过程为按下control + b两个按键组合, 然后松开control + b, 然后在按’?’键, 会显示所有快捷键的列表。

  • C-b ? 列出所有快捷键, 按q或Esc返回
  • C-b d detach当前会话,可暂时返回Shell界面,输入tmux attach能够重新进入之前会话
  • C-b s 选择并切换会话;在同时开启了多个会话时使用

快捷键

Window操作

  • C-b c 创建一个新窗口
  • C-b & 关闭当前窗口
  • C-b w 列出所有的窗口选择
  • C-b p 切换到上一个窗口
  • C-b n 切换到下一个窗口
  • C-b 窗口号 使用窗口号切换窗口(例如窗口号为1的, 则C-b 1)
  • C-b , 重命名当前窗口,便于识别各个窗口

Pane操作

  • C-b % 横向分Terminal
  • C-b " 纵向分Terminal
  • C-b 方向键 则会在自由选择各面板
  • C-b x 关闭当前pane
  • C-b q 显示面板编号

Session操作

  1. # 创建一个新的session
  2. $ tmux new -s <name-of-my-session>
  3. # 在当前session中创建一个新的Session, 并保证之前session依然存在
  4. # C-b : 然后输入下面命令
  5. new -s <name-of-my-new-session>
  6. # 进入名为test的session
  7. $ tmux attach -t test
  • C-b s 列出所有会话
  • C-b d detach当前session(可以认为后台运行)

进阶

美化Tmux

使用gpakosz的Tmux配置进行美化。

优点

  • 使用C-a作为前缀更方便使用, 同时保存了C-b的触发前缀
  • powerline状态条美化(用过vim的都应该比较熟悉)
  • 显示笔记本电池状态

安装使用

  1. $ cd
  2. $ rm -rf .tmux
  3. $ git clone https://github.com/gpakosz/.tmux.git
  4. $ ln -s .tmux/.tmux.conf
  5. $ cp .tmux/.tmux.conf.local .

参考链接

 

责任编辑:火凤凰 来源: Andrew Liu博客
相关推荐

2012-05-29 09:29:46

虚拟化网络管理员

2012-05-28 09:30:58

网络虚拟化

2021-01-12 12:07:34

Linux磁盘系统

2013-04-01 15:51:09

程序员管理

2023-11-06 07:23:06

API开发生态系统

2009-12-18 15:16:49

Ruby on Rai

2012-05-08 14:52:00

2024-01-29 10:09:59

数据库INT(3)INT(11)

2018-03-21 08:52:09

Linux程序物联网

2010-01-06 10:43:39

2012-07-06 09:15:09

2012-12-27 10:58:24

KVMKVM概念

2017-01-16 15:20:03

Linux内核Oops

2010-12-20 09:26:44

SQL索引

2018-11-13 09:25:02

Linux系统管理

2011-12-25 15:33:13

ibmdwKVM

2015-07-31 13:38:39

FreeBSDLinux

2014-09-04 13:17:31

2022-09-21 18:06:10

Python内存管理

2023-12-10 13:37:23

Python编程上下文管理
点赞
收藏

51CTO技术栈公众号