极客云支持中心

极客云支持中心

  • 去租用主机

›参考资料

入门指引

  • 极客云简介
  • 快速开始
  • 如何使用终端登入云主机(推荐)
  • 使用noVNC登录远程桌面
  • 如何使用Putty登入云主机

教程与案例

  • 使用JupyterLab运行并调试程序
  • 使用PyCharm连接云主机教程
  • 使用VSCode连接云主机教程
  • 使用FileZilla上传或下载数据
  • 使用Tensorboard教程
  • 使用数据迁移功能克隆云主机实例
  • 使用百度网盘备份以及同步您的数据

参考资料

  • Tmux 使用教程
  • 如何加速下载github的项目
  • 常见问题解答(FAQ)

其他

  • 福利 & 活动
  • 旧版帮助文档
  • 联系我们

Tmux 使用教程

如何使用 Tmux 工具管理终端窗口以及在后台执行任务

Tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理。Tmux 拥有如下特性:

  • 可以同时开启多个会话和窗口,并持久地保存工作状态。
  • 断线后任务能够在后台继续执行。


例如,若您需要在 Terminal 中编辑一个文件,同时还需要在 Python 交互环境中执行命令,那么正常情况下您需要开启两个 Terminal。
若您使用 Tmux,则无须开启多个 Terminal,您可使用 session 管理会话和窗口,在多个会话和窗口之间进行切换。

Tmux 还能解决由于断线导致的任务丢失问题。一般的 shell 工具遇到断线,远程任务可能会中止并无法继续,重连后任务需从头再来。而在 Tmux 中运行的命令,会一直保存在服务器上,断线后只需从 Tmux 中恢复该会话,任务仍然在运行。

Tmux 安装

如果您需要使用 Tmux ,可以登录云主机之后,执行下面的指令安装 Tmux。

apt update
apt install tmux -y

我们建议您在本地 SSH 工具中使用 Tmux。不建议在 Jupyter 的 Terminal 中使用,以免因为浏览器限制导致 Tmux 的快捷键无法使用。

使用SSH工具登录云主机的方法,请参考 如何登入云主机。

Tmux 由如下三个基础组成:

  1. Session。即会话,任务通常在 session 中运行,在断开SSH连接后 session 仍会保持。
  2. Window。即窗口,一个会话可以包含多个窗口。可以存在多个窗口。
  3. Pane。即窗格,一个窗口可以包含多个窗格。类似于 Vim 中 ctrl+w 再按 v 后的效果。

使用 Tmux 管理会话

输入命令

tmux

即可进入 Tmux 环境。此时默认开启了一个 session-name 为 0 的 Tmux 会话。

登录指令图片

左下角中括号内的文字就是当前窗口的 session-name。
例如您可以在这个会话中输入 python 命令, 进入Python的交互环境。

登录指令图片

此时如果您和服务器断开连接,tmux 中的任务还会继续保持运行状态。您在重新打开 Terminal 后,输入命令

tmux a -t 0

就可以再次打开刚刚断开的窗口,其中 0 为之前会话的 session-name。
如果您想从该会话中退出,可以输入如下命令:

tmux detach

这时就会回到普通的 Terminal 终端窗口。

此时可以再次输入 tmux 命令开启一个新的会话。Tmux 默认的 session-name 会逐次加1,再次新建的会话默认 session-name 就是 1 了。
如果想指定session的名称方便记忆,可以使用 -s 参数:

tmux new -s [session-name]

例如输入命令:

tmux new -s jky

便会创建一个会话名是 jky 的新会话。

登录指令图片

在普通 Terminal 终端中,可以使用这个指令查看所有的 Tmux 会话:

tmux ls

输出结果如下,有两个会话。
一个是 0 ,另一个是 jky 。
登录指令图片

如果要删除指定会话,在普通 Terminal 终端中,输入命令:

tmux kill-session -t [session-name]


例如我们要删除 0 这个会话,就可以输入:

tmux kill-session -t 0


如果我们要删除所有会话,可以输入:

tmux kill-server


删除后再次执行 tmux ls 命令,会看到已经没有运行中的 Tmux 会话。


如果您需要切换会话,可以输入:

tmux switch -t <session-name>


如果您需要重命名会话,可以输入:

tmux rename-session -t 0 <new-name>

窗口管理

在每个 session 会话中,您都可以开启多个窗口和窗格。
Tmux 为了防止与全局快捷键冲突,大部分快捷键需要先需要输入前缀,默认为 ctrl+b。

注意按完ctrl+b之后需要先放开ctrl+b这两个按键,再单独去按后面的按键。

例如新建窗口,您可以按这个快捷键:

ctrl+b (松开按键) c

就会新建一个窗口。窗口名后面带 * 的就是当前窗口

登录指令图片

关闭窗口,您可以使用:

快捷键:
ctrl+b (松开按键) &

或者执行命令:
exit

列出所有窗口(包含其他Session),您可以使用:

快捷键:
ctrl+b (松开按键) w

搜索窗口,您可以使用:

快捷键:
ctrl+b (松开按键) f

重命名当前窗口,您可以使用:

快捷键:
ctrl+b (松开按键) ,

窗格管理

每个窗口可以被划分为多个窗格。
新建一个水平窗格,您可以使用:

快捷键:
ctrl+b (松开按键) %

登录指令图片

新建一个垂直窗格,您可以使用:

快捷键:
ctrl+b (松开按键) "

登录指令图片

关闭窗格,您可以使用:

快捷键:
ctrl+b (松开按键) x

在窗格间切换,您可以使用:

快捷键:
ctrl+b (松开按键) o

显示窗格编号,您可以使用:

快捷键:
ctrl+b (松开按键) q

切换到新窗口,您可以使用:

快捷键:
ctrl+b (松开按键) !

窗格交换位置,您可以使用:

快捷键:
ctrl+b (松开按键) {
或者
ctrl+b (松开按键) }

Tmux 常用快捷键一览

快捷键功能说明
ctrl+b (松开按键) ?显示快捷键帮助
ctrl+b (松开按键) :进入命令模式
ctrl+b (松开按键) ctrl+z挂起会话,不影响其他命令的运行
ctrl+b (松开按键) ctrl+o调换窗格位置
ctrl+b (松开按键)空格键 采用下一个内置布局
ctrl+b (松开按键) !把当前窗格(pane)变为新窗口(window)
ctrl+b (松开按键) "横向分隔窗格
ctrl+b (松开按键) %纵向分隔窗格
ctrl+b (松开按键) q显示分隔窗格的编号
ctrl+b (松开按键) o跳到下一个分隔窗格
ctrl+b (松开按键) 上下键上一个及下一个分隔窗格
ctrl+b (松开按键) ctrl+方向键调整分隔窗格大小
ctrl+b (松开按键) z最大化当前窗格,再一次则恢复
ctrl+b (松开按键) c创建新窗口
ctrl+b (松开按键) 0~9选择几号窗口
ctrl+b (松开按键) n选择下一个窗口
ctrl+b (松开按键) p选择前一个窗口
ctrl+b (松开按键) l切换到前一个窗口,该快捷键通常会被重定义为符合 vim 下的空格切换
ctrl+b (松开按键) w以菜单方式显示及选择窗口
ctrl+b (松开按键) s以菜单方式显示和选择会话
ctrl+b (松开按键) t显示时钟
ctrl+b (松开按键) ;切换到最后一个使用的面板
ctrl+b (松开按键) x关闭面板
ctrl+b (松开按键) &关闭窗口
ctrl+b (松开按键) d退出 Tmux,并保存当前会话,此时 Tmux 仍在后台运行,可以通过 Tmux attach 进入指定的会话
← 使用百度网盘备份以及同步您的数据如何加速下载github的项目 →
  • Tmux 安装
  • 使用 Tmux 管理会话
  • 窗口管理
  • 窗格管理
  • Tmux 常用快捷键一览
Copyright © 2017-2021 极客云支持中心