内容简介: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程序员节,祝程序员们节日快乐!
- 我是女程序员,不是程序媛
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Think Python
Allen B. Downey / O'Reilly Media / 2012-8-23 / GBP 29.99
Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms ......一起来看看 《Think Python》 这本书的介绍吧!