Linux中screen命令及使用方法
Screen简介
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNUScreen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
官方网址:http://www.gnu.org/software/screen/
GUNScreen:
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
Screen语法
$>screen[-AmRvx-ls-wipe][-d<作业名称>][-h<行数>][-r<作业名称>][-s][-S<作业名称>]-A将所有的视窗都调整为目前终端机的大小。-d<作业名称>将指定的screen作业离线。-h<行数>指定视窗的缓冲区行数。-m即使目前已在作业中的screen作业,仍强制建立新的screen作业。-r<作业名称>恢复离线的screen作业。-R先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。-s指定建立新视窗时,所要执行的shell。-S<作业名称>指定screen作业的名称。-v显示版本信息。-x恢复之前离线的screen作业。-ls或--list显示目前所有的screen作业。
screen重要性
screen的重要性,主要是体现在它可以方便的在服务器上一直运行,只要服务器没有宕机,没有断电它就可以做到不用停止。其实后端工程师经常会遇到,要通过执行脚本处理一些数据,但这个脚本可能需要执行半天或者几天,screen就是最佳选择了,过一段时间登录到服务器上查看下运行状态,是否运行完成。没有完成挂起来继续运行。
screen常用的参数
screen命令参数很多,我们只看下平常用的比较多的几个
参数 | 说明 |
---|---|
ls | 列出当前所有的回话 |
S | 大写的S,新建一个名称是xxx的会话 |
r | 通过序号连接进程会话 |
d | detach断开某个会话 |
D | 与-d命令相同,但是会logout原来在screen里的用户 |
在每个screen会话下,所有命令都以ctrl+a开始的
参数 | 说明 |
---|---|
ctrl+ad | detach会话,将目前的screensession丢到后台执行,并会回到还没进screen时的状态,screen都在继续执行,即使logout也不影响后台的执行 |
ctrl+ak | 强行关闭当前的窗口 |
ctrl+az | 把当前的会话放到后台执行,用fg命令可以调回来 |
screen使用
先模拟一个需要执行很长时间的脚本代码
test.php
程序休眠10000秒之后输出1111
先创建一个screen,然后执行它之后,退出登录状态
screen-Stest phptest.php
创建名为test的screen,进入screen之后执行test.php。然后让脚本在screen里面一直执行,按Ctrl+ad让脚本在screen后台执行。
screen-Stest [detachedfrom3934.test]
exit退出登录,等一段时间然后再登录上去,查看下脚本是否还在执行
ssh screen-ls Therearescreenson: 3934.test(02/25/202010:27:06PM)(Detached)
名为test的screenID为3934,连接该screen并进入
screen-r3934 phptest.php
可以看到test.php的脚本还在执行。
执行ctrl+az,然脚本在后台执行,然后再使用fg调到前台
[1]+Stoppedscreen-r3934 执行fg phptest.php
再看下screen-d和-D
重新打开一个窗口,ssh之后,执行
screen-d3934 [3934.testdetached.]
然后查看前一个窗口,看看是否断开了screen
screen-r3934 [remotedetachedfrom3934.test]
再看下,-D,在第一个窗口
screen-r3934
第二个窗口执行-D
screen-D3934 [3934.testpowerdetached.]
再看第一个窗口已经被强制退出登录了。
screen-r3934 [remotepowerdetachedfrom3934.test] Connectionto127.0.0.1closed.
作为开发人员,其实平常开发中只需要知道三个命令就能满足90%以上的使用范围了
screen-ls screen-S screen-R ctrl+ad
screen常用操作
创建会话(-m强制):
screen-dmSsession_name #session_namesession名称
关闭会话:
screen-X-S[session#youwanttokill]quit
查看所有会话:
screen-ls
进入会话:
screen-rsession_name
总结
到此这篇关于Linux中的screen命令及使用方法的文章就介绍到这了,更多相关linuxscreen命令内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。