美文网首页程序员
Tmux:更优雅的后台任务执行和窗口共享

Tmux:更优雅的后台任务执行和窗口共享

作者: 虫虫搜奇ccsearchit | 来源:发表于2018-09-25 19:36 被阅读14次

    linux下如何将一个进程放入后台执行关闭终端后还不受影响?如何把工作窗口暂时共享给小伙伴做个操作?

    你可能知道nohub XXX &setsid XXXdisown ,甚至于你也用过screen,基本也就是这些。除此之外虫虫再给你介绍一款类似screen,但是更优雅的工具Tmux,可以用做后台任务执行,也特别适合于码农做分屏开发调试,终端共享等。

    关于tmux?

    Tmux是终端多路复用器(terminal multiplexer)简称,是GNU Screen的替代品。我们可以启动Tmux会话,然后在该会话中打开多个窗口,并且分屏形成矩形窗格,执行不同操作。基本操作方式和大家已经熟悉的screen类似,唯一差异是Tmux中的所有命令都以前缀ctrl + b开头。相对比screen是ctrl + a

    Tmux的安装

    包管理器安装

    可以使用各大linux发行版的软件包管理器一键安装Tmux。

    Debian系和Ubuntu:

    sudo apt install tmux

    Redhat系包括CentOS

    yum install -y tmux

    在macOS上安装Tmux

    brew install tmux

    源码安装

    Tmux也支持源码安装,具体方法:

    Tmux源码依赖libevent 2.x和ncurses需要提前安装。然后从Tmux源码仓(github: tmux/tmux)clone 一份源码

    git clone github:/tmux/tmux.git

    cd tmux

    sh autogen.sh

    ./configure && make

    Tmux使用方法

    开启Tmux 会话

    要启动Tmux会话很简单,只需在控制台中键入tmux。

    tumx

    就会打开一个新会话,会话包括一个新窗口并自动启动一个shell。

    进入Tmux后,会在屏幕底部看到状态行,会显示有关当前会话的信息。

    现在可以运行第一个Tmux命令。

    例如,要查询tumx所有命令的列表:

    Ctrl + b ? (先按ctrl+b,然后输入?)

    创建命名Tmux会话(tmux new -s session_name)

    默认Tmux会话以数字命名。当运行多个tmux会话时,为了管理方便,可以在启动时候添加名称参数,给会话命名。要创建一个命名会话,使用-s参数运行:

    tmux new -s session_name

    比如命名一个名为chongchong的会话

    注意命令会话窗口下面状态栏,显示已经为"chongchong"了。

    暂退Tmux会话(Ctrl + a d)

    可以通过键入以下命令从Tmux会话中暂退并返回到正常的shell:

    Ctrl + a d

    从会话中暂退后,在Tmux会话中运行的程序将继续运行。

    也可以通过直接用鼠标关闭到整个终端窗口,这时,tmux所在的shell进程会消失。但是tmux会话不受影响,继续任务执行,也是暂退状态。

    注意要退出tmux,直接exit或者ctrl+d,就会退出tmux,返回原shell,这和一半的shell操作一样。

    返回Tmux会话(tmux attach-session)

    如果要返回Tmux会话,你需要指定会话的名称。如果你不指定会话名,tmux会返回到你最近使用的一个会话,这个有点智能,比screen强,screen -r只能返回有一个会话的,而tmux attach-session多个会话,不指定也可以。

    要返回到会话"chongchong",键入:

    tmux attach-session -t chongchong

    获取Tmux会话列表(tmux ls)

    要获取当前运行所有会话的列表,使用命令

    tmux ls

    列表入下图所示:

    输出的第一列为会话的名称(比如0,2,chongchong);第二列为窗口数(比如会话0包括3个窗口);第三列为会话创建时间;最后为窗口大小。

    Tmux会话新建窗口(Ctrl + a c)

    默认情况下,启动一个新的tmux会话时,它会创建一个包含shell的窗口。我们可以通过Ctrl + a c新添加一个窗口,并自动其分配0~9数字来表示。可以通过分屏在一个窗口展现,或者通过ctrl+a w 选择切换窗口

    所有窗口的列表显示在屏幕底部的状态行中。

    常见Tmux命令

    Bellow是一些用于管理Tmux窗口和窗格的最常用命令:

    •Ctrl + b c创建一个新窗口

    •Ctrl + b w从列表中选择窗口

    •Ctrl + b 0切换到窗口0(根据编号)

    •Ctrl + b ,重命名当前窗口

    •Ctrl + b %将当前窗格水平分割为两个窗口

    •Ctrl + b"将当前窗格垂直拆分为两个窗口

    •Ctrl + b o转到下一个窗口

    •Ctrl + b ;在当前窗口和上一窗口之间切换

    •Ctrl + b x关闭当前窗口

    自定义配置Tmux(~/.tmux.conf)

    启动Tmux时,会检测用户目录下的如果文件.tmux.conf(~/.tumx.conf),如果存在,则会从该文件读取其配置参数。下面是一个tumx配置文件实例,其中包含自定义状态行和一些其他选项:

    cat ~/.tmux.conf

    # 颜色增强

    set -g default-terminal 'screen-256color'

    # 滚动条为10000行

    set -g history-limit 10000

    # 改变状态行颜色

    set -g status-fg green

    set -g status-bg black

    基本Tmux流程和窗口共享

    以下是开始使用Tmux的最基本步骤:

    1.在命令提示符下,键入tmux new -s my_session,

    2.运行所需的程序。

    3.使用键序列Ctrl-b + d从会话中分离(或者直接鼠标关闭窗口)。

    4.通知小伙伴,用同样账号登陆系统

    5.键入tmux attach-session -t my_session,重新连接到Tmux会话。

    如果自己使用,则用1,2,3,5,如果要和伙伴共享窗口则可以通过 1,2,3,4,5步骤。

    相关文章

      网友评论

      • 3ec27b8a259a:寻找ios马甲包上架大神,有意私聊1916699999

      本文标题:Tmux:更优雅的后台任务执行和窗口共享

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