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

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

你可能知道nohub XXX &,setsid XXX,disown,甚至于你也用过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 一份源码

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步骤。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180921A0TLV900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券