tmux使用及个性化配置
1. tmux介绍
tmux
是一个优秀的终端复用软件,split窗口。可以在一个terminal(终端)下打开多个终端。即使非正常掉线,也能保证当前的任务运行,这一点对于远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失。SSH重新连接以后,就可以直接回到原来的工作环境,不但提高了工作效率,还降低了风险,增加了安全性。tmux完全使用键盘控制窗口,实现窗口的切换功能。
2. 安装
sudo apt-get install tmuxtmux # 打开tmux终端
3. 会话窗口面板
根据tmux
的定义,在开启了tmux
服务后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板, 虽然其使用方法与终端控制台完全相同。
tmux
使用C/S
模型构建,主要包括以下单元模块:
- server服务器。输入tmux命令时就开启了一个服务器。
- session会话。一个服务器可以包含多个会话
- window窗口。一个会话可以包含多个窗口。
- pane面板。一个窗口可以包含多个面板。
4. 效果图
5. 快捷键操作
- C-b ? 显示快捷键帮助
- C-b C-o 调换窗口位置,类似与vim 里的C-w
- C-b 空格键 采用下一个内置布局
- C-b ! 把当前窗口变为新窗口
- C-b “ 横向分隔窗口
- C-b % 纵向分隔窗口
- C-b q 显示分隔窗口的编号
- C-b o 跳到下一个分隔窗口
- C-b 上下键 上一个及下一个分隔窗口
- C-b C-方向键 调整分隔窗口大小
- C-b c 创建新窗口
- C-b 0~9 选择几号窗口
- C-b c 创建新窗口
- C-b n 选择下一个窗口
- C-b l 切换到最后使用的窗口
- C-b p 选择前一个窗口
- C-b w 以菜单方式显示及选择窗口
- C-b t 显示时钟
- C-b ; 切换到最后一个使用的面板
- C-b x 关闭面板
- C-b & 关闭窗口
- C-b s 以菜单方式显示和选择会话
- C-b d 退出tumx,并保存当前会话,这时,tmux仍在后台运行,可以通过tmux attach进入 到指定的会话
6. 配置
tmux
的系统级配置文件为/etc/tmux.conf
,用户级配置文件为~/.tmux.conf
。配置文件实际上就是tmux
的命令集合,也就是说每行配置均可在进入命令行模式后输入生效。
6.1 设置前缀为Ctrl + a(不建议这么做,vim中Ctrl+a已经被定义)
set -g prefix C-a
6.2 解除Ctrl+b 与前缀的对应关系
unbind C-b
6.3 使tmux生效
- 重启tmux起效
或者先按C+b,然后输入
:
,进入命令行模式,在命令行模式下输入source-file ~/.tmux.conf
6.4 将Ctrl + r 设置为加载配置文件,并显示”Refleshed configure!”信息
bind C-r source-file ~/.tmux.conf \; display "Refleshed Configure!"
6.5 将切换窗口设置成vim模式
bind-key k select-pane -U # upbind-key j select-pane -D # downbind-key h select-pane -L # leftbind-key l select-pane -R # right
上面的最后一条语句会更改C-a l
的功能,我挺喜欢这个功能的,因为我们很时候都是在两个窗 口或这两个面板中切换,所以我又加入如下语句
bind-key C-l select-window -l
现在我的l
键可不能随便按了,Ctrl+a l
是切换面板,Ctrl+x Ctrl+l
切换窗口,Ctrl+l
清屏。
6.6 复制模式copy-mode
前缀 [
进入复制模式- 按
space
开始复制,移动光标选择复制区域 - 按
Enter
复制并退出copy-mode。 - 将光标移动到指定位置,按
前缀 ]
粘贴
如果把tmux
比作vim
的话,那么我们大部分时间都是处于编辑模式,我们复制的时候可不可以像vim
一样移动呢?只需要在配置文件中加入如下行即可。
setw -g mode-keys vi #copy-mode 将快捷键设置为vi 模式
6.7 会话
- C-x s 以菜单的方式查看并选择会话
- C-x :new-session 新建一个会话
- C-x d 退出并保存会话
终端运行 tmux attach 返回会话
6.8 命名会话
- tmux new -s session
- tmux new -s session -d #在后台建立会话
- tmux ls #列出会话
- tmux attach -t session #进入某个会话
6.9 使当前pane
最大化
前缀 z
tmux 1.8新特性,最大化当前所在面板前缀 z
返回原来状态
6.10 滚屏
set-window-option -g mode-mouse on # (setw其实是set-window-option的别名)
6.11 用鼠标切换窗口/调节分屏大小
setw - mouse-resize-pane on # 开启用鼠标拖动调节pane的大小(拖动位置是pane之间的分隔线)
setw -g mouse-select-pane on # 开启用鼠标点击pane来激活该pane
setw -g mouse-select-window on # 开启用鼠标点击来切换活动window(点击位置是状态栏的窗口名称)
setw -g mode-mouse on # 开启window/pane里面的鼠标支持(也即可以用鼠标滚轮回滚显示窗口内容,此时还可以用鼠标选取文本)
6.12 保存Tmux会话
Tmux
会话功能它有一点不好,如果机器重启,那么 Tmux
会话就消失了,包括打开的各个窗口、窗格布局、以及其中跑的程序等所有东东。Tmux Resurrect
和 Tmux Continuum
这两个 Tmux
插件正是因此而生的。
Tmux Resurrect
Tmux Resurrect
能够备份Tmux
会话的各种细节,包括所有会话、窗口、窗格以及它们的顺序,每个窗格的当前工作目录,精确的窗格布局,活动及替代的会话和窗口,窗口聚焦,活动窗格,窗格中运行的程序等等,非常贴心。
安装 Tmux Resurrect
:
% mkdir ~/.tmux% cd ~/.tmux% git clone https://github.com/tmux-plugins/tmux-resurrect.git
官方推荐通过 Tmux 插件管理器来安装,如果你需要安装多个插件,不妨自行尝试。然后在~/.tmux.conf
中添加下列内容:
run-shell ~/.tmux/tmux-resurrect/resurrect.tmux
保存后,重载 Tmux 配置:
% tmux source-file ~/.tmux.conf
现在,要保存 Tmux 会话,我们只要按 前缀键 + Ctrl-s
就可以了。此时,Tmux 状态栏会显示“Saving …”字样,完毕后会提示 Tmux 环境已保存。
Tmux Resurrect 会将 Tmux 会话的详细信息以文本文件形式保存到 ~/.tmux/resurrect
目录。
还原则按 前缀键 + Ctrl-r
即可。
Tmux Continuum(推荐)
Tmux Resurrect 工作很好,只是备份和还原都是手动完成。而 Tmux Continuum 更进一步,它将 Tmux 会话的保存及还原自动化,定时备份,然后在 Tmux 启动时还原。
Tmux Continuum
安装:
% cd ~/.tmux% git clone https://github.com/tmux-plugins/tmux-continuum.git
接着,将以下内容添加到 ~/.tmux.conf
:
run-shell ~/.tmux/tmux-continuum/continuum.tmux
Tmux Continuum
默认每隔 15 分钟备份一次,如果你觉得频率过高,可以设置为 1 小时一次:
set -g @continuum-save-interval '60'
同样,需要重载 Tmux 配置 tmux source-file ~/.tmux.conf
。
注意:使用这两个 Tmux 插件要求 Tmux 是 1.9 及以上版本,如果不符合要求,赶紧升级吧,相信你会觉得这会非常值得。
6.13 启动与关闭服务器
tmux # 启动tmux kill-server # 关闭
6.14 进入和退出会话
tmux attach前缀 d # 或者 前缀 C-z
6.15 查看版本
tmux -V
tmux使用及个性化配置相关推荐
- tmux的使用方法和个性化配置
tmux的使用方法和个性化配置 - liuerfire's Blog - Linux, Python, Vim, OnePiece... tmux的使用方法和个性化配置 liuerfire poste ...
- cygwin个性化配置
cygwin个性化配置 http://blog.cong.co/cygwin.html#%E5%AE%9A%E4%B9%89%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F配置 ...
- 个性化配置你的SQL Server on Linux
问题引入 这天老鸟满面春风找到菜鸟:"鸟儿啊,看你最近研究SQL Server On Linux如鱼得水,干得不错啊.不过呢,这是一个张扬个性的年代,要创新,要与众不同,那你怎么在Linux ...
- 由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...
一.前言 本篇是Android SDK开发艺术探索系列的第四篇文章.介绍了通过流式API设计思想优雅地实现SDK的自定义选项配置需求. 目录概览: 一.前言 二.SDK自定义配置2.1.什么是自定义配 ...
- Hexo 个性化配置(三)
本片博客是在上一篇博客Hexo个性化配置(二)的基础上在写的一篇博客,主要不在一起写的原因是,这是自己配置自己搭建的博客时候变学习边记录的文章,记录的比较详细.放置在一篇上面文章比较长,所以截取一次十 ...
- 快消品行业定制化多租户SaaS系统:提供个性化配置,加速快消品企业运转效率
快消品作为批发行业里竞争较大的品类,其发展情况一直以来都备受瞩目.2021年前三季度,中国快消品的销量和销售额分别增长3.3%和3.6%,实现温和复苏,同时,平均售价小幅上升0.3%,快消B2B行业由 ...
- Springboot 个性化配置SpringMVC
Springboot 个性化配置SpringMVC Springboot很重要的一个功能就是整合了各种spring相关框架以及其他在开发场景中通用的包和需要配置的类.达到的效果就是以前需要写非常多的配 ...
- MyEclipse个性化配置
1.修改项目文件默认编码 Note:myEclipse默认的编码是GBK, 也就是未设置编码格式的文件都默认使用GBK进行编码, 而更糟糕的是JSP.JavaScriptt默认编码竟然是ISO-885 ...
- Linux个性化配置命令提示符
今天我来介绍一下如何个性化配置我们的Linux的命令提示符 在Linux中,相信大家最常见的就是此种命令提示符 一对"[]"下包含着一些信息: root: 这是我们当前SHELL的 ...
最新文章
- 杀死多余的ghost 的Android emulator-5554 offline 的方法总结
- 深度学习为什么要resize_为什么要学习演讲与口才
- java实现平衡二叉树(详细分析)
- Java几种常见的编码方式
- Ubuntu 13.04 软件安装
- USACO(含training section)水题合集[5/未完待续]
- HTML5开发常见的7个框架,不可不知,收藏啦
- CTU 2019 Open Contest I.SixPack (WA39)
- mybatis PageBounds应用分页
- GNSS NMEA-0183 协议
- centos7搭建hexo+nods.j个人博客
- 中国各省省会城市及简称
- 蓝桥杯试题 入门训练 圆的面积
- 【JAVA秒会技术之Joda-Time】满足你所有关于日期的处理
- mysql写周报_mysql 数据分析如何实现日报、周报、月报和年报?
- 【程序人生】跟小伙伴们聊聊我有趣的大学生活和我那两个好基友!
- 国产 CAE 软件研发
- 一种无需调查船上坞的调查设备安装测量方法和安装测量系统
- 聊聊广域网ppp协议和认证
- html5中字体显示不出来怎么办,手机字体无法正常显示怎么办
热门文章
- 大数求乘法逆元c语言,乘法逆元(编程计算)+两道版题
- 汉明码性能分析(结合AWGN信道BPSK调制)
- 空姐回应在飞机上拍内衣照遭开除:就算是被网暴我也要发声
- Windows从Bios启动的两种方式
- HTML5期末大作业:蛋糕网页设计——蛋糕甜品6页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
- 几所985高校理工科博士毕业成果要求(2022年更新)
- tcpreplay命令
- win10开机提示恢复(你的电脑\设备需要修复),错误代码0xc0000225
- ecc椭圆加密算法c语言,ECC算法介绍 - 椭圆曲线加密算法 - 中国数字证书CHINASSL
- iOS开发网络篇 一一 文件上传