什么是tmux?Github的地址: https://github.com/tmux/tmux
在这里插入图片描述
可见tmux是一个终端多路复用器,能够在单屏条件下创建,访问和控制多个终端窗口。同时在终端窗口断开之后可以在主机后台继续运行,也可以之后重连。即优点如下:

  • split your terminal into panes which can be moved, resized, and switched between
  • keep programs running after you disconnect (e.g. when working on a remote server via ssh)

tmux 安装

  • Ubuntu: sudo apt-get install tmux
  • RedHat / CentOS: sudo yum install tmux

tmux 命令

在 tmux 中,有 session (会话)、 window (窗口)和 pane (窗格)三个概念:

  • Sessions:定义的是当前所做的总体的任务。如果在测试某物,则将所有的测试该物的相关操作和活动限定在当前会话当中;
  • Windows:指的是会话当中的一种特定活动或工程;
  • Panes:帮助程序员在一个窗口当中创建多个视图窗格。比如,在一个窗格当中运行,在另一个窗格中追踪错误日志;

结构来讲,就是一个 tmux 可以包含多个 session,一个 session 可以包含多个 window, 一个 window 可以包含多个 pane。

这里有一个更加全面的关于 tmux 的命令的手册,且是在线的,把网址贴一下: https://phoenixnap.com/kb/tmux-tutorial-install-commands

tmux 的控制方式是——按过 CTRL+b (默认的前缀按键)之后,再按相应的热键。( CTRL+b 的键位有些别扭,也就是两个按键距离较远,可以修改 ~/.tmux.conf 文件的内容进行前缀的修改,并在tmux当中执行 tmux source-file ~/.tmux.conf 生效,具体操作下面会讲到,同时AcWing中,yxc将其更改为了 CTRL+a ,也是常用的修改的前缀组合)。

讲过前缀组合+热键的控制方式之后,常用的操作命令如下:

| session相关 |

大概的内容为:新建 session -> 离开 session -> 查看 session 列表 -> 进入 session -> 关闭 session -> 不同 session 之间的切换 -> 重命名 session 。

操作方式 用法
tmux 新建一个session ,其中包含一个window,window包含一个pane,pane里打开了个shell
tmux new -s session_name 新建一个指定名称为session_name的会话 ,其余同上
tmux detach
CTRL+b 手指松开, d
离开session ,从当前的会话中退出,同时当前会话的任务仍在后台中运行
tmux ls 查看 session 列表,列出所有活动着的session
tmux a / tmux attach
tmux a -t session_name
打开之前挂起的session,即 进入仍在进行中的最近使用的会话
打开/进入挂起的指定名字的会话
tmux kill-session -t session_name 关闭名为session_name的session
CTRL+b 手指松开, s tmux ls 查看操作的所有session
还可 选择其它session/window/pane ,会有一个GUI界面供选择:
:展开当前项 session/window
:闭合当前项 session/window
:选择上一项 session/window/pane
:选择下一项 session/window/pane
tmux switch -t session_name 切换session
tmux rename-session -t old_session_name new_session_name
CTRL+b 按住松手, $
重命名当前session名

| window相关 |

操作方式 用法
tmux new-window -n window_name
CTRL+b 手指松开, c
新创建一个window ,在当前session中创建一个新的window
tmux select-window -t window_name
CTRL+b 手指松开, w
选择指定window_name名称的窗口
选择其它window,会有一个GUI界面供选择:
:展开当前项 window
:闭合当前项 window
:选择上一项 window/pane
:选择下一项 window/pane
tmux rename-window new_window_name
CTRL+b 手指松开, ,
操作之后,底部状态栏变为黄色,删除原window名,更改新的window名
tmux kill-window -t window_name
CTRL+b 手指松开, &
关闭当前窗口 /(再按 y 进行确认)
CTRL+b 手指松开, PgUp
鼠标滚轮
翻阅当前pane内的内容

| pane相关 |

在使用vim编辑器的过程中使用 tmux 的窗格是一件很让人轻松愉悦的事情。

操作方式 用法
tmux split-window -h
CTRL+b 手指松开, %
将当前pane左右分半
tmux split-window
CTRL+b 手指松开, "
将当前pane上下分半
CTRL+d
CTRL+b 手指松开, x
输入exit+ Enter
关闭当前pane,若当前window的所有pane关闭,则自动关闭window,session的window同理,类似shared_ptr的回收
tmux select-pane -U/D/L/R
CTRL+b 手指松开, <方向键>`
鼠标点击pane
U(Upward)/D(Downward)/L(Left)/R(Right)
选择相邻的pane
选择任意的pane
CTRL+b 的同时按 <方向键>
鼠标拖动pane之间分割线
调整pane之间分割线的位置
CTRL+b 手指松开, z 将当前pane全屏/取消全屏
CTRL+b 手指松开, t 在当前窗格显示时钟,点击Enter复原

在 tmux 当中选中文本时,需要按住 Shift 键。(仅支持Windows和Linux,不支持MacOS);

在 tmux 中复制/粘贴文本的通用方式:

  • ① 按下 CTRL+b 后松开手指,然后按 [
  • ② 用鼠标选中文本,被选中的文字会自动地复制到 tmux 的剪贴板;
  • ③ 按下 CTRL+b 后松开手指,然后按 ] ,会将剪贴板中的内容粘贴到光标处;

tmux 配置

通过编辑 ~/.tmux.conf 文件对 tmux 进行个性化配置,这是对当前用户进行的单独配置,若是想要对主机的所有用户进行配置,则在根目录下创建 /etc/tmux.conf 文件。

更改前缀组合 ,以CTRL+b改为CTRL+a为例:

unbind C-b
set -g prefix C-a

更改后保存即可。

更改划分窗口的快捷键,将左右,上下分割分别改为CTRL+b,hCTRL+b,v

unbind %
bind h split-window -h
unbind '"'
bind v split-window -v

给出一个推荐配置,比较花里胡哨但是挺实用:https://github.com/gpakosz/.tmux

什么是tmux?Github的地址:https://github.com/tmux/tmux可见tmux是一个终端多路复用器,能够在单屏条件下创建,访问和控制多个终端窗口。同时在终端窗口断开之后可以在主机后台继续运行,也可以之后重连。即优点如下:split your terminal into panes which can be moved, resized, and switched betweenkeep programs running after you disconnect (e.g.
tmux是什么 tmux是一个 terminal multiplexer(终端复用器),它可以启动一系列终端会话。我们使用命令行时,打开一个终端窗口,会话开始,执行某些命令如fio ,dd,scp,关闭此终端窗口,会话结束,fio dd scp服务会话随之被关闭。有时我们希望我们运行的服务被保留,而不是关闭窗口再打开后,重新手动执行。tmux的主要用途就在于此。 它解绑了会话和终端窗口。关闭终端窗口再打开,会话并不终止,而是继续运行在执行。将会话与终端窗后彻底分离。 # Ubun...
1.1 会话与进程 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)。 会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有..
首先创建打印流对象:PrintStream printStream = new PrintStream(filepath); 然后将流对象交给系统输出:System.setOut(printStream); 最后,任意的System.out.Print("#$%^&*")输出的内容都会打印在filepath下,控制台不再显示打印的信息。 注:filepath 一般会通过读取配置...
Tmux1. Tmux是什么?1.1 基本概念1.2 安装2. session操作2.1 启动2.2 分离2.3 退出2.4 绑定、解绑、切换session2.5 重命名session3. window操作3.1 新建窗口tmux new-window3.2 切换窗口3.3 重命名窗口4. pane操作4.1 划分窗格4.2 光标位置4.4 关闭窗格5. 其他操作5.1 tmux上下翻屏 使用教程网上相关的Tmux教程很多,可是看完感觉不是太细就是太散,有一些不常用的操作、快捷键也写出来了,感觉重点不够突出
目录简介会话, 窗口, 窗格安装 Tmux 是一个用于在终端窗口中运行多个终端会话的工具,即终端复用软件(terminal multiplexer)。在 Tmux 中可以根据不同的工作任务创建不同的会话,每个会话又可以创建多个窗口来完成不同的工作,每个窗口又可以分割成很多小窗口。这些功能都是非常实用的。 Tmux 的多窗口和窗口分割并不是它吸引的我原因,对于这一点我可以有另外一个终端工具代替...
tmux和screen都是终端复用工具,可以让用户在同一个终端窗口中同时运行多个shell会话,从而提高工作效率。 tmux是GNU Screen的替代品,它提供了更多的功能和可定制性。比如,tmux支持窗格(pane)和窗口(window)的分割,可以将一个终端窗口分割成多个区域,每个区域可以运行不同的命令。此外,tmux还支持会话(session)和会话的保存与恢复,可以在不同的终端窗口中访问同一个会话。 Screen是一个老牌的终端复用工具,具有广泛的应用。它也支持终端窗口的分割和多个会话的管理,但相比tmux,它的可定制性稍弱一些。但是,Screen的文档和教程比tmux更为丰富,学习起来也更容易一些。 总的来说,tmux和Screen都是优秀的终端复用工具,选择哪个工具可以根据个人的需求和习惯来决定。