美文网首页
Tmux 日常使用

Tmux 日常使用

作者: wayyyy | 来源:发表于2020-04-02 21:56 被阅读0次

tmux是什么?

命令行的典型使用方式是,打开一个终端窗口,在里面输入命令,用户与计算机的这种临时的交互,称为一次"会话"(session)。

会话的一个重要特点是:窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,比如你在ssh登录远程计算机上运行下面这段代码,当你ssh退出时,该代码运行的进程也会结束掉。

#include <thread>
#include <iostream>
#include <chrono>
using namespace std;

int main()
{
    while(1)
    {
        cout << "hello world" << endl;
        std::this_thread::sleep_for(std::chrono::seconds(2));
    }
}

为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。

  1. 它允许在单个窗口中,同时访问多个会话,这对于同时运行多个命令行程序很有用。
  2. 它可以让新窗口"接入"已经存在的会话。
  3. 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  4. 它还支持窗口任意的垂直和水平拆分。

安装Tmux

  • ubuntu
    apt-get install -y tmux
    
  • centos

Tmux 前缀键

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起,默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。
助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,松开,再按下?,就会显示帮助信息。
这里列个表格,说明一下其快捷键:

快捷键或者命令 功能
tmux new -s demo 新建名为demo会话
tmux kill-session -t demo 杀死名为demo会话
tmux ls 查看会话
tmux attach -t 接入会话
Ctrl+b d 分离会话
Ctrl+b c 新建窗口
tmux new-window -n demo1 新建名为demo1的窗口
Ctrl+b n 切换指定编码为n的窗口
Ctrl+b " 划分上下2个窗格
Ctrl+b % 划分左右2个窗格
Ctrl+b x 退出当前窗格
Ctrl+b z 当前窗格全屏显示,再使用一次会变回原来大小

会话管理

  • 新建会话

    tmux new -s <session name>
    
  • 分离会话
    快捷键:Ctrl+b d

    tmux detach
    

    上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。

  • 查看会话
    快捷键:Ctrl+b s

    tmux ls   # 列出所有会话。
    
  • 接入会话

    tmux attach -t 0  # 使用会话编号
    tmux attach -t <session-name>  # 使用会话名称
    
  • 杀死会话

    tmux kill-session -t 0  # 使用会话编号
    tmux kill-session -t <session-name>  #  使用会话名称
    
  • 切换会话

     tmux switch -t 0  # 使用会话编号
     tmux switch -t <session-name>   # 使用会话名称
    
  • 重命名会话
    快捷键Ctrl+b $

    tmux rename-session -t 0 <new-name>
    
  • 共享会话


窗格操作

Tmux 可以将窗口分成多个窗格(pane),每个窗格运行不同的命令。以下命令都是在 Tmux 窗口中执行。

  • 划分窗格

    • 划分上下两个窗格
      快捷键:Ctrl+b %
      tmux split-window
      
    • 划分左右两个窗格
      快捷键:Ctrl+b "
      tmux split-window -h
      
  • 退出当前窗格
    快捷键:Ctrl+b x

  • 移动光标
    快捷键:Ctrl+b 方向键

    tmux select-pane -U  # 光标切换到上方窗格
    
    tmux select-pane -D   # 光标切换到下方窗格
    
    tmux select-pane -L   # 光标切换到左边窗格
    
    tmux select-pane -R   # 光标切换到右边窗格
    
  • 交换窗格位置
    快捷键:

    tmux swap-pane -U  # 当前窗格上移
    
    tmux swap-pane -D  # 当前窗格下移
    
  • 其他快捷键

    • Ctrl+b ;:光标切换到上一个窗格。
    • Ctrl+b o:光标切换到下一个窗格。
    • Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
    • Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。

窗口管理

除了将一个窗口划分成多个窗格,Tmux也允许新建多个窗口。

  • 新建窗口
    快捷键:Ctrl+b c
    tmux new-window
    
    tmux new-window -n <window-name> # 新建一个指定名称的窗口
    
  • 切换窗口
    切换到上一个窗口(按照状态栏上的顺序):Ctrl+b p
    切换到下一个窗口:Ctrl+b n
    切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号: Ctrl+b <number>
    tmux select-window -t <window-number>  # 切换到指定编号的窗口
    
    tmux select-window -t <window-name>   # 切换到指定名称的窗口
    
  • 重命名窗口
    快捷键:Ctrl+b ,
    tmux rename-window <new-name>
    

窗口,窗格,会话关系


脚本化的tmux

tmux作为终端复用软件,支持纯命令行操作也是其一大亮点。你既可以启用可视化界面创建会话,也可以运行脚本生成会话。

  • 创建会话
    脚本中创建tmux会话时,由于不需要开启可视化界面,需要输入-d参数指定会话后台运行
    tmux_session_name="demo"
    
    tmux new -s "${tmux_session_name}" -d
    
  • 创建窗口
    tmux_session_name="demo"
    tmux_win_name="tmux_sh_demo1"
    
    tmux neww -a -n "${tmux_win_name}" -t "${tmux_session_name}"
    
    • 窗口重命名
      tmux_session_name="demo"
      tmux rename-window -t "${tmux_session_name}:0" "demo_init"
      
  • 窗口发送命令
    tmux_session_name="demo"
    tmux_win_name="tmux_sh_demo1"
    cmd="cd /root/code/ln_shell && /bin/bash while_keep_loop.sh"
    
    tmux send -t "${tmux_session_name}:${tmux_win_name}" "${cmd}" Enter
    

参考资料

  1. http://www.ruanyifeng.com/blog/2019/10/tmux.html
  2. http://louiszhai.github.io/2017/09/30/tmux/#%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B

相关文章

  • Tmux 日常使用

    tmux是什么? 命令行的典型使用方式是,打开一个终端窗口,在里面输入命令,用户与计算机的这种临时的交互,称为一次...

  • Tmux 使用笔记

    Tmux 速成教程:技巧和调整Tmux 入门介绍多终端管理器TMUX使用详解 查看tmux版本 tmux -V 会...

  • tmux的分屏功能、会话不中断功能

    1)安装工具 在ubuntu系统中安装tmux工具 (2)使用tmux 分屏命令 1. 输入命令 tmux 使用...

  • tmux使用介绍

    tmux简介 tmux,升级版本的screen,可以进行屏幕切割,操作更加简单便捷。 tmux模块 tmux使用C...

  • 公司网络不好试试Tmux

    同事分享的很棒的工具: Tmux 使用 1. Tmux是什么 1.1 Tmux的作用 命令行的典型使用方式是,打开...

  • tmux分屏

    在ubuntu系统中使用sudo apt-get install tmux安装tmux工具 1,输入命令tmux使...

  • Alacritty 与 tmux 按键冲突

    问题 Alacritty 占用了 tmux 的前缀键导致 tmux 无法使用 解决 Alacritty 使用 he...

  • tmux和vim很配哦:使用vim风格的快捷键

    tmux快捷键 tmux默认使用emacs模式的快捷键,这对我们使用vim的用户其实很不友好,而且我们认为tmux...

  • 2020-02-21 git 和 tmux

    1. tmux tmux的使用和配置 tmux使用手册 2. git 猴子都能看懂的git入门-git索引 git...

  • tmux使用教程

    Tmux使用手册:http://louiszhai.github.io/2017/09/30/tmux/

网友评论

      本文标题:Tmux 日常使用

      本文链接:https://www.haomeiwen.com/subject/husxphtx.html