linux screen

screen 是一个非常有用的终端管理工具,可以让你在断开连接后继续运行程序,并且支持多个会话和窗口。以下是一些常用的 screen 操作和命令:

启动

screen

指定会话

screen -S my_session

退出 screen 会话但保持进程运行:使用 Ctrl+A 然后按 D 来"detach"(断开)会话。这样你的会话和进程仍然在后台运行,但你可以退出当前终端。

恢复一个 screen 会话: 当你重新连接到服务器时,可以通过以下命令恢复会话:

screen -r

如果有多个会话在运行,可以通过 -r 加会话 ID 或会话名称恢复特定会话:

screen -r my_session

查看当前正在运行的会话

screen -ls

这将列出所有正在运行的 screen 会话以及它们的 ID 和名称。

终止一个 screen 会话:screen 内按下 Ctrl+D 会结束当前会话。如果你只是想退出但不想结束会话,可以使用 Ctrl+A 然后按 D

多窗口操作 #

screen 支持在同一个会话中创建多个窗口,就像在一个虚拟终端中有多个标签页一样。

  1. 创建新窗口:screen 会话中按 Ctrl+A 然后按 C(Create)。这将创建一个新的窗口,并让你在新的终端中工作。

  2. 切换窗口:

    • Ctrl+A 然后按 N,可以切换到下一个窗口。
    • Ctrl+A 然后按 P,可以切换到前一个窗口。
    • Ctrl+A 然后按窗口号(如 012 等)可以直接切换到该窗口。
  3. 查看所有窗口:Ctrl+A 然后按 "(双引号),你将看到一个窗口列表,使用上下箭头选择并回车切换。

  4. 关闭窗口: 在一个窗口中按 Ctrl+D,这将关闭该窗口。


高级操作 #

  1. 重命名窗口:Ctrl+A 然后按 A,你可以为当前窗口设置一个新的名称,便于管理多个窗口。

  2. 屏幕分割: screen 允许你分割屏幕,显示多个窗口。

    • Ctrl+A 然后按 S 来水平分割屏幕。
    • Ctrl+A 然后按 Tab 来切换到下一个区域。
    • Ctrl+A 然后按 C 在新区域中创建一个新的终端。
    • Ctrl+A 然后按 X 来关闭当前分割。
  3. 复制模式: 如果你想复制 screen 内的文本,按 Ctrl+A 然后按 [ 进入复制模式。使用箭头键选择文本区域,按 Enter 复制。然后按 Ctrl+A,按 ] 将复制的文本粘贴到当前窗口。


自定义配置 #

你可以通过编辑 ~/.screenrc 文件来自定义 screen 的行为。常用的配置包括:

  • 设置窗口标题
  • 自定义键绑定
  • 启动时自动创建多个窗口

常用快捷键总结 #

  • Ctrl+A C:新建窗口
  • Ctrl+A N:切换到下一个窗口
  • Ctrl+A P:切换到前一个窗口
  • Ctrl+A D:断开会话
  • Ctrl+A A:重命名窗口
  • Ctrl+A [:进入复制模式
  • Ctrl+A ]:粘贴文本
  • Ctrl+A ":列出所有窗口
  • Ctrl+A S:分割屏幕
  • Ctrl+A Tab:切换分割区域

这些操作让你可以灵活地管理长时间运行的进程,即使你离线或断开连接。你可以随时恢复工作或开启多个终端处理任务。