ILD

tmux学习
作者:Yuan Jianpeng 邮箱:yuanjp@hust.edu.cn
发布时间:2018-6-25 站点:Inside Linux Development

tmux是一个terminal multiplexer.


概念

session是pseudo terminals的集合。一个session可以有多个窗口。

一个窗口占用整个屏幕,窗口可以分割成多个rectangular panes。

一个pane是一个pseudo terminal。


多个tmux instances可以连接到同一个session。

一个session可以有任何数量的window。

所有的session结束后,tmux退出。


session是persistent的,在突然的断开连接后,session仍然存活,tmux可以reattach它们。


在tmux中,session由client显示到屏幕,所有的session由single server管理。server和每个client是单独的进程,它们之间通过/tmp下面的socket通信。



Key Bindings

C-b     发送prefix key

C-o     逆时针旋转窗口中的panes。

!            将pane升级为一个window。

"            将当前pane水平分割成两个pane

%            将当前pane垂直分割成两个pane

$            重命名当前session

&            杀掉当前window

,            重命名当前window

.            修改当前window的index为一个未被占用的索引

0-9        选择window

:            输入tmux命令

c            创建一个新的window

d            detach当前client

l            切换到上一次选择的窗口

n            切换到下一个窗口

p            切换到上一个窗口

o            切换到下一个pane

w            弹出可视化选择window和pane的面板,使用箭头选择。

x            杀掉当前pane

z            全屏或从全屏取消pane

{            和上前面一个pane交换位置

}            和下一个pane交换位置

上下左右方向键    切换到上面下面左边右边的pane

M-1 到 M-5             切换panes的layout,分别为:全部竖排,全部横排,一个主横排,一个主竖排,tiled

M-o        顺时针旋转窗口中的panes。

C-Up, C-Down

C-Left, C-Right        Resize当前pane一个单元

M-Up, M-Down

C-Left, C-Right        Resize当前pane5个单元。


命令

大多数命令接收一个-t选项,参数是target-client, target-session, target-window, target-pane中的一个。


target-client是client的名字,典型的是client连接的pty文件,如/dev/pts/2


target-session,格式:

1 $加session id

2 session的名字。

3 session名字的前缀。


target-window,格式 session:window,其中window格式

1 window index, 如mysession:1

2 window ID,如@1

3 window的名字,如mysession:mywindow


下列token有表示特殊的window

{start}    ^最低号的window

{end}    $最大号的window

{last}    !前一个window

{next}    + 数字,后个window

{previous}    - 数字,前个window


target-pane的格式和target-window类似。也有和window类似的token表示特定的pane。


select-window -t:+2


attach [-t targer-session]
detach [-s target-session] [-t target-client]
kill-server

杀掉server,client,销毁所有的session。

list-clients [-t target-session]别名lsc
list-sessions别名ls
rename-session [-t target-session] new-name别名rename
source-file path
break-pane





Copyright © insidelinuxdev.net 2017-2021. Some Rights Reserved.