“终端复用器tmux教程”的版本间的差异
(→* 新建会话) |
|||
(未显示同一用户的13个中间版本) | |||
第1行: | 第1行: | ||
[[category:ops]] | [[category:ops]] | ||
+ | =Note= | ||
+ | 重新连接才是最好玩和有用的 见 兴趣例子 Nov 03 2021 | ||
=* Tmux 是什么= | =* Tmux 是什么= | ||
tmux | tmux | ||
第9行: | 第11行: | ||
==** install== | ==** install== | ||
− | + | Ubuntu 或 Debian | |
$ sudo apt-get install tmux | $ sudo apt-get install tmux | ||
− | + | CentOS 或 Fedora | |
$ sudo yum install tmux | $ sudo yum install tmux | ||
− | + | Mac | |
$ brew install tmux | $ brew install tmux | ||
第38行: | 第40行: | ||
分离会话可执行 C-b d 。 | 分离会话可执行 C-b d 。 | ||
− | 通过man tmux可以获得更详尽的 tmux 使用指南。 | + | 通过man tmux可以获得更详尽的 tmux 使用指南。 |
+ | ==使用 技巧== | ||
+ | <pre> | ||
+ | #最后一行 是打log 也是为了 把所有的命令执行完成 Nov 2021 | ||
+ | sudo -u ap php artisan original_data*clean:cs_im_message | ||
+ | 清洗互动客户聊天数据 开始! | ||
+ | 清洗互动客户聊天数据 结束! | ||
+ | [root@prod-com]# echo 'okdevops'>/tmp/devops.log | ||
+ | [root@prod-]# cat /tmp/devops.log | ||
+ | okdevops | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ==Tmux查看会话历史输出信息== | ||
+ | |||
+ | 这个好 | ||
+ | # 在会话中切换 | ||
+ | |||
+ | control+b,再按s 显示会话列表,再进行会话切换 | ||
+ | |||
+ | 然后先按快捷键ctrl+b,松开后再按下[,即进入历史输出信息查看模式,可通过键盘上的上下左右键来滚动历史输出信息。 | ||
+ | 如果要退出查看模式,按下q即可 | ||
=* 会话管理= | =* 会话管理= | ||
==* 新建会话== | ==* 新建会话== | ||
+ | <pre> | ||
第一个启动的 Tmux 窗口, 如梭screen 编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。 | 第一个启动的 Tmux 窗口, 如梭screen 编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。 | ||
+ | |||
+ | 快捷键 ctrl+b c | ||
使用编号区分会话,不太直观,更好的方法是为会话起名 | 使用编号区分会话,不太直观,更好的方法是为会话起名 | ||
− | mux new -s <session-name> | + | mux new -s <session-name> tag |
$ tmux new -s 36 | $ tmux new -s 36 | ||
+ | </pre> | ||
==** 分离会话== | ==** 分离会话== | ||
第60行: | 第87行: | ||
==** 接入会话== | ==** 接入会话== | ||
− | + | <pre> | |
tmux attach命令用于重新接入某个已存在的会话。 | tmux attach命令用于重新接入某个已存在的会话。 | ||
第72行: | 第99行: | ||
我的就是 tmux attach -t 36 | 我的就是 tmux attach -t 36 | ||
− | + | 兴趣例子 Nov 03 2021 | |
+ | |||
+ | tmux ls | ||
+ | 0: 2 windows (created Tue Oct 26 00:21:20 2021) [77x40] (attached) | ||
+ | 1: 3 windows (created Tue Nov 2 22:23:31 2021) [103x40] | ||
+ | myevan: 3 windows (created Wed Nov 3 10:17:19 2021) [77x1] (attached) | ||
+ | |||
+ | tmux attach -t 1 | ||
+ | |||
+ | |||
+ | 首先通过tmux命令进入指定会话: | ||
+ | |||
+ | tmux a -t mysession | ||
+ | |||
+ | </pre> | ||
+ | |||
==** 会话快捷键== | ==** 会话快捷键== | ||
第89行: | 第131行: | ||
在 Tmux 窗口运行所需的程序。 | 在 Tmux 窗口运行所需的程序。 | ||
按下快捷键Ctrl+b d将会话分离。 | 按下快捷键Ctrl+b d将会话分离。 | ||
+ | |||
+ | |||
下次使用时,重新连接到会话tmux attach-session -t my_session。 | 下次使用时,重新连接到会话tmux attach-session -t my_session。 | ||
第118行: | 第162行: | ||
=杀死会话= | =杀死会话= | ||
<pre> | <pre> | ||
+ | |||
+ | Nov 2021 | ||
tmux ls | tmux ls | ||
# 使用会话编号 | # 使用会话编号 | ||
− | $ tmux kill-session -t 0 </pre> | + | $ tmux kill-session -t 0 |
+ | |||
+ | |||
+ | |||
+ | |||
+ | # 关闭指定会话 | ||
+ | |||
+ | tmux kill-session -t session-name | ||
+ | |||
+ | # 关闭除指定会话外的所有会话 | ||
+ | |||
+ | tmux kill-session -a -t session-name | ||
+ | |||
+ | # 在会话中切换 | ||
+ | |||
+ | control+b,再按s 显示会话列表,再进行会话切换 | ||
+ | |||
+ | # 销毁所有会话并停止 | ||
+ | |||
+ | tmux kill-server | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | </pre> | ||
[https://www.cnblogs.com/kevingrace/p/6496899.html Linux终端复用神器-Tmux使用梳理] | [https://www.cnblogs.com/kevingrace/p/6496899.html Linux终端复用神器-Tmux使用梳理] | ||
第162行: | 第236行: | ||
[http://blog.csdn.net/lihao21/article/details/68958515 Tmux:终端复用利器] | [http://blog.csdn.net/lihao21/article/details/68958515 Tmux:终端复用利器] | ||
+ | |||
+ | |||
+ | [https://blog.csdn.net/why444216978/article/details/81570573 TMUX会话的使用] |
2022年7月13日 (三) 13:38的最新版本
目录
Note
重新连接才是最好玩和有用的 见 兴趣例子 Nov 03 2021
* Tmux 是什么
tmux Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。 tmux 是一个与 GNU screen 类似的程序,可作为后者的替代品使用。 感觉更加好用 ,screen常常是那个历史什么的不能用 类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。
* 基本用法
** install
Ubuntu 或 Debian
$ sudo apt-get install tmux
CentOS 或 Fedora
$ sudo yum install tmux
Mac
$ brew install tmux
** 启动与退出
和screen 一样 键入tmux命令,就进入了 Tmux 窗口
按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。
** 最常用的日常启动开始
启动 tmux 后,在窗口底部有状态行显示,其中包括已创建的窗口列表、当前窗口(使用 * 表示)等。
与 GNU screen 相似,tmux 也使用快捷键来执行相关操作。要创建一个新的窗口,可以按 C-b c,即先按 Ctrl-b,再按 c。在各个窗口间切换可使用下列快捷键:
C-b n 切换到下一个窗口
C-b p 切换到上一个窗口
C-b 0、C-b 1……C-b n 切换到第 n 个窗口
分离会话可执行 C-b d 。
通过man tmux可以获得更详尽的 tmux 使用指南。
使用 技巧
#最后一行 是打log 也是为了 把所有的命令执行完成 Nov 2021 sudo -u ap php artisan original_data*clean:cs_im_message 清洗互动客户聊天数据 开始! 清洗互动客户聊天数据 结束! [root@prod-com]# echo 'okdevops'>/tmp/devops.log [root@prod-]# cat /tmp/devops.log okdevops
Tmux查看会话历史输出信息
这个好 # 在会话中切换 control+b,再按s 显示会话列表,再进行会话切换
然后先按快捷键ctrl+b,松开后再按下[,即进入历史输出信息查看模式,可通过键盘上的上下左右键来滚动历史输出信息。 如果要退出查看模式,按下q即可
* 会话管理
* 新建会话
第一个启动的 Tmux 窗口, 如梭screen 编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。 快捷键 ctrl+b c 使用编号区分会话,不太直观,更好的方法是为会话起名 mux new -s <session-name> tag $ tmux new -s 36
** 分离会话
Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。
ctrl +d b
tmux ls命令可以查看当前所有的 Tmux 会话。
** 接入会话
tmux attach命令用于重新接入某个已存在的会话。 # 使用会话编号 $ tmux attach -t 0 # 使用会话名称 $ tmux attach -t <session-name> 我的就是 tmux attach -t 36 兴趣例子 Nov 03 2021 tmux ls 0: 2 windows (created Tue Oct 26 00:21:20 2021) [77x40] (attached) 1: 3 windows (created Tue Nov 2 22:23:31 2021) [103x40] myevan: 3 windows (created Wed Nov 3 10:17:19 2021) [77x1] (attached) tmux attach -t 1 首先通过tmux命令进入指定会话: tmux a -t mysession
** 会话快捷键
下面是一些会话相关的快捷键。
Ctrl+b d:分离当前会话。 Ctrl+b s:列出所有会话。 Ctrl+b $:重命名当前会话。
* 最简操作流程
综上所述,以下是 Tmux 的最简操作流程。
新建会话tmux new -s my_session。起名 不然下次不好找 在 Tmux 窗口运行所需的程序。 按下快捷键Ctrl+b d将会话分离。
下次使用时,重新连接到会话tmux attach-session -t my_session。
# 重命名会话
tmux rename-session -t abc cba
trouble
错误原因:你已经打开了一个tmux 会话,然后你在这个tmux会话中试图打开另一个tmux会话。 这种嵌套的,一层套一层的,在虚拟会话中声明活着打开另一个虚拟回话,是不好的。 解决方式,直接在命令行打开或者新建 tmux attach-session -t myevan sessions should be nested with care, unset $TMUX to force unset TMUX
运维操作流程
如何在linux终端里创建一个tmux窗口的同时直接在窗口终端里执行命令呢? 这就需要用到tmux send -t session_name "command" ENTER!!!
杀死会话
Nov 2021 tmux ls # 使用会话编号 $ tmux kill-session -t 0 # 关闭指定会话 tmux kill-session -t session-name # 关闭除指定会话外的所有会话 tmux kill-session -a -t session-name # 在会话中切换 control+b,再按s 显示会话列表,再进行会话切换 # 销毁所有会话并停止 tmux kill-server
* 窗格操作
** 划分窗格
- 划分上下两个窗格
$ tmux split-window
- 划分左右两个窗格
$ tmux split-window -h
** 5.2 移动光标
tmux select-pane命令用来移动光标位置。
# 光标切换到上方窗格 $ tmux select-pane -U
# 光标切换到下方窗格 $ tmux select-pane -D
# 光标切换到左边窗格 $ tmux select-pane -L
# 光标切换到右边窗格 $ tmux select-pane -R