如果您是Linux用户,那么您将不得不在某个时候开始使用Linux终端。有些终端命令可能很流行,有些则模糊不清,但在很多情况下,通过终端窗口运行命令比通过GUI运行命令更容易。
但是如果你需要一次运行几个命令会发生什么?GNU Screen使终端多任务处理变得如此简单; 让我们开始使用它。
什么是GNU screen?
GNU Screen是Linux终端的一个工具,它将一个终端分成几个终端。这意味着您可以运行一个命令,例如wget下载图像文件,同时切换到运行一秒,例如 systemctl,检查驱动器的S.M.A.R.T状态。
它允许您在单独的会话中运行这些独立的命令,您可以随意连接和断开连接。
它不仅对您自己的电脑有用; 如果您正在管理远程服务器,这几乎是必不可少的。如果您通过SSH在服务器上运行命令,在断开连接时会发生什么?该命令可能仍在运行,但您将无法轻松监视或与之交互。
screen为您处理该问题。如果您失去连接,或者中断连接,screen仍在后台继续运行直到您需要再次访问它为止,您仍可以重新连接到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会话开始screen会话很简单。打开终端,或建立SSH连接,然后输入 screen。你会看到屏幕介绍窗口,点击空格或回车键可以关闭它。
一旦你点击空格或回车键,终端屏幕将恢复正常。没有明显的迹象表明你正在运行一个屏幕会话,但是从这一点开始运行的每个命令,都将在你现在可以分离并随意重新连接的会话中运行。查看和分离屏幕如果您打算再次使用它,您将想知道如何连接和断开屏幕会话。如果您已经在屏幕会话中,请按Ctrl + A, 然后按字母d(小写)。
当前正在运行的会话和命令分离后,将继续在后台运行,以备稍后重新连接。假设您只有一个正在运行的Screen会话,请输入:
screen -r
这将重新连接您的会话。如果您需要远程强制分离会话,想自己重新连接,请输入:
screen -rd
您可以运行多个屏幕会话。如果要重新连接到特定会话,则需要查找会话进程ID号。输入screen -ls 或 screen -r 列出它们。
如上图所示,输入 screen -r 后跟每个会话开始时的初始ID号。例如:
screen -r 25407
如果要关闭会话并取消其中的任何正在运行的命令,请重新连接并输入exit。
要记住的其他屏幕终端命令
对于想要充分利用它的用户来说,Screen有一些技巧。以下是一些最常见的终端命令供您记住。列表屏幕键盘快捷键像所有好的终端程序一样,Screen有键盘快捷键供您使用。你已经使用了一个,Ctrl + A和 d来分离现有的屏幕。
如果你想看到其余部分,只需输入 Ctrl + A,然后输入 ?给你一个可以使用的列表。在会话窗口之间的创建和切换为了运行命令,您无需在会话之间切换; 你也可以在一个会话中切换窗口。
要在会话中创建新窗口,请按Ctrl + A,然后按 c (小写),创建新窗口。你的第一个窗口从0开始 ,你的下一个窗口 1,等等。
击中Ctrl + A键,然后通过数字0-9进行过滤。要列出每个,请使用 Ctrl + A 然后使用 w(小写)查看具有一位数ID的会话列表。使用名称创建会话随机生成的ID很难记住; 重命名会话会使事情变得更容易。如果要使用名称启动会话,请输入:
screen -S examplename
如果要按名称重新连接到此会话,请输入:
screen -X examplename
分享屏幕会话
想与同事或朋友分享终端会话?感谢Screen,你可以输入:
screen -rx
您只需加入它,不需要与当前连接到此会话的任何人进行分离,其他用户将看到您输入的内容和您运行的命令; 如果他们也这样做,你也可以看到其他用户。将屏幕输出记录到文件出于维护或审核原因,您可能需要将屏幕输出记录到文件中。为此,请输入:
screen -L
会话将能够在主目录中以 screenlog.x(其中X是数字,从零开始)的文件名开始记录。要在会话中启动日志,请输入Ctrl + A,然后输入 H(Shift + h)。锁定屏幕会话如果要保护屏幕会话,可以使用现有Linux密码锁定会话。
输入 Ctrl + A后跟 x(小写),锁定当前连接的会话。
这将锁定在您当前的终端窗口中; 输入您的帐户密码即可解锁。终端多任务处理不能简单感谢GNU Screen,您不必担心等待终端命令完成。如果您希望控制远程服务器,它会很有用,但如果您需要从一个窗口运行多个命令,它也是家用电脑的绝佳工具。
它是系统管理员的完美工具。然而,这不是Linux终端工具箱的唯一命令,这就是为什么你应该将这个重要Linux命令的备忘录加入书签的原因 。