完善 发表于 2019-5-23 11:17:56

使用Screen在Linux上运行多个应用程序

现代计算机操作系统是围绕多任务的概念设计的,使计算机随时都能够运行多个应用程序。因为计算机使用图形用户界面,即多个窗口分层显示,每个窗口同时运行不同的应用程序。与此相反,命令行展示了一个非常简单的单一任务界面,即在screen上运行一个应用程序。
该screen工具提供了在命令行上工作的另一种方法。它允许多个终端会话同时运行,用户可以在这些会话之间进行切换。这意味着多个应用程序可以同时运行。如果需要,每个会话都可以由不同的用户运行,并且不会直接与用户的登录会话联系在一起。这意味着,如果用户通过SSH登录,并且由于某种原因连接中断,而不是用户正在运行的应用程序被停止,那么它将继续在screen中运行,并且用户登录后可以重新连接到screen会话。当处理多个会话时,这些会话既可以以类似于使用GUI的分屏方式并排工作,也可以在单独的全屏会话中使用。
screen入门
screen通常包含在标准的Linux服务器安装中,所以不需要在系统上单独进行安装。使用以下命令启动:
screen
首先,这留下了一个空的命令行。这是因为screen创建了一个新的终端会话。
在screen中的shell中的操作与一般操作非常相似,按*exit*键或按‘Ctrl-d’将退出该进程中的shell关闭screen。当键入‘Ctrl-a’时,screen的真正魅力就出现了,这是提供screen指令的快捷方式。在这个组合键之后,screen将监控下一个按键,这被解释为执行特定任务的指令。第一个快捷键组合是‘Ctrl-a’,后跟‘?’,这将弹出一个帮助screen,其中显示了大量的键盘快捷键及其功能,部分将会在下文中介绍。
键盘快捷键
首先,使用screen分割视图处理多个视图。有两个命令可以拆分screen,它们将当前screen部分拆分为两个大小相等的部分。‘Ctrl-a’ ‘S’(注意是大写字母S)将水平拆分screen,‘Ctrl-a’ ‘|’(管道符号)将screen垂直拆分为两个并排部分。使用‘Ctrl-a’和‘tab’键,可以在这些多个screen部分之间移动,比如移动到下一个部分。拆分screen时,新的终端不会自动在新创建的部分启动。为此,需要导航到该screen部分,然后使用‘Ctrl-a’ ‘c’在那里创建一个新的终端窗口。
没错,是窗口。screen使用的概念是创建运行命令的窗口,然后在这些窗口之间切换,这些窗口既可以全屏显示,也可以在拆分该窗口之后在screen的某些部分显示。因此,如果正在全屏工作,则‘Ctrl-a’ ‘c’将创建一个可以更改的新窗口。对这些窗口进行编号,原始窗口为0,后续创建的每个窗口的编号按顺序递增。使用‘Ctrl-a’,再加上一个窗口的编号,将直接进入该窗口。‘Ctrl-a’ ‘n’可以进入下一个窗口,‘Ctrl-a’ ‘p’则进入上一个窗口。
复制粘贴
然后是在同一个窗口或窗口之间进行复制和粘贴。输入‘Ctrl-a’ ‘[‘将进入复制模式,然后可以使用导航,按“回车”开始从当前突出显示的区域复制,导航到要结束的位置,然后再次按“回车”复制该节。使用‘Ctrl-a’ ‘]’进行粘贴。
使用‘Ctrl-a’ ‘d’,正在运行的screen会话就会分离出来,返回到常规命令行,但会离开screen会话以及停止在后台运行的任何操作。这非常适合在启动一个长时间运行的脚本同时做其他的事情。可以根据自己的喜好启动和分离多个screen会话。如果从单个screen会话分离,则重新操作与使用以下命令一样简单:
screen -r
如果已经从多个screen会话分离,则会发出一个警告并提供可用会话的列表。然后,可以通过再次输入该命令,根据由进程id screen启动时所标识的名称来选择该命令。
以上就是如何使用screen在命令行上使用多个应用程序的具体介绍,这是一个相当短暂的过程。它的使用非常简单,当在一台服务器上工作时,并且需要同时执行多个操作时,它绝对能够提供必要的支持。

页: [1]
查看完整版本: 使用Screen在Linux上运行多个应用程序