tmux

一种终端复用工具,是终端中的窗口管理器。另一种用途是在关闭父shell时保持程序运行(常用于ssh访问断开连接后保持运行)。windows上借助cygwin也可以使用。[1]

基本操作

  1. 创建一个session

    tmux new -s myname

  2. 连接到运行中的session

    tmux a -t myname          # -t 通过名称,可以是名称前缀,如my; a 可以写成全称 attach
    tmux a 4 # 通过数字id
  3. 销毁session

    tmux kill-session -t myname

  4. 列出session

    tmux ls

进入tmux后操作panel和window的操作有:先按prefix(默认的配置是CTRL + b),释放后再按下边的:

Panes

 %                          vertical split
" horizontal split
d detach from session (it keeps running in the background)
x kill pane
Up/Down/Left/Right move between panes
: + resize-pane -D Resizes the current pane down
: + resize-pane -U Resizes the current pane upward
: + resize-pane -L Resizes the current pane left
: + resize-pane -R Resizes the current pane right
: + resize-pane -D 20 Resizes the current pane down by 20 cells

Windows

按键 功能
c 创建create window
w 列出windows
n next window
p previous window
& kill window
, 重命名rename window

翻页及内容搜索

prefix+ PgUp/PgDn 上下翻页, 此时进入scrollback mode, 可以按ctrl-S 进行内容搜索, 搜索到的多个内容按n/N调转到下一个/上一个匹配项(这与vim用法相同) .而 Ctrl-S 是 emacs bindings. 如果将 tmux 设置成了 vim bindings, 进入 copy mode 再用 slash (/) 进行搜索.

状态栏设置

tmux 设置状态栏显示的信息,此处仅显示hostname,运行命令

tmux set -g status-right "#H"

或者在tmux配置文件(~/.tmux.conf)中写入set -g status-right "#H"

引号中还可以是自定义的文字,比如"-------"。

应用场景:一种场景是在Xshell等工具中当命令行中有内容变化时状态图标也会跟着变化,而当tmux的状态栏上时间每分钟发生一次变化时会导致Xshell的状态图标跟着发生变化,并且在用鼠标滚轮向上滚屏看历史输出时也会因为底部状态栏的变化导致视野跳到最后一行。

关闭状态栏:set -g status off

开启状态栏:set -g status on

更多tmux内容,参考

tmate

特性

  1. 远程终端共享(支持ssh和web上的命令行,且有只读模式)
  2. 基于tmux,多路终端复用
  3. 完全开源,支持自己搭建服务器,默认使用tmate.io的服务器

主页 https://tmate.io

如同ssh反向隧道。

简易用法:

tmate # 进入tmux,并创建隧道链接,底部显示链接地址,几秒后消失
tmate show-messages # 显示刚才建立的ssh地址与web地址

后台运行(daemon):

tmate -S /tmp/tmate.sock new-session -d               # Launch tmate in a detached state
tmate -S /tmp/tmate.sock wait tmate-ready # Blocks until the SSH connection is established
tmate -S /tmp/tmate.sock display -p '#{tmate_ssh}' # Prints the SSH connection string
tmate -S /tmp/tmate.sock display -p '#{tmate_ssh_ro}' # Prints the read-only SSH connection string
tmate -S /tmp/tmate.sock display -p '#{tmate_web}' # Prints the web connection string
tmate -S /tmp/tmate.sock display -p '#{tmate_web_ro}' # Prints the read-only web connection string

首先远程端和本地端安装ssh相关工具,使用ssh-keygen产生公钥和私钥(否则会提示Permission denied (publickey)之类的错误)。

screen

GNU Screen 也是一个终端多路复用器(窗口管理器)。GNU Screen 允许我们轻松创建多个 Screen 会话,在不同会话之间切换,在会话之间复制文本,随时连上或脱离会话等等。

由于tmux可能没有被系统预装,而screen可能被CentOS等系统预装,因此可以临时使用screen命令。在 Screen 中所有命令的默认前缀快捷方式是 Ctrl + a。

创建新的 Screen 会话

screen # 创建会话

screen -S name # 创建命名会话,id.name

列出屏幕会话

screen -ls # 列出所有Detached和Attached会话

连上 Screen 会话

如果你想连上会话,例如 29415.ostechnix,只需运行:

screen -r 29415.ostechnix	# 全名
screen -r 29415 # 或使用 Screen ID
screen -r ostechnix # 或使用后缀名

从 Screen 会话脱离

要从屏幕会话中脱离,按 Ctrl + ad。类似tmux的操作。

创建嵌套会话

操作类似tmux:

在会话中按 Ctrl + ac 创建另一个会话。只需重复此操作即可创建任意数量的嵌套 Screen 会话。每个会话都将分配一个号码。号码将从 0 开始。

键盘快捷键列表:

Ctrl + a " - 列出所有会话

Ctrl + a 0 - 切换到会话号 0

Ctrl + a n - 切换到下一个会话

Ctrl + a p - 切换到上一个会话

Ctrl + a S - 将当前区域水平分割为两个区域

Ctrl + a l - 将当前区域垂直分割为两个区域

Ctrl + a Q - 关闭除当前会话之外的所有会话

Ctrl + a X - 关闭当前会话

Ctrl + a \ - 终止所有会话并终止 Screen

Ctrl + a ? - 显示键绑定。要退出,请按回车

screen Attached 状态异常[2]

有时候由于正在运行screen的终端异常关闭时,这里列出的会话依然显示Attached。

screen -ls, 显示某会话的当前状态为Attached, 但当前并没有终端连接到这个会话,此时正常状态应该为Detached。此时用screen -r <session-id>,无法attach。原因是screen没有正常detach。

解决方法:screen -D -r <session-id>

-D -r 先踢掉前一用户,再登陆。


  1. http://wiki.fast.ai/index.php/Tmux ↩︎

  2. http://blog.csdn.net/gdali/article/details/72799581 ↩︎

tmux终端复用/tmate终端共享的更多相关文章

  1. (转载)Linux终端复用神器-Tmux使用

    Linux终端复用神器-Tmux使用 转载地址:https://blog.51cto.com/652465/2094738 Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于Open ...

  2. Linux终端复用神器-Tmux使用梳理

    Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“ ...

  3. 终端复用软件 tmux

    Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权. Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键). 技巧 ...

  4. Linux终端复用工具 tmux

    简介 Terminal Multiplexer (From WIKIPEDIA) - A terminal multiplexer is a software application that can ...

  5. 终端复用工具 tmux 基本操作教程

    简介 在 Linux 操作环境下,终端操作是发挥 Linux 强大命令功能的重要途径,但在本地主机操作中,针对不同任务开启不同的终端,在使用时进行频繁的终端切换在某些场合下是一种使人分心和疲惫的操作, ...

  6. [linux] tmux终端复用神器 [转载]

    转载https://www.cnblogs.com/kevingrace/p/6496899.html Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授 ...

  7. [Linux] tmux 终端复用命令行工具

    tmux 终端复用命令行工具 tmux 是一款终端复用命令行工具,通常用于 Terminal 的窗口管理.可以在终端软件重启后通过命令行恢复上次的 session. 安装运行 macOS 上使用 Ho ...

  8. 终端复用工具tmux的使用

    tmux的作用在于终端复用. 1. 在server上启动一个bash.并在里面执行tmux 2. 通过ssh远程登录server,执行tmux attach,就会切换到server上的那个bash中, ...

  9. tmux:终端复用神器

    一.简介与安装 今天无意间从同事那里知道有 tmux 这种神器,tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端(准确说是伪终端).使用该工 ...

随机推荐

  1. # 2017-2018-2 20155319『网络对抗技术』Exp4:恶意代码分析

    2017-2018-2 20155319『网络对抗技术』Exp4:恶意代码分析 实验目标与基础问题 ++1.实践目标++ 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析 ...

  2. Caffe 深度学习框架上手教程

    Caffe 深度学习框架上手教程   blink 15年1月   Caffe (CNN, deep learning) 介绍 Caffe -----------Convolution Architec ...

  3. 搭建django虚拟环境完整步骤

    一.建立虚拟环境 pip install virtualenv 要使用Django,首先要建立一个虚拟工作环境.我们先为项目建立一个文件夹learn,在文件夹中打开命令行(shift+右击),来建立另 ...

  4. Dubbo+zookeeper搭建环境学习笔记

    Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 1.单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本 ...

  5. Asp.Net_<asp:RadioButtonList

       <asp:RadioButtonList runat="server" ID="RadioButtonList1"  RepeatDirection ...

  6. linux/Centos下查看和修改网卡Mac地址(ifconfig命令)

    本文转载自http://www.169it.com/article/14360294838474691537.html linux/Centos下查看网卡Mac地址,输入命令: #ifconfig - ...

  7. 散列(Hash)表入门

    一.概述 以 Key-Value 的形式进行数据存取的映射(map)结构 简单理解:用最基本的向量(数组)作为底层物理存储结构,通过适当的散列函数在词条的关键码与向量单元的秩(下标)之间建立映射关系 ...

  8. Bitcoin挖矿

    目录 为什么要挖矿? 比特币挖矿 为什么要挖矿? 增加恶意行为的成本 增加记账权力,获取相应的奖励 比特币挖矿 每开采210000个区块,挖矿奖励减半 2009年1月-2012年11月,奖励50BTC ...

  9. 《在kali上完成gdb调试》

    kali使用流程 1.使menuos停止 方法如图: 效果如图: 2.启动调试 打开一个新的命令行,然后方法如下图: 3.设置断点 注:由图可看出,断点设置在sys_clone,dup_task_st ...

  10. 第二个spring冲刺第6天

    今天的进展不多,对代码重新进行了整合,看起了比较简洁