如何在Linux终端中执行多任务:同时使用多个shell的3种方法

Linux终端具有丰富的多任务处理能力。您可以在系统上已经运行的虚拟控制台之间切换,使用Bash作业控制在后台运行进程,并利用终端“窗口管理器”GNU Screen。

您不必一次只执行一个命令。无论您是想在后台运行进程并偶尔重新访问它,还是想一次运行多个耗时的任务,Linux都提供了几个选项。

虚拟控制台

默认情况下,大多数Linux系统都有几个虚拟控制台在后台运行。按Ctrl-Alt组合键并在F1和F6之间按某个键进行切换。Ctrl-Alt-F7通常会将您带回图形X服务器。

按组合键将带您进入登录提示。您可以登录并运行命令,然后离开-该命令将继续在后台运行,因此您可以同时运行几个不同的终端会话。

此处的“tty1”文本表示这是位于Ctrl-Alt-F1的终端,而tty2将位于F2。

这些只是最常见的设置-不同的Linux发行版运行的虚拟控制台可能较少,并且X服务器可能位于不同的位置。

Bash作业控制

Bash shell提供了自己的功能来处理多个进程。作业控制允许您运行进程以及附加和分离这些进程。附加的进程称为前台进程,而分离的进程称为后台进程。

要在后台启动进程,请在其命令后添加&字符。例如,要将Nano文本编辑器作为后台作业打开,请键入以下命令:

[1]表示我们的新作业的作业ID是1。3751是它的进程ID。

我们启动的每个作业都有自己的作业ID。运行JOBS命令查看当前正在运行的作业列表。+号表示上次与shell关联的作业,而-号表示与shell倒数第二个关联的作业。

使用fg命令可以将后台作业带到前台,并将其附加到当前壳。在不指定作业的情况下运行fg或其他与作业相关的命令将使用最后关联的作业-作业列表中带+号的作业。您还可以指定作业编号。例如,以下命令会将作业1带回前台:

正常结束一个进程,它将从正在运行的作业列表中消失。如果要从当前shell分离作业,请使用^Z-即Ctrl-Z-键盘快捷键。

GNU屏幕

GNU Screen是一个“全屏窗口管理器”,允许您在单个终端中使用多个shell。默认情况下可能不会安装--它不在Ubuntu上。在Ubuntu或Debian上,使用以下命令安装屏幕:

安装完成后,运行Screen命令,您将看到有关Screen的一些信息。

按空格键或Enter键,您将看到外观正常的终端。

它看起来可能并不特别,但是这个shell实际上是在GNU屏幕中运行的。按Ctrl-a,然后按d从屏幕分离。你会回到正常的航站楼。

要重新连接到屏幕,请运行screen-r命令。你会回到和以前一样的航站楼。

使用Screen可以做的事情还有很多。例如,通过按Ctrl-a,然后按c,在Screen中创建一个新的“窗口”(终端)。一旦您有了多个窗口,按Ctrl-a两次即可在它们之间切换。您也可以按Ctrl-a,然后按“查看窗口列表。

在列表中选择一个窗口,然后按Enter键切换到该窗口。

我们之前已经写过关于使用GNU屏幕的文章,并且使用了Byobu,它增强了GNU屏幕。

相关文章