如果Linux用的比较多的话,你一定遇到过下面的场景。在终端启动了一个任务,这个比较耗时(比如cp, make, apt-get, wget),而此时你又需要在终端下做其它工作。你该如何是好?Ctrl + Alt + F1至F5,再开一个终端?gnome-terminator里面再开一个Tab?再启动一个rxvt?再做一次ssh连接?噢,当然,你还可以Ctrl + C,把那个耗时的进程杀掉。但这都不是一个好的解决之道,相对于使用screen来说。
screen的工作原理
使用screen,你可以在同一个终端,同一个virtual terminator,同一个ssh中同时进行多个工作。它的大致工作原理是:当前shell中启动screen,此时screen是当前shell的一个子进程,而你现在处于screen的一个会话(session)的一个window中。这个window对应着一个shell进程(比如bash),当你陷入上面的场景时,screen可以让你再开一个(或多个)window,这个window又会对应一个新的shell进程。当然,这些window都在screen的大力监管之下,你可以在这些window之间自由切换。下面两图可能更能说清真象。