怎样在带屏幕的 Linux 终端上进行多任务处理

如果您是 Linux 用户,您将不得不在某个时候开始使用 Linux 终端。 一些终端命令可能很流行,而另一些则比较晦涩,但在许多情况下,通过终端窗口运行命令比通过 GUI 运行命令更容易。

但是如果您需要一次运行多个命令会发生什么? GNU Screen 使终端多任务处理变得如此简单; 让我们让您开始使用它。

什么是 GNU 屏幕?

GNU Screen 是 Linux 终端的一种工具,可将一个终端拆分为多个终端。 这意味着您可以运行一个命令,例如

wget

下载一个图像文件,同时切换到运行第二个,例如

systemctl

, 检查驱动器的 SMART 状态。

它允许您在单独的会话中运行像这样的独立命令,您可以随意连接和断开连接。

它不仅对您自己的 PC 有用; 如果您正在管理远程服务器,这几乎是必不可少的。 如果您通过 SSH 在服务器上运行命令,如果断开连接会发生什么? 该命令可能仍在运行,但您将无法轻松监控它或与之交互。

Screen 为您处理这个问题。 如果您失去连接,您可以重新连接到 Screen 会话,或者与它分离并让它在后台运行,直到您需要再次访问它。

怎样安装屏幕

大多数 Linux 发行版都没有提供 Screen,但由于它早于 Linux,因此得到了很好的支持。

如果要在基于 Ubuntu 或 Debian 的发行版上安装它,请运行以下命令:

sudo apt-get update
sudo apt-get install screen

同样,如果您正在运行 Arch,请打开您的 shell 窗口并运行:

sudo pacman -Syu
sudo pacman -S screen

如果您正在使用 Fedora,改为运行:

sudo yum update
sudo yum install screen

启动屏幕会话

启动 Screen 会话很简单。 打开终端,或建立 SSH 连接,然后键入 screen. 您将看到屏幕介绍窗口; 按空格键或回车键 close 它。

完成后,您的终端屏幕将恢复正常。 没有明显的迹象表明您正在运行 Screen 会话,但是您从此时开始运行的每个命令都将在一个会话中运行,您现在可以随意分离并重新附加到该会话中。

查看和分离屏幕

如果您打算再次使用它,您将想知道怎样连接和断开 Screen 会话。 如果您已经在 Screen 会话中,请点击 Ctrl + A 其次是信 d (小写)。

会话和当前在其中运行的任何命令将分离以在后台运行,以便稍后重新连接。 假设您只有一个正在运行的 Screen 会话,请键入:

screen -r

这将重新附加您的会话并允许您继续。 如果您需要远程强制分离会话,然后自己重​​新连接,请键入:

screen -rd

您可以运行多个 Screen 会话。 如果要重新连接到特定会话,则需要找出会话进程 ID 号。 类型

screen -ls

或者

screen -r

列出它们。

如上图所示,输入

screen -r

后跟每个会话开始时的初始 ID 号。 为了 example:

screen -r 25407

如果你想 close 一个会话并取消其中的任何正在运行的命令,重新连接到它并键入

exit

.

要记住的其他屏幕终端命令

Screen 为想要充分利用它的用户提供了一些技巧。 这里有一些最常见的终端命令供您记住。

列出屏幕键盘快捷键

像所有优秀的终端程序一样,Screen 有键盘快捷键供您使用。 你已经在用一个了 Ctrl + A d, 分离现有屏幕。

如果您想查看其余部分,只需键入 Ctrl + A 其次是 ? 给你一个你可以使用的列表。

在会话中创建和切换 Windows

您不需要在会话之间切换来运行命令; 您还可以在一个会话中在窗口之间切换。

要在您的会话中创建一个新窗口,请点击 Ctrl + A 其次是 C (小写)创建一个新窗口。 您的第一个窗口从 number 开始 0,你的下一个窗口 1, 等等。

Ctrl + A 然后过滤数字 0-9。 要列出每一个,请使用 Ctrl + A 接着 (小写)以查看具有一位数 ID 的会话列表。

使用名称创建会话

随机生成的 ID 很难记住; 为您的会话命名可能会使事情变得更容易。 如果要使用名称开始会话,请键入:

screen -S examplename

如果要按名称重新连接到此会话,请键入:

screen -X examplename

共享屏幕会话

想与同事或朋友共享终端会话? 感谢屏幕,你可以。 类型:

screen -rx

无需分离当前连接到此会话的任何人,您只需加入它即可。 其他用户将看到您键入的内容和您运行的命令; 如果其他用户也这样做,您还可以观看他们。

将您的屏幕输出记录到文件中

出于维护或审计的原因,您可能需要将屏幕输出记录到文件中。 为此,请键入:

screen -L

会话将开始时能够登录到具有名称的文件 屏幕日志.x (其中 X 是一个数字,从零开始)在您的主目录中。 要在会话中开始登录,请键入 Ctrl + A 其次是 H (Shift + h)。

锁定屏幕会话

如果要保护屏幕会话,可以使用现有的 Linux 密码锁定会话。

类型 Ctrl + A 其次是 X (小写)在您当前连接到会话时锁定会话。

这会将其锁定在您当前的终端窗口中; 输入您的帐户密码以解锁。

终端多任务处理再简单不过了

感谢 GNU Screen,您不必担心等待终端命令完成。 如果您希望控制远程服务器,它会很有用,但如果您需要从一个窗口运行多个命令,它也是您家用 PC 的绝佳工具。

它是系统管理员的完美工具。 然而,它不是 Linux 终端工具箱的唯一命令,这就是为什么您应该将此重要 Linux 命令的备忘单添加为书签的原因。