“终端复用器tmux教程”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
 
(未显示同一用户的15个中间版本)
第1行: 第1行:
 
[[category:ops]]  
 
[[category:ops]]  
 +
=Note=
 +
重新连接才是最好玩和有用的 见 兴趣例子 Nov 03 2021
 
=* Tmux 是什么=
 
=* Tmux 是什么=
 
tmux   
 
tmux   
第9行: 第11行:
  
 
==** install==  
 
==** install==  
# Ubuntu 或 Debian
+
Ubuntu 或 Debian
 
  $ sudo apt-get install tmux
 
  $ sudo apt-get install tmux
  
# CentOS 或 Fedora
+
CentOS 或 Fedora
 
  $ sudo yum install tmux
 
  $ sudo yum install tmux
  
# Mac
+
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。
  
第94行: 第138行:
 
   
 
   
 
tmux rename-session -t abc cba
 
tmux rename-session -t abc cba
 +
 +
==trouble==
 +
<pre>
 +
 +
错误原因:你已经打开了一个tmux 会话,然后你在这个tmux会话中试图打开另一个tmux会话。
 +
 +
这种嵌套的,一层套一层的,在虚拟会话中声明活着打开另一个虚拟回话,是不好的。
 +
 +
解决方式,直接在命令行打开或者新建
 +
 +
tmux attach-session -t myevan
 +
sessions should be nested with care, unset $TMUX to force
 +
 +
unset TMUX
 +
 +
</pre>
  
 
=运维操作流程=
 
=运维操作流程=
第102行: 第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使用梳理]
第146行: 第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
 







Linux终端复用神器-Tmux使用梳理

* 窗格操作

** 划分窗格

  1. 划分上下两个窗格
$ tmux split-window
  1. 划分左右两个窗格
$ 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
       


* see also

Tmux 使用教程

什么是tmux

Tmux 虚拟终端使用

Tmux:终端复用利器


TMUX会话的使用