澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站:运转基础工具tmux介绍及

效率为王:终端管理工具 Tmux,为王tmux

本文来自作者 woosley 在 GitChat 上分享 「效率为王:终端管理工具 Tmux」,「阅读原文」查看交流实录。

澳门新浦京娱乐场网站,「文末高能」

编辑 | 哈比


终端复用软件Tmux使用

Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。

安装

可以使用Ports安装tmux,位置在/usr/ports/sysutils/tmux/;tmux仅有一个依赖包libevent,位于/usr/ports/devel/libevent/。

安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。

tmux使用C/S模型构建,主要包括以下单元模块:

server 服务器。输入tmux命令时就开启了一个服务器。
session 会话。一个服务器可以包含多个会话。
window 窗口。一个会话可以包含多个窗口。
pane 面板。一个窗口可以包含多个面板。

操作

类似各种平铺式窗口管理器,tmux使用键盘操作,常用快捷键包括:

Ctrl b

激活控制台;此时以下按键生效

系统操作

?

列出所有快捷键;按q返回

d

脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话

D

选择要脱离的会话;在同时开启了多个会话时使用

Ctrl z

挂起当前会话

r

强制重绘未脱离的会话

s

选择并切换会话;在同时开启了多个会话时使用

:

进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器

[

进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出

~

列出提示信息缓存;其中包含了之前tmux返回的各种提示信息

窗口操作

c

创建新窗口

&

关闭当前窗口

数字键

切换至指定窗口

p

切换至上一窗口

n

切换至下一窗口

l

在前后两个窗口间互相切换

w

通过窗口列表切换窗口

,

重命名当前窗口;这样便于识别

.

修改当前窗口编号;相当于窗口重新排序

f

在所有窗口中查找指定文本

面板操作

将当前面板平分为上下两块

%

将当前面板平分为左右两块

x

关闭当前面板

!

将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板

Ctrl 方向键

以1个单元格为单位移动边缘以调整当前面板大小

Alt 方向键

以5个单元格为单位移动边缘以调整当前面板大小

Space

在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled

q

显示面板编号

o

在当前窗口中选择下一面板

方向键

移动光标以选择面板

{

向前置换当前面板

}

向后置换当前面板

Alt o

逆时针旋转当前窗口的面板

Ctrl o

顺时针旋转当前窗口的面板

配置

tmux的系统级配置文件为/etc/tmux.conf,用户级配置文件为~/.tmux.conf。配置文件实际上就是tmux的命令集合,也就是说每行配置均可在进入命令行模式后输入生效。

下面是一个~/.tmux.conf的示例,其中包括了一些常用的配置:

#此类配置可以在命令行模式中输入show-options -g查询
set-option -g base-index 1                        #窗口的初始序号;默认为0,这里设置为1
set-option -g display-time 5000                  #提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000                    #控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒
set-option -g status-keys vi                      #操作状态栏时的默认键盘布局;可以设置为vi或emacs
set-option -g status-right "#(date %H:%M' ')"    #状态栏右方的内容;这里的设置将得到类似23:59的显示
set-option -g status-right-length 10              #状态栏右方的内容长度;建议把更多的空间留给状态栏左方(用于列出当前窗口)
set-option -g status-utf8 on                      开启状态栏的UTF-8支持

#此类设置可以在命令行模式中输入show-window-options -g查询
set-window-option -g mode-keys vi    #复制模式中的默认键盘布局;可以设置为vi或emacs
set-window-option -g utf8 on        #开启窗口的UTF-8支持

#将激活控制台的快捷键由Ctrl b修改为Ctrl a
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix

#添加自定义快捷键
bind-key z kill-session                    #按z结束当前会话;相当于进入命令行模式后输入kill-session
bind-key h select-layout even-horizontal    #按h将当前面板布局切换为even-horizontal;相当于进入命令行模式后输入select-layout even-horizontal
bind-key v select-layout even-vertical      #按v将当前面板布局切换为even-vertical;相当于进入命令行模式后输入select-layout even-vertical

更多

tmux的手册非常详尽,请输入man tmux后阅读。

tmux 1.8 发布,Linux 终端复用器

Tmux:终端复用器

本文永久更新链接地址:

Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终...

一、tmux是干什么的?

简介

Tmux 是一款非常实用的终端复用器,用来管理一个终端窗口中运行的多个终端会话。它通过会话,窗口,面板的形式高效且有序的管理你所有的工作终端。

此外,它还可以通过将终端会话置于后台运行,在需要时按需接入,以及将会话共享给其他人,是远程办公和结对编程的利器。无论是前端还是后端开发工程师,运维人员,都值得将其加入个人的日常工具列表。

title: Tmux
date: 2016-05-27 20:48:52
tags: kali系统配置

      百度百科的解释很到位:tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件。

安装

在 MacOs 下,安装 tmux 非常简单,使用 homebrew 便可以安装最新的版本:

brew install tmux

对于 Linux,大部分发行版都有打包 tmux,可以通过包管理器安装,比如在 Ubuntu 下,可以使用 apt 安装。

apt install tmux

在 windows 下想使用 tmux 有两种方法:

  • window10 加入了 linux 子系统的功能,用户可以在 windows 下使用 Ubuntu linux。安装 tmux 的方法和原生 Ubuntu 完全一样;

  • 对于 windows7 以及更加古老的版本,个人推荐使用 Cygwin,这是一个在 windows 下模拟 linux 的工具,提供了大部分 *nix 软件的安装,里面就包括了 tmux。


      说白了就是复用软件,复用的什么软件呢? 你可以理解成复用shell。

初次使用

初次使用 tmux,只需要在终端下面键入命令:

tmux

默认情况下会启动一个新的会话(session)。这时候窗口显示如下:

可以看到 Tmux 在默认终端上面启动了一个新的界面。包括原来的 shell 窗口和下方的状态栏。

状态栏显示了当前 tmux session 的基本信息。

  • [0] 代表当前 session 的名字;

  • 0:bash 代表当天 session 的第一个窗口,名字为 bash;

  • 其他部分为当前主机名,以及当前时间。

作为一款基于终端的工具,tmux 所有的操作都使用键盘快捷键来进行,熟悉了 tmux 的快捷键之后,我们可以把自己的双手从鼠标完全解放出来,对提高工作生产力有极大的作用。

tmux 的快捷键使用 Prefix key 的形式。如果使用过 Gnu screen,那么对这种模式应该很熟悉,不同的是,Gnu screen 默认的 prefix 是 ctrl a,而 tmux 的默认快捷键是 ctrl b,按键方法为同时按下 ctrl 键 和 b 键。这个组合是可以定制的,在本文中,我们用 prefix 来代表这个按键组合。

现在我们可以使用快捷键创建一个新的窗口,按下 prefix c(同时按下 Ctrl

  • b,放开,然后按下 c)。

效果如下图所示:

此时整个窗口没有太大的变化,只是下面的状态栏多了一个 1:bash,表示当前启动了两个窗口。

现在可以试着按下 prefix n,看 tmux 如何在不同的窗口间转跳。

0x00 什么是Tmux?

Tmux是一个工具,用于在一个终端窗口中运行多个终端会话,不仅如此,我们还可以通过Tmux是终端会话运行于后台或者是按需接入,断开会话。

Tmux使用C/S模型构建,主要包括以下单元模块:

  • server服务器。输入tmux命令时就开启了一个服务器。
  • session会话:一个服务器可以包含多个会话
  • window窗口:一个会话可以包含多个窗口。
  • pane面板:一个窗口可以包含多个面板。

      另一个作用就是,比如说你通过ssh连接到远程的服务器,正在scp一个很大的文件,但是传了一般,电脑掉电了,这是后怎么办?你只能重新传输,但是tmux就不需要,你可

服务器和会话

tmux 本质上可以说是一个服务器,当 tmux 命令运行的时候,后台运行了一个 tmux 服务,并启动一个会话,会话和服务器之间通过 Unix socket 来通信。

默认情况下启动的 tmux 会话通过数字命名,比如第一个会话为 0。可以通过:

tmux new -s session_name

来创建一个命名的 tmux 会话,比如tmux new -s test。启动会话之后,tmux 自动连接到此会话之上。我们可以脱离会话,这样可以将会话里面运行的任务置于后台,在需要的时候重新连接。

脱离会话的快捷键为 prefix d,脱离会话之后系统回到之前的终端。用这种方法,我们可以方便在在远程主机上启动一个长期运行的 tmux 会话,运行我们想长期运行的程序。我们可以用 tmux ls查看当前所有创建的 session,比如:

tmux ls learn: 1 windows (created Sun Dec 17 21:03:20 2017) [80x24] test: 1 windows (created Sun Dec 17 20:59:44 2017) [80x24]

这里我创建了两个 tmux 会话,名字分别为 testlearn

重新连接 tmux 的命名为tmux attach。在没有任何参数的情况下默认连接最新创建的会话。可以添加参数-t $name,连接名字为$name的 tmux 会话。比如tmux a -t learn。同时这里显示了一个 tmux 的小技巧,很多 tmux 的命令可以缩写,这里将 attach 缩写成为了 a。

在 tmux session 里面,可以通过 prefix s选择并快速切换 tmux 会话,如下图所示。tmux 会弹出一个会话的选择列表,可以通过方向键选择我们想打开的会话。

如果在创建了会话之后想重命名当前会话,可以使用prefix $,在底部弹出的输入框里面输入想要的名字即可。这里也可以使用 tmux 的命令模式。按下prefix :,在输入框里输入:rename-session new-session(支持 tab 补全),便可以重命名当前的会话。

注意当服务器重启之后,tmux 的会话信息会丢失。要持久化保存 tmux 会话信息,在本文的 tmux 插件部分会介绍一款简单易用的插件  tmux-resurrect

0x01 Tmux安装

kali中已经默认安装了Tmux,ubuntu下安装指令:apt-get install tmux
安装完成以后直接在shell中输入:tmux便会启动了。


      以通过tmux找到刚才的会话继续执行。

窗口

之前我们演示了如何创建新的窗口,并使用prefix n,表示选择下一个窗口。

在不同窗口之间移动,除了 prefix n之外,还可以用数字键,选择第 N 个窗口,注意 tmux 中窗口的序号是从 0 开始,因此prefix 1表示选择第二个窗口。prefix p表示转跳到前一个窗口。

我们还可以使用快捷键prefix w来弹出一个虚拟的窗口列表,然后使用方向键来选择所需要打开的窗口。

使用prefix ,可以用来重命名当前的窗口,对应的命令模式为rename-window

键入 exit,会退出当前窗口,但是有的时候窗口可能会卡死,此时我们可以使用prefix &,在输入确认之后,强制杀死当前窗口。

0x02 Tmux的快捷键前缀(Prefix)

为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b.


澳门新浦京娱乐场网站:运转基础工具tmux介绍及应用,终端复用软件Tmux使用。      下图1是tmux以后复用shell以后的效果:

面板

窗口可以分割为更小的面板,配合大屏显示器使用,非常有黑客的感觉。首先我们使用:

tmux new -s pane

创建一个新的 session,然后键入prefix %,然后键入prefix ",可以得到如下这样一个被分割的窗口:

当前光标所在的面板被高亮了出来。 我们可以继续键入prefix %prefix "查看继续分割面板的效果。要在不同的面板之间转跳,使用快捷键prefix o。如果要想上下左右的移动到不同的面板,使用快捷键prefix 方向键

在默认情况下,tmux 平均分割一个面板。我们可以通过prefix ctrl 方向键来调整面板的大小。

有的时候我们可能需要将一个面板放大,占满整个窗口。我们可以使用prefix !,将面板转化为一个新的窗口;或者也可以使用prefix z,使当前面板最大化为窗口,并暂时隐藏其他的面板。

强制退出一个面板的快捷键为prefix x

0x03 Tmux的配置文件

每当开启一新的会话时,Tmux都会读取Tmux的配置文件~/.tmux.conf,我们将下面一行加入到配置文件中,这样每次配置完成以后,只需要按下Ctrl-b r就可以重新加载配置并且使新的配置生效,而不用再开启一个新的会话。


      澳门新浦京娱乐场网站 1

小结

会话 窗口 面板的组合是提升我们工作效率的一个强力组合。一个推荐的使用方法为对不同的项目建立不通的会话,使用窗口来分割一个项目里面的不同工作内容,然后使用面板来适用大屏开发。下面的一个截屏是我工作所建立的所有会话列表:

不同的项目被我放到了不同的会话里面,当我需要转跳到某一个项目的时候,使用prefix s转跳到对应会话,之前项目所配置好的环境立刻就恢复了。

0x04 Tmux的特性


图1 tmux运行效果图

tmux 配置

tmux 比 screen 更加流行的一个原因就是在默认配置的情况下它已经足够好用了。当然,我们也可以通过配置文件对 tmux 进行个性化配置。它的默认配置文件为 ~/.tmux.conf,如果需要使用其他的文件,可以使用 tmux -f选项,读入另外一个配置文件。

新建窗格

  • 建立一个新的竖直放置的窗格(paner):
root@jack:~# Ctrl-b %
  • 建立一个水平方向放置的窗格
root@jack:~#  Ctrl-b "
  • 窗格间移动光标,只需按下Tmux的快捷前缀,然后在按下对应的方向键就是了

      左下角:tmux会话名称

默认 prefix

我们可以通过配置文件更改 tmux 的默认 prefix。个人使用的 prefix 为ctrl-z,习惯了 screen 的人可以配置为ctrl-a。这里以ctrl-z为例,用文本编辑器打开~/.tmux.conf,在里面加入内容:

set -g prefix C-z unbind-key C-b

这里 -g表示全局设置,应用于我们创建的所有会话。这是ctrl-b可以被释放出来组合,这里通过unbind-key C-b实现。

要使这个设置生效,我们应该重新加载 .tmux.conf。键入prefix :打开命名模式,在输入框内输入source ~/.tmux.conf。此时我们就可以使用新的 prefix 了。

窗口

在Tmux中,窗口(Windows)是个窗格(paner)容器,你可以将多个窗格放置在窗口中,并根据你的实际需要在窗口中排列多个窗格,也是完全取决于你的需要。

  • 新建一个窗口:
root@jack:~#  Ctrl-b c

若是想要切换窗口只需要按下Ctrl-b然后再按下窗口对应的数字就可以切换了!


      下方中间:当前会话中的tmux窗口,一共有4个,当前用的第4个,并且我在第4个窗口又分屏了3个窗口

快速重载配置文件

修改完配置文件之后再使用命令行模式重载实在太麻烦了,我们可以自定义一个快捷键,简化这个操作。在~/.tmux.conf里面加入:

bind-key r source-file ~/.tmux.conf; display-message "Config reloaded"

我们最后一次使用prefix :   source ~/.tmux.conf的方式重新加载配置文件。之后就可以用prefix r的方式来做这件事了。在 .tmux.conf 中加入。

bind e new-window -n ".tmux.conf" "vim ~/.tmux.conf"

这个prefix e的组合可以让你迅速的打开 .tmux.conf 并进行配置修改,配置完成之后使用 prefix r的方式重新加载,整个操作在几秒内即可完成。

会话

一个 Tmux 会话中可以包含多个窗口。会话功能非常简单易用,例如可以为一个特定的项目创建一个专用的 Tmux 会话。若要创建一个新的会话,只需要在终端运行如下的命令:

tmux new <name-of-my-session>

在 Tmux 的会话间切换,若要获取现有会话的列表,可以按下Ctrl-b s,列表中的每个会话都有一个 ID,该 ID 是从 0 开始的。按下对应的 ID 就可以进入会话。如果你已经创建了一个或多个会话,但是还没有运行 Tmux,那么可以输入如下命令以接入已开启的会话。tmux attach


      右下角:当前日期

更改默认序号

由于 tmux 的窗口和面板默认序号都是从 0 开始,我们可以更改这个设置,使默认序号从 1 开始。

set -g base-index 1         setw -g pane-base-index 1

澳门新浦京娱乐场网站:运转基础工具tmux介绍及应用,终端复用软件Tmux使用。0x05 Tmux快捷键

快捷键前缀 Ctrl b 激活控制台
系统操作 列出所有快捷键;按q返回
系统操作 d 脱离当前会话;这样可以暂时返回shell,输入tmux attach能够重新进入之前的会话
系统操作 D 选择要脱离的会话,在同时开启了多个会话时使用
系统操作 Ctrl z 挂起当前会话
系统操作 s 选择并且切换会话,在同时开启了多个会话时使用
系统操作 : 进入命令行模式,此时可以输入支持的命令,比如kill-server
系统操作 [ 进入复制模式,此时操作与vi相同,q/Esc退出
系统操作 列出提示信息缓存,其中包含了之前tmux返回的各种提示信息
--- --- ---
窗口操作 c 创建一个新窗口
窗口操作 & 关闭当前窗口
窗口操作 数字 切换到指定窗口
窗口操作 p 切换到上一个窗口
窗口操作 n 切换到下一个窗口
窗口操作 l 在前后两个窗口间相互切换
窗口操作 w 通过窗口列表切换窗口
窗口操作 ' 重命名当前窗口,便于识别
窗口操作 . 修改当前窗口编号,相当于重新排序
窗口操作 f 在所有窗口中查找指定文本
--- --- ---
面板操作 " 将当前面板分为上下两块
面板操作 % 将当前面板分为左右两块
面板操作 x 关闭当前面板
面板操作 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
面板操作 Ctrl 方向建 以一个单元格为单位移动边缘以调整当前面板的大小
面板操作 Alt 方向键 以五个单元格为单位移动边缘以调整当前面板大小
面板操作 q 显示面板标号
面板操作 o 在当前面板中选择下面板
面板操作 方向键 移动光标以选择面板
面板操作 { 向前置换当前面板
面板操作 } 向后置换当前面板

本文参考来自:http://blog.jobbole.com/87584/

  二、如何安装tmux

更改分割面板的快捷键

tmux 垂直和水平分割面板的快捷键分别为prefix %prefix "。这两个按键比较难记忆,我们可以将其更改为prefix |prefix -。将以下配置加入 ~/.tmux.conf

bind-key | split-window -h bind-key - split-window

      tmux是支持MAC和linux系统的,因为我没用过MAC所以本文只涉及Linux相关

更改面板间移动的快捷键

大部分键盘操作工具,比如 vim,都使用jkhl来进行上下左右的移动操作。我们可以将面板间移动的操作绑定到对应的按键。配置如下:

bind-key l select-pane -R bind-key h select-pane -L bind-key j select-pane -D bind-key k select-pane -U

      在linux中可以直接使用下面命令安装:

面板大小调整

我们用类似移动键的方式来进行面板的大小调整。将快捷键重新定义为 JKHL。配置如下:

bind-key L resize-pane -R 5 bind-key H resize-pane -L 5 bind-key K resize-pane -U 5 bind-key J resize-pane -D 5

      $ sudo yum install tmux -y

鼠标模式

鼠标模式有时候也可能非常有用,比如你可能想用鼠标来选中一个面板或者窗口,用鼠标调整面板大小,或者用鼠标滚轮来向上滚动浏览历史。

开启 / 关闭鼠标模式的配置为 set -g mouse on/off,需要在命令模式下敲入这串字符。我们可以更进一步,通过绑定到快捷键prefix m来触发鼠标模式的开关。配置如下:

bind m run 'old=$(tmux show -gv mouse);new=""; if [ "$old" = "on" ]; then new="off"; else new="on"; fi; tmux set -g mouse $new; tmux display "mouse: $new"'

注意这是一行配置,细心的读者可能已经发现,这其实是一段shell脚本,在鼠标模式关闭的情况下打开它,反之亦然。

  三、tmux详细介绍

状态栏的配置

默认 tmux 的状态栏是窗口下方的一段绿色长条,如下图:

它分为三个部分:

  • 最右边的会话名字;

  • 中间的窗口列表;

  • 左边的主机信息。

这些显示的信息,以及字体前景色,背景色都是可以灵活配置的。开源的好处就是社区已经有许多成熟的解决方案,这里面最受欢迎的是 powerline。

powerline 用 Python 编写,安装使用 Python 的包管理工具pip

pip install powerline-status

此外我们还需要安装 powerline 使用的字体,可以在 下载并安装。

对 tmux 使用 powerline,只需将如下配置加入 .tmux.conf,prefix r重新加载即可:

source "{repository_root}/powerline/bindings/tmux/powerline.conf"

其中 repository_root 是 powerline 的安装路径。以下是作者安装 powerline 之后状态栏的一个截屏:

      1. tmux配置文件

复制模式

tmux 初学者经常遇到的一个问题就是发现无法使用滚动键向上滚动查看终端的历史。要做到这一点,必须进入 tmux 的复制模式。

按下prefix [,tmux 就进入了复制模式,再按回车键退出。默认情况下 tmux 保存 1000 行终端历史。我们可以通过。

set -g history-limit 10000

调整历史记录大小。

tmux 复制模式可以使用两种键盘模式,Vi 和 Emacs,默认为 Emacs,我们通过:

set -g mode-keys vi

更改为 Vi 的键盘模式。在 Vi 模式下,可以通过 jkhl 来上下左右移动光标。

要复制文本,我们先进入复制模式,将光标移动到指定位置,按下空格键,然后移动光标来选择文本,被选择的文本会高亮显示,最后按回车键,表示选择完毕。

此时敲入命令tmux list-buffer,我们可以看到 tmux 缓存区保存的文本,使用tmux paste-buffer或者快捷键prefix ]可以粘贴缓存区里面的内容。

更加高级的是 tmux 维护一个缓冲区的栈,每复制一次,tmux 在这个栈顶部创建了一个新的缓冲区。现在我们可以多复制几次文本,然后键入命令tmux list-buffers,这时可以看到一个缓冲列表。

再敲入命令tmux choose-buffer,tmux 会创建一个选择框,我们可以选择需要粘贴的文本,然后回车,对应文本就插入到了光标位置。

vim 用户可以重新配置这些命令和快捷键,让使用起来更加熟悉。

bind-key -Tcopy-mode-vi 'v' send -X begin-selection bind-key -Tcopy-mode-vi 'y' send -X copy-selection unbind p bind p paste-buffer bind b choose-buffer

现在在复制模式下可以使用 v 和 y 来选择文本,使用prefix p粘贴文本,使用prefix b来选择缓冲(将 prefix 设置成为 ctrl b 的用户可自行选择其他快捷键)。

      每当开启一个新的会话时,Tmux 都会先读取 ~/.tmux.conf 这个文件。该文件中存放的就是对 Tmux 的配置。

其他配置

为了使 tmux 更好的工作,作者在这里还贴出一些其他的 tmux 基本配置。

set -g default-terminal "screen-256color" # 颜色支持 setw -q -g utf8 on       # utf8 支持 set -q -g status-utf8 on # tmux < 2.2 setw -g automatic-rename on # 自动重命名窗口 set -g renumber-windows on  # 关闭窗口的时候重新计算窗口 index set -g display-time 4000 # tmux 消息提示时间为 4 秒

         我使用的详细配置如下(为了你们方便粘贴我就不截图了):

session 共享和结对编程

目前很多企业都在推行结对编程,两个人同一工作台前开发软件。当开发人员在同一个办公室的情况下,实施结对编程比较简单,但是如果开发人员处于异地的状态,实施结对编程就必须有屏幕共享的软件。

而 tmux 基于终端的会话共享可以在即使网络状况不佳的情况下提供良好的结对编程体验。

我们先来看一下最基本的会话共享机制。

假设有主机 Foo,程序员 A ssh 连接到了这台主机,并使用 tmux 开始了会话 pairing。

tmux new -s pairing

A 想把这个会话共享给开发人员 B,那么他只需要让 B 登录同一台主机的同一个用户,B 就可以用命令。

tmux attach -t pairing

attach 到同一个会话。此时 A 和 B 看到的就是同一会话的统一窗口,两人的操作也会完全同步到各自的屏幕上。

这种方法一个不那么完美的地方就是 A 和 B 看到的屏幕永远是完全一致的,有的时候我们可能需要让 A 和 B 能够同时做不同的事情,同步窗口的结果但不必保持窗口显示的同步。要做到这一点,只需要 B 使用命令:

tmux new -s test -t pairing

创建一个新的会话并将其加入到 pairing 会话即可。这样 A 和 B 看到的窗口结果是一样,但是两人都可以独立输入而不会互相打扰。

如果想在不共享服务器的登录权限的情况下共享 tmux 会话,可以尝试使用 tmate。它是一款 tmux 的 fork,可以在无需登录主机的情况下只读的共享你的 tmux 会话。详细使用读者可以自行参考相关网站。

          set -g utf8 on
          # make tmux display things in 256 colors
          set -g default-terminal "screen-256color"
          unbind C-b
          set -g prefix C-b  #设置tmux命令前缀
          # start selecting text typing 'v' key (once you are in copy mode)
          bind-key -t vi-copy v begin-selection
          # copy selected text to the system's clipboard
          #bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
          setw -g mode-keys vi
          #set-option -g default-command "reattach-to-user-namespace -l bash"
          #bind a reload key
          bind R source-file ~/.tmux.conf ; display-message "Config reloaded.."
          # set scrollback history to 10000 (10k)
          set -g history-limit 10000
          set -g base-index 1
          set -g status-fg white
          set -g status-bg black
          set-option -g status-justify centre
          # 左下角
          set-option -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
          set-option -g status-left-length 20
          #窗口列表
          setw -g automatic-rename on
          set-window-option -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
          set-window-option -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'
          #右下角
           set -g status-right '#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]'

插件管理

tmux 官方支持一系列的插件,可以在 找到。注意大部分插件都需要 tmux 1.9  版本。

      2. 如何启动tmux?

tpm

首先需要提及的是插件管理工具 tpm,它可以用来方便的安装和删除插件。安装 tpm 的方法为

git clone ~/.tmux/plugins/tpm

在 ~/.tmux.conf中加入这些配置:

#tmux 插件列表 set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' #将这一行插入 .tmux.conf 最底部 run '~/.tmux/plugins/tpm/tpm'

然后使用prefix r重新加载 tmux 配置,就可以使用 tmp 了。

当在 .tmux.conf 里面加入了新的插件时,我们可以使用prefix I安装插件,使用prefix U更新插件。删除插件的快捷键为prefix alt u

         $ tmux 回车就启动,看到屏幕上出现图1中的效果

会话保持:tmux-resurrect

tmux-resurrect 是一款轻量级的会话保持插件。它可以用来在服务器重启之后重新加载之前保存的 tmux 会话。

安装 tmux-resurrect,首先将 set -g @plugin 'tmux-plugins/tmux-resurrect'加入到 .tmux.conf 中,然后按prefix I安装。

保存 tmux 会话的方法为prefix C-s。保存成功之后会出现如下提示

此时我们如果重启机器,然后打开一个新的 tmux 会话,那么可以使用快捷键prefix C-r恢复保存的会话信息。

tmuxinator 是另外一款 tmux 的会话保持工具,它通过编辑和读取配置文件的形式进行会话的保持。这里留给读者自行参考。

  

结束语

到此为止,本篇关于 tmux 的介绍就结束了。正如文章开头所说,tmux 可以大幅度的提高工作效率,希望读者都能喜爱上这一款优秀的终端管理工具。

      3. tmux快捷键介绍

文中提及的网站

homebrew:

Cygwin:
powerline:
tmate:
tpm:
tmux-resurrect:
tmuxinator:

近期热文

《谈谈源码泄露 · WEB 安全》

《用 LINQ 编写 C# 都有哪些一招必杀的技巧?》

《机器学习面试干货精讲》

《深入浅出 JS 异步处理技术方案》

《敏捷教练 V 形六步法实战:从布朗运动到深度协作》

《从零开始,搭建 AI 音箱 Alexa 语音服务》

《修改订单金额!?0.01 元购买 iPhoneX?| Web谈逻辑漏洞》


「阅读原文」看交流实录,你想知道的都在这里

          这一步的前提是你启动了tmux,另外就是在tmux命令必须有一个前缀,默认是ctrl b,当前如果你觉得不方便可以在配置文件中更改。

          ctrl b 以前按然后松手 按 s,会显示所有的会话。

          c  创建一个新的窗口,你会发现图一中下面中部列表中多了一个。

          n  显示下一个窗口

          p  显示上一个窗口

          w  列出所有窗口,可以通过方向键控制,回车进入相应的窗口

          % 竖列开一个窗口

          "   水平开一个窗口

          ctrl d 退出当前窗口, 这个不需要加命令前缀

          下面的命令是查看历史输出:

          前缀命令后 PageUp 或者 [

           

          此时屏幕右上角会显示[33/144],表示一共有144行输出,目前光标在第33行

          进入这个模式可以使用v选择,y复制,h、j、k、l进行移动光标。(当然这是在配置文件中加入了配合才有的)

          最后用q退出。

 

          最后一个是创建一个新会话:

          在终端输入 tmux -s new <session-name>

          

          差不多就这些了,用起来很方便,比如说一个将屏幕作用用来vim编辑脚本,右边窗口调用脚本看输出结果,这样就不用来回切换了,很省事。

 

          更多详情参考:

          

      

 

本文由澳门新浦京娱乐场网站发布于服务器,转载请注明出处:澳门新浦京娱乐场网站:运转基础工具tmux介绍及