tmux 终端session管理器

虽然文章一直在记录但是,好久没法公众号了, 今天来一篇吧 , 本篇来看看 tmux 是怎么玩的 , 不得不说 tmux 是个非常好的工具 值得花点时间学习一下

tmux 终端session管理器

1.tmux 是什么

1.1 会话

打开一个终端窗口 在里面输入命令 , 用户与计算机的临时交互,称为一次会话 会话的特点是,窗口与启动的进程是连接一起的, 窗口打开,会话开始, 关闭窗口,会话结束, 会话内部的进程也会随之终止 不管有没有运行完成.

典型的例子就是,SSH登录 ,当你不小心关闭了窗口 那这个远程登录就会终止, 又或者你正在远程SSH并且在下载软件等 , 不小心关闭了窗口 那下载也会终止 为了解决这个问题, 让会话和窗口解绑, 窗口关闭时,会话不会终止 , 以后需要的时候再将会话绑定到窗口上

Tmux 就是会话与窗口的”解绑”工具,将它们彻底分离。

2. 基本用法

tmux 一般要自己去安装

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

# Mac
$ brew install tmux

2.1 前缀键

先了解一下 tmux 的前缀键 , 所有tmux的快捷键都需要先通过前缀健唤起,默认的前缀健是Ctrl + b ,这个可以改 比如改成 Ctrl + a / Ctrl + s 等

2.2 启动和退出


//启动
tmux // 直接tmux 就可以启动了


//退出: 前缀健 + d 或者命令输入 exit

3. 会话管理

tmux 的第一个管理的就是会话, 这个会话是和窗口解绑的 不用担心它会丢失

3.1 新建会话

上面我们使用tmux 命令就可以启动一个会话, 这个会话的编号是 0 , 最前面的[0] 就是会话的名称tmux 终端session管理器

使用编号不直观, 可以给会话起个名称

// 这个是 创建一个会话 并且指定一个名称
tmux new -s <name>


//可忽略 或者 下面这个是 继承target-session 还不太懂 回头有空研究下
tmux new-session -t <target-session>
tmux new -s local

tmux 终端session管理器

3.2 查看会话

查看有那些会话

tmux ls 

3.3 分离会话

上面介绍了 前缀健+d 是分离当前会话, 还有命令也可以

tmux detach // = 前缀健+d 

3.4 连接会话

上面分离了会话 还可以继续连接回去

tmux attach -t local //连接local这个会话

3.5 kill会话

tmux kill-session -t local //kill这个local会话

3.6 切换会话

这个是在一个会话里 去切换到另外一个会话 可以使用, 不用 分离会话后再attach 其他会话,而且直接在一个会话里 去attach另外一个 是不行的

tmux switch -t ... 

*直接在一个会话里 去attach另外一个 是不行的 ,其实我感觉可以把switch 集成到这个命令里 *tmux 终端session管理器

3.7 重命名会话

有时候 想把一个会话给改个名称

tmux rename-session -t local <new-name> //把local这个名称改成新名称

3.8 会话快捷键总结

前缀健(Ctrl+b) d:分离会话
前缀健(Ctrl+b) s:列出所有会话 //需要注意你的这个是不是有冲突 , 我的一开始就有导致不生效
前缀健(Ctrl+b) $:重命名会话

4. 窗口管理

一个会话里的窗口 可以有多个窗口 , 你可以想象 你这个 终端 现在变成了 tmux 的一个会话了 在这个会话里(伪终端) 你可以有多个窗口 , 也符合你的原生终端有多个窗口

终端也有一些命令 但是我不去记 , 我觉得记住快捷键就行了

//prefix = 你的前缀键  默认Ctrl + b

prefix + c : create window 新建窗口
prefix + & : 关闭当前窗口
prefix + n p 下上切换窗口 和 prefix + 序号 0 1 2 3... 类似
prefix + , : 重命名当前窗口
prefix + f : 所有窗口里查询 指定文本

其他的不介绍了 都比较简单, 我这里 举个 prefix + f 的例子, 这里我开启了4个window 窗口 ,然后在某个窗口里去搜索 效果如下, 可以去体验一下tmux 终端session管理器

5. 窗格Pane管理

一个窗口里 也可以去分出多个 窗格

下面几个快捷键感觉比较常用 都要记一下 **要重点记一下

prefix + " 当前面板分为上下  ***
prefix + % : 当前面板分为 左右 ***
prefix + ! : 当前面板放到一个新的窗口里 **
prefix + x :关闭当前面板
prefix + space 调整
prefix + alt + 方向键 (这里item2有点坑 不知道是什么时候弄进去的快捷键导致有冲突, 这里需要注意一下) **
prefix + ctrl + o 顺时针旋转
prefix + {
prefix + } 这2个好像更好用 比 顺时针选择更好用点....它是把你当前的窗格 前后移动 **
prefix + z 这个是放最大当前窗格 **

tmux 终端session管理器

窗格可以调整大小 默认是 prefix alt +方向键 (好用)tmux 终端session管理器

窗格也可以旋转 调整位置 默认是 prefix ctrl + o 顺时针旋转 (还有个alt + o 逆时针选择 感觉记住一个就行了)
感觉记住 } { 足够 比这个 o 好用!!tmux 终端session管理器

最大化当前的窗格 prefix + z , 再按一次就可以恢复 (好用)

tmux 终端session管理器

注意坑

  1. prefix : 前缀键 可以去修改一个自己合适的 默认是ctrl+b

  2. 有些快捷键如果没生效 可能是 和你的终端快捷键 或者其他软件冲突了

    1. prefix + s : 会话的选择, 一开始s不成功是因为 tmuxconfig文件里的有个这个 #bind-key s set synchronize-panes , 这个好像是同步多个面板执行命令的 以后再说

  3. tmux 终端session管理器冲突了 一开始item2的 keys mappings 里面有 alt + 方向键 不清楚干嘛的 导致我没法快捷调整窗格大小

tmux 终端session管理器

tmux 终端session管理器

总结

本篇注意介绍了一下 tmux的使用 只能说很好用 多熟悉一下 多记一下快捷键 有机会介绍一下 tmux的 config配置文件 以及怎么改键等.. 还有 vim-tmux-navigator 等插件使用

参考 Tmux的快捷键,包括调整窗口大小.

原文始发于微信公众号(Johnny屋):tmux 终端session管理器

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容