如何从终端分离屏幕会话?

man*_*k13 195 command-line gnu-screen

我知道如何启动一个screen,以及如何列出不同的屏幕:

screen -ls
Run Code Online (Sandbox Code Playgroud)

或附上:

There are screens on:
        2477.pts-0.server1      (Detached)
        2522.pts-0.server1      (Detached)
2 Sockets in /var/run/screen/S-root.

$ screen -r 2477.pts-0.server1
Run Code Online (Sandbox Code Playgroud)

但是从屏幕会话中分离并保持运行的组合键是什么?

小智 243

Ctrl+a后跟d. 注意小写。[screen联机帮助页] 在“默认键绑定”下有一长串这些快捷方式。

  • 我认为您的意思是 <kbd>Ctrl-A<kbd> <kbd>d</kbd>(小写)。大写字母 (`D`) 是 'powerdetach'。 (14认同)

ken*_*orb 66

要列出您的会话,请运行:

screen -list
Run Code Online (Sandbox Code Playgroud)

您可以在 screen 命令下运行任何命令,例如:

screen myscript.sh
Run Code Online (Sandbox Code Playgroud)

然后按Ctrl+ a(释放)然后d分离进程/屏幕(这样它会继续运行)。


要恢复分离的进程,请使用:

screen -r
Run Code Online (Sandbox Code Playgroud)

如果您有多个,则在此之后添加会话编号。


您还可以通过 重新附加到已经Attached筛选screen -x。用于调查为什么它被附加,与某人共享终端或观看/检查某人他们在做什么。


如需更多帮助,请运行man screen或在屏幕内按Ctrl+ a,松开,然后点击?查看更多快捷方式。

也可以看看:


rwc*_*rwc 11

您可能会在 screen 手册页中看到它是这样列出的:

^a - d
Run Code Online (Sandbox Code Playgroud)

重要的是要注意大写和小写字母的大小写将执行不同的功能。


小智 7

使用以下命令创建屏幕: screen -S testscreen

使用以下命令列出屏幕:screen -ls

使用以下命令连接屏幕:screen -r testscreen

使用此命令附加多用途屏幕(如果其他屏幕已附加同一屏幕):screen -x testscreen

使用以下命令分离屏幕:screen -X detachCtrl+a+d

使用以下命令关闭屏幕:screen -XS testscreen kill

使用以下命令终止连接的屏幕:Ctrl+d


Arc*_*ege 5

某些系统默认删除某些绑定。所以最好看一下在线键绑定页面:Ctrl-a ?。您还可以在screen: 中使用命令提示符Ctrl-a :detach。我自己通常会删除 'detach' 和 'powerdetach' 的键绑定,远程系统除外。