强大的Linux screen

Linux上的screen工具是继SSH之后最有用的远程登录管理工具了。通常我们使用SSH的时候,如果正在执行某个程序,则无法再执行其他任何操作,即使让该程序在后台执行(有时发现不能在后台执行,即使我用了后台执行命令&),但遇到多个程序执行的时候也是一件非常麻烦的事情。更有甚者,如果一旦断网,那就@#%#!$.而screen正是很好的解决了这个问题。不仅不用担心断网(断网后,screen仍然在远程机器上继续运行),而且方便我们在多个程序间进行切换,以前只用SSH,相当只开了一个控制台,而用screen等于可以开N个控制台。

说完screen的好处,再说下screen怎么用吧。screen可以建立多个session,每个session又可以建立多个window,每个window都可以执行不同的程序,相互不影响。

建立session,可以在登录SSH后,直接敲入screen就可以建立一个session,并进入该session,你会发现你得到了一个干净的窗口(没有你登录时的信息了),这时你已经进入了这个new session并同时创建了一个窗口。这时你可以再创建一个窗口,通过Ctrl+a c 创建一个新窗口。然后敲入Ctrl+a w查看这个session所有的窗口。你可以通过Ctrl+a p/n 来选择上一个窗口和下一个窗口,也可以通过ctrl+a id (id代表窗口编号)来切换到你想去的窗口。如果只有两个窗口最简单的办法是连续两次键入ctrl+a。到目前为止,大部分时候已经可以满足我们的需要了。但是对于一些复杂的操作,比如有些系统操作时本身就是在一个session中开启多个窗口,那么这时我们为了不影响该系统的运行,可以再创建一个新的session,做些别的操作。要建立新的session,首先要退出原有的session,通过ctrl+a d将该session detatch掉,注意detatch并不是kill,在该session中运行的所有程序仍然在远程机器上继续运行,并不受影响。当我们detatch之后,就回到了原始的控制台界面,这时我们可以再次敲入screen创建一个新的session. 敲入screen -ls可以看到目前有几个session,并且你当前的session是处于attach状态,而其他session则处于detach状态。如果想进入其他session,则要先detach当前的session,然后通过screen -r [session id]进入指定的session。

基本上主要的功能已经覆盖到了,而如果想继续深入,则要看man或者Ctrl+a ?来查看帮助了。补充:有时网络断开再重新连接后,有时会发现之前attach的screen仍然处于attach状态,并且无法通过screen -r连接该screen,后来发现可以先detatch用screen -D命令,然后就可以再次用screen -r进行attach了。

另外我们在使用screen的过程中可能会使用多个Session以及多个window,为了便于区分,我们可以为session和window分别命名。

我们可以使用 screen -S xxxx来创建一个以xxxx命名的session。

命名window可以用ctrl+a A

补充:

C-a K -> kill window,强行关闭当前的 window

exit 退出窗口

猜你喜欢

转载自notfatboy.iteye.com/blog/1147849