引入
深度学习经常需要比较长的时间执行,且有时我们想要执行比较费时的命令时,只能一直开着终端。当我们关闭终端的时候就会杀死当前执行的进程,所以当有时我们需要关闭终端时就会有顾虑。实际上我们可以使用nohup
命令开启守护进程,但是使用起来不太方便。而tmux凭借其强大且方便的特性,是替代nohup
的不二之选。
Tmux简介
Tmux 是 Terminal Multiplexer 的简称,它是一款优秀的终端复用软件,类似 GNU screen,但比screen更出色。tmux来自于OpenBSD,采用BSD授权。使用它最直观的好处就是, 通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机, 还有一个好处就是当终端关闭后该shell里面运行的任务进程也会随之中断,通过使用tmux就能很容易的解决这个问题。
Tmux 可用于在一个终端窗口中运行多个终端会话。不仅如此,还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话,这个功能非常实用。
安装
# Ubuntu 或 Debian
$ sudo apt-get install tmux
简单使用
# 创建一个新会话,并且指定名字
$ tmux new -s [name]
# 退出当前会话,回到之前的bash中
$ tmux detach
# 回到指定名称的会话中
$ tmux attach -t [name]
# tmux ls命令可以查看当前所有的 Tmux 会话。
$ tmux ls
maskvrd: 1 windows (created Mon Nov 20 19:56:58 2023) [176x48]
# 删除指定名称的会话
$ tmux kill-session -t [name]
# 在当前会话中切换到另一个会话
$ tmux switch -t [another name]
# 重命名会话
$ tmux rename-session -t [old name] [new name]
如果在执行的任务中,无法输入命令离开tmux界面,可以使用快捷方式ctrl+b进入tmux的命令模式,再使用d退出当前Tmux窗口。即先按下,ctrl+b,再按下d(detach)
复杂用法
ctrl + b 控制模式下
按下ctrl + b
进入控制模式,退回编辑模式,可以随便输入一个命令,如空格,就可以什么也不执行,并退回到编辑模式下
在控制模式下,按下
[
阅读模式,可以查看历史的终端输出
按下d
之后可以退出
窗口操作
参考
- https://zhuanlan.zhihu.com/p/98384704
- https://www.51cto.com/article/664989.html
- https://blog.csdn.net/Castlehe/article/details/114285635
- https://gist.github.com/ryerh/14b7c24dfd623ef8edc7
- https://pengfeixc.com/blogs/developer-handbook/tmux.html
- https://z.itpub.net/article/detail/C59A269E832907CB638881D21A64E135
- https://blog.csdn.net/sinat_30618203/article/details/107831970