介绍
tmux是linux中一种管理窗口的程序, 不同于iTerm2, 它提供了一个Session随时存储和恢复的功能(Session概念后面会介绍), detach Session(保持Session后台运行)然后重新attach Session
常用场景, 在公司Terimal中开了多个标签和文件, 下班回家忽然有了灵感想要继续编写, 使用ssh远程链接公司电脑, 然后发现标签页和文件都要重新打开, 如果使用Tmux, 下班了detach当前Session, 回家ssh远程连接后, attach Session后, 场景恢复又能愉快的继续编程了…
安装
# 安装Mac OS X下遗失的包管理Homebrew
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安装神器Tmux
$ brew install tmux
基础
# 启动Tmux
$ tmux
# 关闭Tmux
$ ctrl + d
# 或退出
$ exit
tmux有三个基本概念:会话(Session),窗口(Window)和面板(Pane). 当你输入tmux后, tmux实际做的事是首先创建一个会话(Session), 然后在这个会话中创建一个窗口, 你可以继续创建多个窗口(Window), 每个窗口初始只包含一个面板, 继续分屏后, 会出现多个面板(Pane) 你在其中看到的终端实际上都属于tmux的某个面板
更进一步讲, Session可以包含多个Window, 每个Window又可以包含多个Pane
tu
基本操作
所有快捷键的执行方式:
按下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 %
横向分TerminalC-b "
纵向分TerminalC-b 方向键
则会在自由选择各面板C-b x
关闭当前paneC-b q
显示面板编号
Session操作
# 创建一个新的session
$ tmux new-s <name-of-my-session>
# 在当前session中创建一个新的Session, 并保证之前session依然存在
# C-b : 然后输入下面命令
new-s <name-of-my-new-session>
# 进入名为test的session
$ tmux attach -t test
C-b s
列出所有会话C-b d
detach当前session(可以认为后台运行)
进阶
美化Tmux
使用gpakosz的Tmux配置进行美化。
优点
- 使用
C-a
作为前缀更方便使用, 同时保存了C-b
的触发前缀 - powerline状态条美化(用过vim的都应该比较熟悉)
- 显示笔记本电池状态
安装使用
$ cd
$ rm -rf .tmux
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local.
tmux 1.8 发布,Linux 终端复用器 http://www.linuxidc.com/Linux/2013-03/81980.htm
Tmux:终端复用器 http://www.linuxidc.com/Linux/2013-07/86776.htm
tmux使用简单教程 http://www.linuxidc.com/Linux/2014-10/107644.htm
CentOS下Tmux安装和使用 http://www.linuxidc.com/Linux/2014-11/109375.htm
用 Tmux 和 Vim 打造 IDE http://www.linuxidc.com/Linux/2015-06/119165.htm
Tmux 的详细介绍:请点这里
Tmux 的下载地址:请点这里
===============================================================
Ctrl+b | 激活控制台;此时以下按键生效 | |
系统操作 | ? | 列出所有快捷键;按q返回 |
d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 | |
D | 选择要脱离的会话;在同时开启了多个会话时使用 | |
Ctrl+z | 挂起当前会话 | |
r | 强制重绘未脱离的会话 | |
s | 选择并切换会话;在同时开启了多个会话时使用 | |
: | 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 | |
[ | 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 | |
~ | 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 | |
窗口操作 | c | 创建新窗口 |
& | 关闭当前窗口 | |
数字键 | 切换至指定窗口 | |
p | 切换至上一窗口 | |
n | 切换至下一窗口 | |
l | 在前后两个窗口间互相切换 | |
w | 通过窗口列表切换窗口 | |
, | 重命名当前窗口;这样便于识别 | |
. | 修改当前窗口编号;相当于窗口重新排序 | |
f | 在所有窗口中查找指定文本 | |
面板操作 | ” | 将当前面板平分为上下两块 |
% | 将当前面板平分为左右两块 | |
x | 关闭当前面板 | |
! | 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 | |
Ctrl+方向键 | 以1个单元格为单位移动边缘以调整当前面板大小 | |
Alt+方向键 | 以5个单元格为单位移动边缘以调整当前面板大小 | |
Space | 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled | |
q | 显示面板编号 | |
o | 在当前窗口中选择下一面板 | |
方向键 | 移动光标以选择面板 | |
{ | 向前置换当前面板 | |
} | 向后置换当前面板 | |
Alt+o | 逆时针旋转当前窗口的面板 | |
Ctrl+o | 顺时针旋转当前窗口的面板 |
原文链接:https://blog.csdn.net/weixin_34365635/article/details/91681025