一、Tmux命令介绍:
Tmux (“Terminal Multiplexer”的简称), 是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色。
tmux来自于OpenBSD,采用BSD授权。
Tmux 用于在一个终端窗口中运行多个终端会话。不仅如此,你还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话,这个功能非常实用。
例:
公司需要备份数据库时,数据量巨大,备份两三天弄不完,这时不小心关闭了终端窗口或误操作就前功尽弃了,使用Tmux会话运行命令或任务,就不用担心这些问题。
1、Tmux命令使用场景:
下班后,你需要断开ssh或关闭电脑,将运行得命令或任务放置后台运行。
关闭终端,再次打开时原终端里面的任务进程依然不会中断
2、命令使用
# 安装tmux
yum -y install tmux
# 默认创建一个会话,以数字命名。(不推荐)
tmux
# 新建会话并指定会话名称(建议制定会话名称,以便了解该会话用途)
tmux new -s <session-name>
# 新建会话(不指定会话名称)
tmux new
# 接入上一个会话
tmux a
# 接入指定名称的会话
tmux a -t <session-name>
# 断开当前会话(还可以使用快捷键:Ctrl+b,再按d)
tmux detach
# 关闭指定会话
tmux kill-session -t session-name
# 关闭除指定会话外的所有会话
tmux kill-session -a -t session-name
# 在会话中切换
control+b,再按s 显示会话列表,再进行会话切换
# 销毁所有会话并停止tmux
tmux kill-server
3、Tmux快捷键:
Ctrl + b 激活控制台后在输入“d” 脱离当前会话;这样可以暂时返回Shell界面,输入“tmux a -t 名称”,能够重新进入之前的会话;
Ctrl + b 激活控制台后在输入“&” 关闭当前所有小窗口,提示确认;
Ctrl + d 可关闭光标所在得窗口(必须是没有任务运行,方可关闭)
Ctrl + b 激活控制台后在输入“o” 切换窗口
Ctrl + b 激活控制台后在输入“t” 在光标处显示时间“q”退去;
Ctrl + b 激活控制台后在输入“!” 将光标所在得窗口全屏,当eixt推出时会显示剩下得窗口;
Ctrl + b 激活控制台后在输入“q” 查看窗口编号,直接按相应数字切换;
Ctrl + b 激活控制台后在输入“s” 通过窗口切换到其他会话;
4、创建多个窗口操作:
Ctrl + b 激活控制台后在输入“%” 将当前面板平分为左右两块;
Ctrl + b 激活控制台后在输入“ ” ” 将当前面板平分为上下两块;
Ctrl + b 激活控制台后在输入“o” 切换窗口;
Ctrl + b 激活控制台后 + 方向键 移动光标以选择面板
二、Screen命令
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
参数说明:
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或–list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
1、命令使用
# 新建一个叫<session-name>的session
screen -S <session-name>
# 列出当前所有的session
screen -ls
# 回到<session-name>这个session
screen -r <session-name>
# 远程detach某个session
screen -d <session-name>
# 结束当前session并回到<session-name>这个session
screen -d -r <session-name>
# 清理已经Dead的会话
screen -wipe
# 关闭死掉的screen
screen -X -S [session # you want to kill] quit
eg:screen -X -S 5984 quit
2、screen 快捷键
C-a ? -> 显示所有键绑定信息
C-a c -> 创建一个新的运行shell的窗口并切换到该窗口
C-a n -> Next,切换到下一个 window
C-a p -> Previous,切换到前一个 window
C-a 0..9 -> 切换到第 0..9 个 window
Ctrl+a [Space] -> 由视窗0循序切换到视窗9
C-a C-a -> 在两个最近使用的 window 间切换
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。
C-a w -> 显示所有窗口列表
C-a t -> time,显示当前时间,和系统的 load
C-a k -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
C-b Backward,PageUp
C-f Forward,PageDown
H(大写) High,将光标移至左上角
L Low,将光标移至左下角
0 移到行首
$ 行末
w forward one word,以字为单位往前移
b backward one word,以字为单位往后移
Space 第一次按为标记区起点,第二次按为终点
Esc 结束 copy mode
本文参考链接:https://bertram.blog.csdn.net/article/details/107555766