Last Updated: 2023-10-06 09:02:40 Friday
-- TOC --
tmux,terminal multiplexer
,终端复用器。它可以让Terminal窗口与在其中执行的命令解绑定,断开或关闭Terminal窗口,不会影响到里面命令的执行。这带来的好处,是显而易见的。tmux还可以让你在一个屏幕上划分出多个Terminal(所谓的pane),实用和装逼效果都很好。
会话(session)的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始,关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。一个典型的例子就是,SSH登录远程计算机后,打开一个Terminal窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次会话已经在网络断开时终止了,里面的进程也随之消失了。
tmux有很多快捷键,都是通过前缀Ctrl-b
来启动!注意:快速连续输入快捷键是有效的。
Ctrl-b ?
,查看所有快捷键,q
退出。嵌套使用tmux时,将命令发送给内层tmux窗口,Ctrl-bb ?
,两个b即可。
创建session
$ tmux
$ tmux new -s <session_name>
Ctrl-b $
,rename session$ tmux rename-session -t <old_name> <new_name>
Ctrl-b d
,detach a session$ tmux detach
detach后,session中的命令还在执行,不会中断!这个功能太重要了...
$ tmux ls
$ tmux list-session
Ctrl-b s
,在tmux中列出所有session并选择Ctrl-b w
,在tmux中列出所有session的window并选择
attach a session
$ tmux attach -t <session_name>
在session中执行:
$ exit
或者直接Ctrl-d
。
$ tmux kill-session -t <session_name>
$ tmux switch -t <to_session_name>
划分和操作pane
Ctrl-b %
,左右划分两个paneCtrl-b "
,上下划分两个paneCtrl-b <arrow_key>
,按箭头方向移动光标到某个paneCtrl-b o
,移动光标到下一个pane(遍历所有pane)Ctrl-b ;
,移动光标到上一个active pane(两个pane来回)Ctrl-b z
,将pane全屏,再用一次此快捷键还原paneCtrl-b x
,关闭paneCtrl-b Ctrl-<arrow_key>
,按箭头方向调整pane的sizeCtrl-b !
,将pane升级为一个独立windowCtrl-b q
,显示pane编号和size多window
Ctrl-b c
,在session中创建一个新的windowCtrl-b p
,切换到前一个windowCtrl-b n
,切换到后一个windowCtrl-b <number>
,切换到指定编号的windowCtrl-b w
,展开所有session所有windows选择Ctrl-b ,
,rename a windowwindow和pane的不同之处,多个pane可在一个window中并存,而window的显示都是独立的。一个session可包含多个window,一个window可包含多个pane。
$ tmux new-window
$ tmux new-window -n <window_name>
$ tmux select-window -t <window_name>
$ tmux rename-window <new_name>
进入copy mode后即可实现,Ctrl-b [
。
修改tmux的配置文件:
$ vim ~/.tmux.conf
写入设置:
setw -g mode-keys vi
重新再如配置文件:
tmux source-file ~/.tmux.conf
本文链接:https://cs.pynote.net/sf/linux/shell/202303261/
-- EOF --
-- MORE --