Linux screen 命令指南
简介
在使用 Linux 终端时,您有时可能需要同时运行多个进程。但是,如果您关闭终端或意外断开远程会话,进程将终止,您可能会丢失所有进度。这就是 Linux screen 命令派上用场的地方。
Screen 是一款功能强大的命令行实用程序,允许您在一个 shell 窗口或通过 SSH 连接创建和管理多个终端会话。即使您没有物理连接到服务器,它也是管理长期运行的进程或多个命令的便捷工具。
在本文中,我们将讨论 Linux screen 命令的基础知识、其用法以及一些管理终端会话的实用技巧和窍门。
安装 Screen
大多数现代 Linux 发行版都预装了 screen。但是,如果您的系统上尚未安装,您可以使用发行版的软件包管理器来安装它。例如,在 Ubuntu 上,您可以使用以下命令安装它:
sudo apt-get install screen
安装完成后,您就可以开始使用 screen 命令了。
创建新的 Screen 会话
要创建新的 screen 会话,只需键入以下命令:
screen
这将在 screen 会话中启动一个新的 shell 会话。现在,您可以像在普通终端中一样运行任何所需的命令。
从 Screen 会话中分离
要从 screen 会话中分离,您可以按键盘快捷键“Ctrl+A”,然后按“d”。这将分离 screen 会话并返回到 shell 提示符。在 screen 会话中运行的所有进程将继续在后台运行。
重新连接到 Screen 会话
要重新连接到 screen 会话,您可以使用以下命令:
screen -r
这将使您重新连接到最后一个活动的 screen 会话。如果有多个 screen 会话正在运行,您可以指定会话 ID 以重新连接到特定的 screen 会话。
screen -r <session_id>
列出活动 Screen 会话
要列出所有活动的 screen 会话,您可以使用以下命令:
screen -ls
这将向您显示所有活动 screen 会话及其对应的会话 ID 列表。
There are screens on: 1168.pts-0.ip-10-0-0-45 (Detached) 1323.pts-0.ip-10-0-0-45 (Detached) 1343.pts-0.ip-10-0-0-45 (Detached) 3 Sockets in /run/screen/S-ubuntu.
终止 Screen 会话
要终止 screen 会话,您可以使用以下命令:
screen -X -S <session_id> quit
这将向指定的 screen 会话发送“quit”命令,这将终止其内部运行的所有进程。
分割屏幕
screen 命令最有用的功能之一是能够将终端窗口分割成多个区域。在同时处理多个任务时,这尤其有用。
要水平分割屏幕,您可以使用以下命令:
Ctrl+A, |
这会将终端窗口分成两个水平区域。现在,您可以在每个区域运行不同的命令。
要垂直分割屏幕,您可以使用以下命令:
Ctrl+A, S
这会将终端窗口分成两个垂直区域。
在区域之间导航
要导航到不同的区域,您可以使用以下命令:
Ctrl+A, Tab
这将在不同的区域之间切换。
Ctrl+A, <arrow_key>
调整区域大小
您可以使用以下命令调整 screen 不同区域的大小:
Ctrl+A, :resize +<number>
这会将当前区域的大小增加指定的行数。
Ctrl+A, :resize -<number>
这会将当前区域的大小减少指定的行数。
复制和粘贴文本
您可以使用以下命令在 screen 的不同区域之间复制和粘贴文本:
Ctrl+A, [
这将进入复制模式。您可以使用箭头键导航到要复制的文本。
Spacebar
这将开始选择文本。
Enter
这将复制选定的文本。
要粘贴复制的文本,您可以使用以下命令:
Ctrl+A, ]
这将在光标位置粘贴复制的文本。
命名 Screen 会话
您可以使用以下命令为 screen 会话命名,以便于识别:
screen -S <session_name>
这将创建一个具有指定名称的新 screen 会话。
screen -r <session_name>
这将重新连接到具有指定名称的 screen 会话。
Screen 命令的高级用法
除了 screen 命令的基本用法之外,还有许多高级功能可以使您的体验更上一层楼。
使用特定配置创建新会话
您可以使用配置文件创建具有特定配置的新 screen 会话。如果您想自定义新 screen 会话的环境,这将特别有用。
要使用特定配置创建新的 screen 会话,您可以使用以下命令:
screen -c <config_file>
这将使用配置文件中指定的配置创建一个新的 screen 会话。
自定义状态行
您可以自定义 screen 命令的状态行以显示有关当前 screen 会话的信息。这可能包括会话名称、时间和窗口数量。
要自定义状态行,您可以使用以下命令:
Ctrl+A, :hardstatus string '<status_line>'
这会将状态行设置为指定的字符串。
创建和在窗口之间切换
除了将终端窗口分割成多个区域外,您还可以在同一个 screen 会话中创建和在多个窗口之间切换。
要创建一个新窗口,您可以使用以下命令:
Ctrl+A, c
这将在同一个 screen 会话中创建一个新窗口。
要在不同的窗口之间切换,您可以使用以下命令:
Ctrl+A, n
这将切换到下一个窗口。
Ctrl+A, p
这将切换到上一个窗口。
Ctrl+A, <window_number>
这将切换到指定的窗口编号。
向其他窗口发送命令
您可以在同一个 screen 会话中向其他窗口发送命令,而无需切换到它们。
要向另一个窗口发送命令,您可以使用以下命令:
Ctrl+A, :number <window_number> stuff '<command>
'
这会将指定的命令发送到指定的窗口。
监视其他窗口中的活动
您可以在同一个 screen 会话中监视其他窗口中的活动,而无需切换到它们。
要监视另一个窗口中的活动,您可以使用以下命令:
Ctrl+A, :monitor <window_number>
这将开始监视指定窗口中的活动。
要停止监视窗口中的活动,您可以使用以下命令:
Ctrl+A, :monitor off
这将停止监视当前窗口中的活动。
结论
screen 命令是一个功能强大的实用程序,可以在您使用 Linux 终端时让您的生活更轻松。它允许您在一个 shell 窗口或通过 SSH 连接创建和管理多个终端会话。凭借能够将终端窗口分割成多个区域、复制和粘贴文本以及在不同区域之间导航的能力,screen 命令可以帮助您管理长期运行的进程或多个命令,即使您没有物理连接到服务器。
在本文中,我们讨论了 Linux screen 命令的基础知识、其用法以及一些管理终端会话的实用技巧和窍门。我们希望本指南能帮助您在使用 Linux 终端时提高工作效率。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP