虽然文章一直在记录但是,好久没法公众号了, 今天来一篇吧 , 本篇来看看 tmux 是怎么玩的 , 不得不说 tmux 是个非常好的工具 值得花点时间学习一下
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 new -s <name>
//可忽略 或者 下面这个是 继承target-session 还不太懂 回头有空研究下
tmux new-session -t <target-session>
tmux new -s local
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 集成到这个命令里 *
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 窗口 ,然后在某个窗口里去搜索 效果如下, 可以去体验一下
5. 窗格Pane管理
一个窗口里 也可以去分出多个 窗格
下面几个快捷键感觉比较常用 都要记一下 **要重点记一下
prefix + " 当前面板分为上下 ***
prefix + % : 当前面板分为 左右 ***
prefix + ! : 当前面板放到一个新的窗口里 **
prefix + x :关闭当前面板
prefix + space 调整
prefix + alt + 方向键 (这里item2有点坑 不知道是什么时候弄进去的快捷键导致有冲突, 这里需要注意一下) **
prefix + ctrl + o 顺时针旋转
prefix + {
prefix + } 这2个好像更好用 比 顺时针选择更好用点....它是把你当前的窗格 前后移动 **
prefix + z 这个是放最大当前窗格 **
窗格可以调整大小 默认是 prefix alt +方向键 (好用)
窗格也可以旋转 调整位置 默认是 prefix ctrl + o 顺时针旋转 (还有个alt + o 逆时针选择 感觉记住一个就行了)
感觉记住 } { 足够 比这个 o 好用!!
最大化当前的窗格 prefix + z , 再按一次就可以恢复 (好用)
注意坑
-
prefix : 前缀键 可以去修改一个自己合适的 默认是ctrl+b
-
有些快捷键如果没生效 可能是 和你的终端快捷键 或者其他软件冲突了
-
prefix + s : 会话的选择, 一开始s不成功是因为 tmuxconfig文件里的有个这个
#bind-key
s set synchronize-panes , 这个好像是同步多个面板执行命令的 以后再说 -
冲突了 一开始item2的 keys mappings 里面有 alt + 方向键 不清楚干嘛的 导致我没法快捷调整窗格大小
总结
本篇注意介绍了一下 tmux的使用 只能说很好用 多熟悉一下 多记一下快捷键 有机会介绍一下 tmux的 config配置文件 以及怎么改键等.. 还有 vim-tmux-navigator 等插件使用
参考 Tmux的快捷键,包括调整窗口大小.
原文始发于微信公众号(Johnny屋):tmux 终端session管理器
暂无评论内容