一款超强的终端复用神器 --Tmux介绍与键位配置(超详细)

简介: 可以通过自定义的按键在多个终端中自由移动,不需要在抬手移动鼠标(十分的保护手腕但废手指)

Halo,这里是Ppeua。平时主要更新C++,数据结构算法,Linux与ROS…感兴趣就关注我bua!


7ec93082b7df4f48b786954d3aacc7d8.png


1.什么是Tmux?


在与服务器进行ssh连接的时候,有时会中断了连接,导致当前正在做的任务被迫停止.且任务状态丢失.而tmux可以作为一个进程保存在服务器中,下回登录时可以还原上回的工作状态且其还是一款非常好用的终端复用神器

可以通过自定义的按键在多个终端中自由移动,不需要在抬手移动鼠标(十分的保护手腕但废手指)


在开始之前,我们先了解下Tmux中一个很重要的概念:


session、windows、pane


他们之间的关系可以通过下面这张图来理清


8ec1a74c197f4bb4808fc238f2b14d49.png


总而言之:每一个session中可以有多个window,一个window下还可以有多个pane。session是tmux中最大单位


2.使用Tmux


一个正常的页面中可以看到以下几个信息:


a91b186cf30d45f28303c5cacba33b6d.png


2.1安装Tmux


在Ubuntu中通过


sudo apt-get install tmux


来安装Tmux,安装完成后输入


tmux -V


若显示版本号则表示安装成功。


2.2 创建第一个Tmux窗口


可以使用


tmux kill-server #关闭tmux


Session


可以直接输入tmux,使用默认参数创建一个session


tmux #此时默认session的名字为0


或者使用


tmux new -s target_session_name #创建一个新的名为target_session_name的session
命令 效果
tmux kill-session -t target_session_name 关闭一个名为target_session的session
tmux ls 列出当前所有session
tmux switch -t target_session_name 切换到指定的session
tmux rename-session -t old_session new_session 重新命名session
tmux a -t target_session_name 进入(恢复)指定session


当我们进入Tmux内部的时候,大多数都是用快捷键来进行操作.在tmux中有一个很重要的按键叫做:前缀键(目的是让tmux知道你在对他进行操作.)


默认是ctrl+b 下文对这个按键简称pre


指令 效果
pre+? 显示所有快捷键
pre+d 挂起当前session()
pre+s 显示session列表
pre+: 进入命令行模式
pre+[ 进入copy-mode


Window


一个session下可以有多个window


创建一个名为new_window_name的window


tmux new-window -n new_window_name


重命名


tmux rename-window -t old_name new_name
指令 效果
pre+c 新建窗口
pre+& 关闭当前窗口
pre+0~9 切换到指定窗口
pre+p 切换到上一窗口
pre+n 切换到下一窗口
pre+w 打开窗口列表,用于且切换窗口
pre+, 重命名当前窗口
pre+. 修改当前窗口编号(适用于窗口重新排序)


Pane


一个window可以有多个pane


指令 效果
pre+" 当前面板上下一分为二,下侧新建面板
pre+% 当前面板左右一分为二,右侧新建面板
pre+x 关闭当前面板(关闭前需输入y or n确认)
pre+z 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增)
pre+! 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)
pre+; 切换到最后一次使用的面板
pre+q 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板
pre+{ 向前置换当前面板
pre+} 向后置换当前面板
pre+方向键 移动光标切换面板前缀


3.Tmux配置


在home目录下创建一个.tmux.conf文件


touch .tmux.conf


设置为vi的复制粘贴样式


# mode to vim
set-option -g status-keys vi #将当前按键的模式设置为vi的风格而不是emacs的风格
bind -T copy-mode-vi v send-keys -X begin-selection # vim的选中
bind -T copy-mode-vi y send-keys -X copy-selection #vim的copy
bind-key p pasteb # vim的粘贴


具体的为:使用 pre+[ 进入copy-mode 使用v可以选择文本 y进行复制 pre+p进行粘贴


#更换前置键 为ctrl+a
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix


选择pane


#通过pre+hjkl进行左上下右选择pane
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
#通过alt+上下左右方向键选择pane
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D


-n为不使用pre,M-为alt键

调整pane的宽度


#通过 > < - + 来调整上下左右的宽度
bind -r < resize-pane -L 7
bind -r > resize-pane -R 7
bind -r - resize-pane -D 7
bind -r + resize-pane -U 7


-r表示不用多次输入前置键

通过alt快速切换窗口


bind -n M-1 select-window -t 1
bind -n M-2 select-window -t 2
bind -n M-3 select-window -t 3
bind -n M-4 select-window -t 4
bind -n M-5 select-window -t 5
bind -n M-6 select-window -t 6
bind -n M-7 select-window -t 7
bind -n M-8 select-window -t 8
bind -n M-9 select-window -t 9
bind -n M-p previous-window
bind -n M-n next-window


新建pane与window为当前工作空间


bind ‘"’ split-window -vc “#{pane_current_path}”
bind ‘%’ split-window -hc “#{pane_current_path}”
bind ‘c’ new-window -c “#{pane_current_path}”


pre+r刷新tmux配置


bind r source-file ~/.tmux.conf ; display “Config reloaded…”


Bar设置


set -g status-right “#[fg=green]%H:%M:%S #[fg=magenta]%a %m-%d #[default]” #将日期设置为红色,时间设置为绿色
set -g status-interval 1 #设置时间实时刷新


set -g status-justify centre #将状态栏居中显示
set -g status-bg black # 设置背景色为黑色
set -g status-fg blue # 设置前景色为蓝色
set -g status-bg default #设置状态栏颜色为背景色
set -g status-left " #[fg=green]#S@#H #[default]" #设置状态栏左边的名字#S为当前session名称#H为用户主机名称
set -g status-left-length 20 #设置左边显示长度为20


开启鼠标支持


# mouse support


置背景色为黑色


set -g status-fg blue # 设置前景色为蓝色
set -g status-bg default #设置状态栏颜色为背景色
set -g status-left " #[fg=green]#S@#H #[default]" #设置状态栏左边的名字#S为当前session名称#H为用户主机名称
set -g status-left-length 20 #设置左边显示长度为20


开启鼠标支持


# mouse support
set -g mouse on


4.Github


键位配置文件已上传github:Tmux配置


后续会更新Tmux插件介绍.

目录
相关文章
|
3月前
|
运维 安全 Linux
【超实用秘籍】Linux文件传输新高度:10个scp命令让你瞬间变身文件传输达人,从此告别繁琐操作!
【8月更文挑战第13天】文件传输是运维工作的核心部分,尤其对Linux用户来说,了解高效且安全的传输方法非常重要。本文介绍10种scp命令的应用技巧,涵盖基础文件传输、密钥认证、目录复制等场景,助你灵活运用这一基于SSH协议的安全工具。从简单的文件传输到复杂的多主机文件迁移,scp都能轻松应对。通过本文的学习,你将能更熟练地使用scp命令,提高工作效能。
230 6
|
3月前
|
监控 前端开发 安全
超级炫酷的终端神器 eDEX-UI
超级炫酷的终端神器 eDEX-UI
59 0
|
4月前
|
API 开发者 运维
开发与运维命令问题之Gorilla-CLI提升命令行交互体验如何解决
开发与运维命令问题之Gorilla-CLI提升命令行交互体验如何解决
23 0
|
4月前
|
监控 程序员 开发者
Tmux 快速入门:提高终端管理效率的必备技能
**Tmux** 是一款终端复用工具,提升多任务处理效率。通过快捷键管理会话、窗格和窗口……
54 0
|
5月前
|
Linux 数据安全/隐私保护
06. 【Linux教程】终端工具
06. 【Linux教程】终端工具
33 0
|
Linux Windows
提高终端生产力神器 - tmux
提高终端生产力神器 - tmux
172 0
|
Linux Go C语言
嵌入式linux之go语言开发(十一)让web服务器跑在终端上,通过网页配置终端参数
嵌入式linux之go语言开发(十一)让web服务器跑在终端上,通过网页配置终端参数
|
Web App开发 文字识别 Linux
上网神器-油小猴工具箱 及解决添加扩展但启动不成功问题
此工具箱中包含了五款实用的油猴脚本,即网盘直链下载助手、网盘智能识别助手、网页加快器、星号密码显示助手、Mactype助手,它保留了每个脚本的功能,并对某些功能进行了加强,用户使用起来更加方便。
上网神器-油小猴工具箱 及解决添加扩展但启动不成功问题
|
前端开发 Linux 网络安全
如何通过SSH配合VSCode收获超舒适的远程开发体验
最近公司有接了个项目,需要远程开发,不管是用**远程控制软件**还是微软的**远程桌面连接**,体验都不是很好,感觉特别的不舒服,尤其是微软的**远程桌面连接**,只能一个人使用,经常出现你挤我我挤你的现象,这就我想到一年前通过SSH远程连接过Linux进行开发,这次就来远程连接一下Windows进行开发。
356 0
如何通过SSH配合VSCode收获超舒适的远程开发体验
|
前端开发 JavaScript API
命令行终端是怎么做的?教你写一个命令行终端[electron实战]
前言 Electron很出名,很多人可能了解过,知道它是用来开发桌面端的应用,但是一直没有在项目中实践过,缺乏练手的实践项目。 很多开源的命令行终端都是使用Electron来开发的,本文将从零开始手把手的教大家用Electron写一个命令行终端。 作为一个完整的实战项目示例,该终端demo也将集成到Electron开源学习项目electron-playground中,目前这个项目拥有800+ Star⭐️,它最大的特点是所见即所得的演示Electron的各种特性,帮助大家快速学习、上手Electron。 大家跟着本文一起来试试Electron吧~ 下载试玩 本文命令行终端demo的代码量很少,
703 0
命令行终端是怎么做的?教你写一个命令行终端[electron实战]