tmux介绍

目录

典型的命令行使用方式

tmux基本用法

Tmux 的快捷键前缀(Prefix)

Tmux 的配置文件

新配置生效

VI模式

鼠标设置

鼠标复制粘贴

Tmux会话

启动会话

分离及接入会话

杀死会话

查看创建的所有会话

切换会话

重命名会话

Tmux窗口操作

创建窗口

切换窗口

重命名窗口

Tmux窗格操作

划分窗格

切换窗格

交换窗格位置

移动窗格

Tmux的快捷键

其他命令

参考


典型的命令行使用方式

打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)。

会话的一个重要特点是,窗口与其中启动的进程是绑定的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

因此SSH 登录远程计算机,打开一个远程窗口执行命令,如果网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。

tmux基本用法

(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。

Tmux 的快捷键前缀(Prefix)

为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 "Ctrl-b"(同时按下 Ctrl 键和 键)。例如,假如你想通过快捷键列出当前 Tmux 中的会话(对应的快捷键是 s),那么你只需要做以下几步:

  • 按下组合键 "Ctrl-b" (Tmux 快捷键前缀)
  • 放开组合键 "Ctrl-b"
  • 按下 "s" 键

快捷键前缀可以根据个人使用习惯而设置,比如若要将快捷键前缀变更为 "Ctrl-a" ,请将以下配置加入到 Tmux 的配置文件 ~/.tmux.conf 中:(不建议这么做,vim中Ctrl+a已经被定义)

unbind C-b
set - g prefix C-a

Tmux 的配置文件

每当开启一个新的会话时,Tmux 都会先读取  ~/.tmux.conf 这个文件。该文件中存放的就是对 Tmux 的配置。

新配置生效

  • 重启tmux起效
  • 或者先按 "Ctrl-b" ,然后输入":",进入命令行模式,在命令行模式下输入:

source-file ~/.tmux.conf
  • 如果你希望新的配置项能够立即生效,那么你可以将下面这一行配置加入到文件 ~/.tmux.conf 中。
# bind a reload key
bind r source-file ~/.tmux.conf \; display -message "Reloaded Configure!"

这样配置了之后,每当向 ~/.tmux.conf 文件中添加了新的配置,只需要按下 "Ctrl-b r" 就可以重新加载配置并使新的配置生效,从而免去了开启一个新的会话。

VI模式

 Tmux 中可以使用与 Vim 极为相似的方式在文本间移动光标,用 k 键可以将光标移动到上一行,用 w 键可以向后移动一个单词等等,而且还可以通过把 Tmux 设为 vi 模式,使其与 Vim 的操作更加接近。为此,需要将以下配置加入到文件 ~/.tmux.conf 中

# Use vim keybindings in copy mode
setw -g mode-keys vi

复制模式copy-mode

  1. "Ctrl-b ["  进入复制模式
  2. space 开始复制,移动光标选择复制区域
  3. Enter 复制并退出copy-mode。
  4. 将光标移动到指定位置,按 "Ctrl-b ["  粘贴

鼠标设置

#滚屏
set-window-option -g mode-mouse on # (setw其实是set-window-option的别名)

setw -g 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里面的鼠标支持(也即可以用鼠标滚轮回滚显示窗口内容,此时还可以用鼠标选取文本)

鼠标复制粘贴

#开启鼠标支持
set-option -g mouse on

复制:按住 shift 键,然后拖动鼠标复制要选择的内容,然后按下 shift+ctrl+c ,复制到系统剪贴板
粘贴:按下 shift+ctrl+v 粘贴系统剪贴板中的内容到Tmux中
需要注意的是:
 shift+ctrl+v 是在终端设置的粘贴快捷键
 shift+ctrl+c 是在终端设置的复制快捷键
需要根据你的终端配置的复制粘贴快捷键来进行操作

 ~/.tmux.conf 例子:

set -g prefix C-b
#set -g prefix C-a
set -g base-index 1
#set -g renumber -windows on
#set-option -g base-index 1
#set-option -g renumber -windows on
set -g history-limit 79999999
#set -g default-terminal "xterm-256color"
set -g default-terminal "screen-256color"
set-option -ga terminal-overrides ",*256col*:Tc"

#unbind C-b

#bind -n Home send-key C-a
#bind -n End  send-key C-e
#bind-key -n Home send Escape "OH"
#bind-key -n End  send Escape "OF"

bind-key k select-pane -U # up

bind-key j select-pane -D # down

bind-key h select-pane -L # left

bind-key l select-pane -R # right

bind r source-file ~/.tmux.conf

setw -g mode-keys vi

#bind -r - splitw -v -c '#{pane_current_path}'
bind r - splitw -v
bind r | splitw -h
bind r c new-window

bind -r b kill-pane
#bind -r x confirm kill-session
bind -r x confirm detach-client

bind -r v confirm kill-window

#set -g mouse-select-window on
#set -g mouse-select-pane on
#set -g mouse-resize-pane on

set -g mouse on
#set -g mode-mouse on

bind r source-file ~/.tmux.conf \; display "Reloaded configure!"

Tmux会话

启动会话

tmux # 启动
 
tmux kill-server # 关闭

可以为每个特定的项目创建一个专用的Tmux会话。

#启动会话,在terminal中输入:
tmux new -s <session-name>

分离及接入会话

如果暂时不想在会话中工作,但后续还会用到这个这个会话,可以在会话中按下  "Ctrl-b d" 或在会话窗口中输入 “tmux detach” 将这个会话与terminal分离,放入后台,需要使用的时候再调出来:

#分离当前会话
tmux detach

#重新接入已经存在的会话
#使用会话编号
tmux attach -t 0
 
#使用会话名称
tmux attach -t <session-name>
#or
tmux a -t <session-name>

杀死会话

如果不再需要这个会话,可以将这个会话杀死:

#关闭上次打开的会话
tmux kill-session

#使用会话编号
tmux kill-session -t 0
 
#使用会话名称
tmux kill-session -t <session-name>

#关闭除s1外的所有会话
tmux kill-session -a -t s1

#关闭所有会话
tmux kill-server

查看创建的所有会话

tmux ls
#or
tmux list-session

切换会话

如果想切到其他的会话:

#使用会话编号
tmux switch -t 0
 
#使用会话名称
tmux switch -t <session-name>

重命名会话

tmux rename-session -t <old-name> <new-name>

Tmux窗口操作

创建窗口

一个Tmux 会话中可以启动多个窗口(window),启动一个Tmux会话默认会启动一个窗口,编号是0,可以在会话中按下 "Ctrl-b c" 创建新的窗口,第二个窗口的编号是1,以此类推。

#新建一个窗口
tmux new-window
 
#新建一个指定名称的窗口
tmux new-window -n <window-name

切换窗口

#切换到指定编号的窗口
tmux select-window -t <window-number>
 
#切换到指定名称的窗口
tmux select-window -t <window-name>

可以将切换窗口设置成vim模式

bind-key k select-pane -U # up
 
bind-key j select-pane -D # down
 
bind-key h select-pane -L # left
 
bind-key l select-pane -R # right

重命名窗口

tmux rename-window <new-name>

Tmux窗格操作

划分窗格

每个窗口还可以划分成多个窗格(pane),每个窗格运行不同的命令,可以在窗口中按下 "Ctrl-b ”" 水平分割窗口,或 "Ctrl-b %" 垂直分割窗口,或输入命令:

#分割窗口,在Tmux会话的窗口中输入:
#划分上下两个窗格
tmux split-window
 
#划分左右两个窗格
tmux split-window -h

切换窗格

#光标切换到上方窗格
tmux select-pane -U
 
#光标切换到下方窗格
tmux select-pane -D
 
#光标切换到左边窗格
tmux select-pane -L
 
#光标切换到右边窗格
tmux select-pane -R

交换窗格位置

#当前窗格上移
tmux swap-pane -U
 
#当前窗格下移
tmux swap-pane -D

移动窗格

#移动pane合并至某个window
Ctrl-b :join-pane -t $window_name

Tmux的快捷键

Ctrl-b ?显示帮助信息(在按 Esc q 退出帮助)
Ctrl-b :进入命令行模式
Ctrl-b s以菜单方式显示和选择会话
Ctrl-b dDetach当前会话,放入后台
Ctrl-b DDetach指定会话
Ctrl-b c创建一个新窗口,状态栏会显示多个窗口的信息
Ctrl-b p切换到上一个窗口(按照状态栏上的顺序)
Ctrl-b n切换到下一个窗口
Ctrl-b l切换到上一个操作的窗口
Ctrl-b &关闭当前窗口
Ctrl-b ,重命名当前窗口
Ctrl-b $重命名当前会话
Ctrl-b .将窗口移动到指定编号(1,2,3...)位置
Ctrl-b 0~9切换到指定编号的窗口,其中的0~9是状态栏上的窗口编号
Ctrl-b ‘切换至指定编号(可大于9)的窗口
Ctrl-b w以菜单方式显示及选择窗口
Ctrl-b f根据显示的内容搜索窗格
Ctrl-b %垂直分屏,分成左右两个窗格
Ctrl-b ”水平分屏,分成上下两个窗格
Ctrl-b <arrow key>光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键
Ctrl-b ;光标切换到上一个操作的窗格
Ctrl-b o顺时针切换窗格
Ctrl-b {当前窗格与上一个窗格交换位置
Ctrl-b }当前窗格与下一个窗格交换位置
Ctrl-b Ctrl+o所有窗格向前移动一个位置,第一个窗格变成最后一个窗格(逆时针旋转当前窗口的窗格)
Ctrl-b Alt+o所有窗格向后移动一个位置,最后一个窗格变成第一个窗格(顺时针旋转当前窗口的窗格)
Ctrl-b <space>重新排列当前窗口下的所有窗格
Ctrl-b x关闭当前窗格
Ctrl-b !将当前窗格拆分为一个独立窗口
Ctrl-b z当前窗格全屏显示,再使用一次会变回原来大小
Ctrl-b Ctrl+<arrow key>按箭头方向调整窗格大小
Ctrl-b q显示窗格编号
Ctrl-b t在当前窗格显示时间
Ctrl-b i显示当前窗格信息

其他命令

#列出所有快捷键,及其对应的 Tmux 命令, 等同于"Ctrl-b ?"
tmux list-keys
 
#列出所有 Tmux 命令及其参数
tmux list-commands
 
#列出当前所有 Tmux 会话的信息
tmux info
 
#重新加载当前的 Tmux 配置
tmux source-file ~/.tmux.conf

参考

tmux使用及个性化配置_tmux 自定义-优快云博客

linux tmux 修改窗口名字,tmux命令_Linux tmux 命令用法详解:TMUX Linux下面分屏管理软件基本的操作无非就是对会话、窗口、窗格进行管理,包括创建、关闭、重命名、连接...-优快云博客

tmux常用命令与快捷键_tmux窗口搜索关键字-优快云博客

https://www.cnblogs.com/abeen/p/10460077.html

tmux常用命令-优快云博客

Tmux的强大_tmux 状态栏样式-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值