跳到主要内容

GNU Screen 的基础使用

· 阅读需 3 分钟
Hanasaki
阿巴阿巴阿巴

又到了寒假,又到了容易忘记打卡的时候,在学校宿舍还可以有人吆喝一声记得打卡,到了家里如果遇上忙的东西搞到半夜,然后倒头就睡,第二天就只能手写检讨了。我是绝不会让这种情况发生的!!

之前在 GitHub Action 上用着也一直不顺,也不知道是他服务器的问题还是咋,总遇到ETIMEOUT 的问题,可能他网络全天处于高峰期吧,不过没事,本白嫖怪办法多的是~

直接在服务器上部署吧,相信用腾讯的服务器不会网络超时的!

GNU Screen 的安装

Screen 顾名思义和窗口有关,实际上就是命令行版本的Windows资源管理器,管理着窗口的创建、连接、分割、隐藏、后台运行等。

当前环境:

  • Ubuntu 21.04
  • Nodejs 17.3

运行 sudo apt install screen 安装,一步到位。

常用命令

查看 Screen 版本

screen --version
输出
Screen version 4.08.00 (GNU) 05-Feb-20

创建并进入一个名称为MySession的会话

screen -S MySession

暂时离开会话

离开当前会话并不会影响程序的运行,离开前是怎么运行的离开后仍然怎么运行,只是在后台你看不见而已。

在当前会话按下 Ctrl+A+D 就可以离开。

列出所有会话

screen -ls
输出
There is a screen on:
1957807.MySession (01/03/2022 03:23:29 PM) (Dettached)
1 Socket in /run/screen/S-cxOrz.

Attached状态说明已连接到会话,Dettached则是暂时离开了会话。

连接到离开的会话

此时 MySession 状态为 Dettached ,处于离开的状态。

screen -r MySession

该命令重新连接到了这个会话,状态变为 Attached,现在终端的内容恢复到了离开时的模样。

断开会话

有时操作不当,会离开了会话,但是它还是Attached状态的(假设MySession),这时就需要以下命令来断开:

screen -d MySession

杀死或退出会话

杀死或退出会话后,再使用 screen -ls 将看不到它

screen -S 会话名 -X quit

Screen 官方使用手册

Screen User’s Manual