tmux工具概念和使用
Posted 清水寺扫地僧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tmux工具概念和使用相关的知识,希望对你有一定的参考价值。
什么是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,h
和CTRL+b,v
unbind %
bind h split-window -h
unbind '"'
bind v split-window -v
给出一个推荐配置,比较花里胡哨但是挺实用:https://github.com/gpakosz/.tmux
以上是关于tmux工具概念和使用的主要内容,如果未能解决你的问题,请参考以下文章
tmux 使用 tmux-resurrent 保存当前工作环境