美文网首页
tmux教程

tmux教程

作者: 几簟生凉 | 来源:发表于2021-06-16 10:48 被阅读0次

    tmux是终端多路复用器。 它让您在一个终端中的多个程序之间轻松切换,分离它们(它们在后台运行)并将其重新连接到不同的终端。
    https://github.com/tmux/tmux/wiki

    首先明确三个概念,会话session、窗口window、窗格panel。

    • 会话:相比开发人员对session一定很熟悉,会话表示用户和计算机之间的一个交流关系,一个会话可以建立多个窗口。会话有两个对立状态,attached(连接)和detached(分离),attached就是用户和会话之间建立了正常连接,可以交互。当用户关闭终端attached状态就会变为detached状态,也可以手动转为detached状态;detached就是用户和会话之间断开了连接,需要先转为attached状态才能交互。
    • 窗口:window就是当前终端的窗口,如果终端全屏,就是你一眼可以看到的整个屏幕。
    • 窗格:一个窗口可以分成多个窗格,就是将当前屏幕分成好几块(分屏)。

    个人认为,一般情况下,一个用户创建一个会话就可以了。然后每个现实中的任务分成一个窗口,每个窗口按需分成多个窗格。比如当我连接的服务器,我会新建一个名为earor的会话,我需要在服务器上跑两个深度学习的训练任务(aeot和pugan),每个任务占用一个窗口。对于aeot任务窗口,分成三个窗格,一个窗格跑训练任务,一个窗格看GPU运行情况,一个窗格执行其他操作;pugan任务也是类似。

    然后,tmux的快捷键前缀是ctrl+b,这些快捷键是在启动tmux之后才可以使用(废话)。比如,启动tmux之后,ctrl+b ?是帮助,按键方式是:按下ctrlb,松开ctrlb,按下shift?。就是说ctrl+b按下之后松开再按其他的键,需要按shift的不能省略。

    下面以刚才的例子介绍常用命令:

    # 查看所有会话
    tmux ls
    # 新建一个名为earor的会话,下面会出现状态栏
    tmux new -s earor
    # 当前窗口名为bash,修改为aeot,此时状态栏左侧显示[earor] 0:aeot* ,0代表第0个窗口
    tmux rename-window aeot
    # 先用快捷键将aeot窗口分成上下两个窗格,快捷键忽略左右两个反引号`
    `ctrl b "`
    # 此时光标在下面的窗格,用快捷键将光标移动到上面
    `ctrl b 上方向键`
    # 继续上部窗窗格分成左右两栏,左边的跑训练任务,右边的显示GPU信息
    `ctrl b %`
    # 右上角GPU信息不需要太大,用快捷键调小一些,第二次按ctrl不松开,可以连续点按方向键
    `ctrl b ctrl 右方向键`
    `ctrl b ctrl 上方向键`
    
    # 创建第二个pugan窗口
    tmux new-window -n pugan
    
    # 用快捷键切换window窗口切换到最后一个会继续循环,从而展示第一个
    ## 向前
    `ctrl b p`
    ## 向后
    `ctrl b n`
    ``
    
    # 然后直接关掉终端窗口或者断网,或者键入如下命令或快捷键,会话状态会由attached变成detached
    tmux detach 
    `ctrl b d`
    # 重新连接earor会话
    tmux attach -t earor
    
    # 如果某个回话中的程序卡住了,可以杀死session
    tmux kill-session -t earor
    

    命令还有很多,不常用的也没提。基本上快捷键都有对应的命令,这篇教程希望能带你入门,详细的功能使用需要自己继续探索。


    效果图

    参考

    1. https://www.atjiang.com/pragmatic-tmux-scripting-customized-envs/

    相关文章

      网友评论

          本文标题:tmux教程

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