内容简介:Tmux可以在一个session即会话,当使用tmux的快捷键采用
Preface
Tmux
tmux is a terminal multiplexer.
Tmux可以在一个 terminal 终端窗口中管理多个 session 会话,多个 session 之间轻松的切换, 同时 tmux 的 session 会话可以在多个 terminal 终端之间共享和复用。 tmux 以 deamon 线程在后台运行一个 server ,所有的 session 由该线程进行维护和管理,使得 session 与 terminal 终端分离。
会话 (Session)
session即会话,当使用 terminal
建立与主机的连接后,也就是建立了一个 session
。传统的 terminal
终端与 session
1:1
绑定, session
随着 terminal
的开启与关闭而建立和终止。 tmux
中的会话与终端无任何关系, terminal
的角色只是一个通信的工具。 tmux
中的 session
是一个 server
对应多个 session
的 1:N
的模式,如下图所示。
新建会话 (New)
-
不指定名称,直接执行
tmux
命令,此时自动分配一个 session 数字名称,从 0 开始递增; -
指定名称,执行
tmux new -s <session-name>
, 此时 session 就具有一个易于辩识的名称;
脱离会话 (Detach)
-
命令式: 处于 session 内时,直接在执行命令
tmux detach
,即可使 session 进入后台运行; -
Ctrl+b d Ctrl b d
tmux的快捷键采用 Ctrl+b
的组合方。
查看会话 (List)
脱离会话后,若想查看后台运行的会话,则可使用 list
相关的命令,以列表的形式展示会话。
tmux list-sessions // 标准命令
tmux ls // 简写命令
重命名会话 (Rename)
有时我们可能在一个 session 中,做多件事情或者重新建立连接到新的主机,这里可能会话名称有可能无法表达对应的意思,从而有了更名的需要。 tmux 为我们提供两种更名方式,如下:
-
命令式:
tmux rename -t <old_name> <new_name>
-
快捷键:
ctrl+b $, <new_name>
进入会话 (Entry)
session进入使用的命令是 attach
, 使用 attch
后,就可把后台运行的 session
唤回前台执行。
tmux attach-session // 进入最近脱离的一个 session 会话
tmux attach-session <session-name> // 进入指定的 session 会话
不能在一个 session 中 attach 另外一个 session , tmux 不支持 session 的嵌套使用。
销毁会话 (Destroy)
tmux的 session 可以脱离 terminal 终端存活,所以 session 的结束不会随着终端的关闭而结束, session 的结束需要执行特定的命令方可。
tmux kill-session -t <session_name> // 在任意的 terminal 终端中执行即可
exit // 这个只针对于结束当前 session
切换会话 (Switch)
当在一个 session 执行任务时,如果想切换到别的 session 时,可采用快捷键进行切换,而不用退出后再重新进入。
ctrl+b ( // 前一个会话
ctrl+b ) // 下一个会话
ctrl+b L // 最后一个会话
ctrl+b s // 列出所有会话
Ctrl+b s
列出会话后,需要使用 h j k l
或者方向键进行选择,然后 Enter
键进入。
窗体 (Window)
tmux的一个 session 支持多个 window , session 与 windonw 之间的关系如下图所示。
创建窗体 (New)
session中的 window 可以简单的对应为一个 terminial 终端的展示界面,因为每个 window 使用时,它独占了整个 terminal 的展示界面。 window 的创建有如下两种方式:
-
命令式:
tmux new-window
-
快捷键:
ctrl+b c
窗体切换 (Switch)
window的切换命令综合如下:
ctrl+b p // 前一个
ctrl+b n // 下一个
ctrl+b <n> // 这儿的 <n> 代表数字,切换到对应数字的窗体
ctrl+b w // 列表展示出所有的窗体
ctrl+b l // 切换到最一个会话
ctrl+b & y // 关闭当前窗体
ctrl+b ' <n> // <n> 代表窗体的编号
窗格格 (Pane)
tmux的 window 也可再切分成更小的单元,那就是 pane 窗格。 pane 可以在一个 window 中同时展示多个不同的内容, 如图所示。
窗格操作 (Operation)
ctrl+b % // 垂直分割
ctrl+b " // 水平分割
ctrl+b o // 窗格间按顺序切换
ctrl+b ↑ | ↓ | ← | → // 向指定方向切换
ctrl+b Space // 重新调整窗格大小
ctrl+b z // 当前窗格最大化
ctrl+b x // 关闭当前窗格
配置 (Config)
窗格绑定 (Bind)
软件的修改化使用始终是离不开配置文件, tmux
使用 ~/.tmux.conf
为配置文件。如果你是一个 Vim
的重度使用者,那么在 pane
的切换时,肯定不习惯方向键的使用,而偏向于 h j k l
进行导航。而 tmux
也支持此功能,仅需在配置文件中加入下面的绑定语句就可。
# hjkl pane traversal
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
如果你在修改配置文件前没有启动 tmux 的话,你修改配置文件后马上就生效,但是如果你是在 tmux 运行当中修改的话,还需要执行命令加载配置文件,命令如下:
ctrl+b :, source-file ~/.tmux.conf
复制粘贴 (copypaste)
tmux支持的复制功能比较强大与方便,需启用 vi
模式的支持。修改 ~/.tmux.conf
配置文件,添加如下配置。
# vi copypaste mode
set -g mode-keys vi
复制粘贴模式流程如下:
1. `ctrl+b [` // 进入复制粘贴模式
2. `space` // 开始选择内容
3. `enter` // 复制内容
4. `ctrl+b ]` // 粘贴内容
进入文本复制和粘贴模式,可以使用相关的 Vim 命令进行操作,快捷而高效。
Appendix
-
https://github.com/tmux/tmux/wiki/Installing
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 程序员有话说 | 平时的程序猿 VS 面试的程序员
- 程序员高薪盛宴背后:程序员正在消失?
- 大龄程序员的出路,程序员的人生
- 程序员被沦陷!国内程序员真的饱和了?
- 1024程序员节,祝程序员们节日快乐!
- 我是女程序员,不是程序媛
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
"笨办法"学Python
肖 (Zed A.Shaw) / 王巍巍 / 人民邮电出版社 / 2014-11-1 / CNY 49.00
本书是一本Python入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。 本书结构非常简单,共包括52个习题,其中26个覆盖了输入/输出、变量和函数三个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测......一起来看看 《"笨办法"学Python》 这本书的介绍吧!