Linux系统命令之screen命令

来源:互联网 时间:1970-01-01

对于执行长时间命令(如大文件运输)而言,为了不让它终止,都会开启一个远程登陆会话窗口来单独运行这样的命令。在此期间,不能关闭远程登录会话窗口或者断开连接,否则前功尽弃。这时候screen命令就派上用场了。

screen就是可以在同一个远程登陆会话窗口中创建多个screen会话窗口,当会话暂时可以不需要的时候,可以放至后台运行,虽然LINUX下提供&命令将程序放置后台运行,但是对于人机交互的任务(比如在MySQL中运行一个长任务),还是screen比较胜任一点.

下面来介绍下我最常用的screen命令(仅限于我):

首先新建screen会话窗口,可以在这个窗口中执行任何命令,如同在远程登录会话窗口下一样。

[[email protected] ~]# screen

接下来我想登陆我的MySQL进行人机交互,当然是在screen会话窗口中。

[[email protected] ~]# mysql -uroot -p --socket=/data/mysqldata3306/sock/mysql.sock

然后在我的MySQL中执行如下命令,customer表中有150万条数据,执行起来需要一点时间(对于我这种烂虚拟机来说而已),所以我现在又不想克隆一个远程登陆会话窗口(太懒),所以我要将当前的这个screen会话抛到后台运行。

[email protected] : tcph 12:37:39> SELECT * FROM customer;

下面这个命令就是将screen会话抛到后台了,当然MySQL里面的任务还在运行。

Ctrl+A D(按下ctrl+A ,松开再按下D)

然而现在我又想去看看我的语句跑完没(我是个麻烦的人),执行命令如下:

screen -ls

此时就可以查看刚刚丢到后台的任务了,见下图:

既然找到了任务,也看到了任务在screen里面的代号(红框前部分的数字)了,那赶紧运行吧。

[[email protected] ~]# screen -r 6158

这时候我们就能看到了前面在MySQL中的交互,此时发现我任务跑完了。如果我还是按Ctrl+A D的话,它还是会存在于screen -ls的任务清单中,作为强迫症的我,怎么能忍受=_=,那么怎么办呢?

Ctrl+A K

这样子就可以杀掉这个任务了,并且在screen -ls的任务清单中也就不存在了。

更深入的命令带我研究研究再来。



相关阅读:
Top