终端复用神器Tmux使用教程

1.什么是Tmux

Tmux

Tmux是一个终端复用软件 Termial mutiplexer,用来分离terminal和session。
我们经常遇到这样的场景,我们开启了一个Terminal A,对应Session A,在A中启动了一系列非守护进程,由于这些进程是A的子进程,当我们关闭Terminal A,也就是Session A,大部分进程将会同样被关闭,也就是关闭窗口的同时,窗口打开的进程也被关闭了。

我们可以借助Tmux将Session和Terminal分开来解决这个问题。
Tmux允许在一个窗口中开启多个Session,自由地在Session之间切换,并且退出窗口不会关闭这些Session。

2.使用tmux

2.1安装Tmux

Centos

yum install tmux

macOS:

brew install tmux

2.2 启动、进入、分离与退出Session

启动tmux

//开启一个编号自动递增的session
tmux 
//开启一个名为my_name的session
tmux new -s my_name

两个命令的区别是第一个命令默认生成从0开始的数字编号session
第二个在创建session时指定名称,方便回到指定session


编号

可以通过命令

tmux ls

来查看系统中后台运行的session名,根据session名来进入指定session


查看

分离session

例如我们创建了一个名为back 的session后就可以在里面操作,执行了一个nohup后台任务 ,操作完成后我们想退出这个session但是不关闭它,就可以用分离(detach)来将窗口分离,可以使用Ctrl + b + d或者

tmux detach

离开back而不影响back,我们稍后还可以回到这个session,继续之前的任务

回到session

刚刚我们离开了session back
我们使用Terminal处理完其它事情之后,可以回到刚刚的session,还记得我们之前的命令吗tmux ls 查看一下运行在后台的session

tmux ls

可以看到我们的back session还在健康茁壮的运行着
使用

tmux attach -t  name

来回到名为name的session

又回到了原来的back工作场景

退出Session

tmux detach只会让当前session后台运行,如果我们确实需要退出某个session
可以直接exit或者

tmux kill-session -t name

重命名Session

之前使用了默认数字编号或者session起名想换一个,可以使用

tmux rename-session -t formername newname

来修改session名称

2.3Tmux窗口扩展和切换

前面我们都是每个session内只用一个窗口(pane),我们可以在一个session内使用多个窗口来并行查看多个任务

多窗口

垂直划分

划分为上下窗口
tmux split-window

水平划分

划分为左右窗口
tmux split-window -h

在窗口间移动光标

tmux select-pane

上下移动
tmux select-pane -U
tmux select-pane -D
左右移动
tmux select-pane -L
tmux select-pane -R

交换窗格位置。

tmux swap-pane命令用来

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

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

3.常用操作

3.1经典场景

    1. ssh或mosh(墙裂推荐)登录远程主机
    1. tmux新建或者attach到原来的工作session
    1. 工作
    1. 完成工作后detach下班
    1. 第二天早上回来重复1即可还原昨天的工作场景,延续workflow

3.2经典快捷键

Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b :光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格左移。
Ctrl+b }:当前窗格右移。
Ctrl+b Ctrl+o:当前窗格上移。
Ctrl+b Alt+o:当前窗格下移。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。

4.其它

下面是一些其他命令。

# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys

# 列出所有 Tmux 命令及其参数
$ tmux list-commands

# 列出当前所有 Tmux 会话的信息
$ tmux info

# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf

你可能感兴趣的:(终端复用神器Tmux使用教程)