Linux中screen命令及使用方法

 更新时间:2020年02月26日 17:06:40   作者:飞翔码农  
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。这篇文章主要介绍了Linux中的screen命令及使用方法,需要的朋友可以参考下

Screen简介

Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

官方网址:http://www.gnu.org/software/screen/

GUN Screen:

在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+a d detach会话,将目前的 screen session 丢到后台执行,并会回到还没进 screen 时的状态,screen 都在继续执行,即使 logout 也不影响后台的执行
ctrl+a k 强行关闭当前的窗口
ctrl+a z 把当前的会话放到后台执行,用fg命令可以调回来

screen 使用

先模拟一个需要执行很长时间的脚本代码

test.php
<?php
sleep(10000);
echo 111;
?>

程序休眠10000秒之后输出 1111

先创建一个screen,然后执行它之后,退出登录状态

screen -S test
php test.php

创建名为test的screen,进入screen之后执行test.php。然后让脚本在 screen里面一直执行,按 Ctrl+a d让脚本在screen后台执行。

screen -S test
[detached from 3934.test]

exit 退出登录,等一段时间然后再登录上去,查看下脚本是否还在执行

ssh 
screen -ls
There are screens on:
 3934.test (02/25/2020 10:27:06 PM) (Detached)

名为test的screen ID 为3934,连接该screen并进入

screen -r 3934
php test.php

可以看到 test.php的脚本还在执行。

执行ctrl+a z,然脚本在后台执行,然后再使用fg调到前台

[1]+ Stopped  screen -r 3934
执行fg
php test.php

再看下screen -d 和 -D

重新打开一个窗口,ssh之后,执行

screen -d 3934
[3934.test detached.]

然后查看前一个窗口,看看是否断开了screen

screen -r 3934
[remote detached from 3934.test]

再看下,-D,在第一个窗口

screen -r 3934

第二个窗口执行-D

screen -D 3934
[3934.test power detached.]

再看第一个窗口已经被强制退出登录了。

screen -r 3934
[remote power detached from 3934.test]
Connection to 127.0.0.1 closed.

作为开发人员,其实平常开发中只需要知道三个命令就能满足90%以上的使用范围了

screen -ls
screen -S
screen -R
ctrl+a d

screen常用操作

创建会话(-m 强制):

screen -dmS session_name
# session_name session名称

关闭会话:

screen -X -S [session # you want to kill] quit

查看所有会话:

screen -ls

进入会话:

screen -r session_name

总结

到此这篇关于Linux中的screen命令及使用方法的文章就介绍到这了,更多相关linux screen命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux引导系统的方法分析

    linux引导系统的方法分析

    这篇文章主要介绍了linux引导系统的方法,总结分析了Linux引导系统相关原理、操作命令与注意事项,需要的朋友可以参考下
    2020-03-03
  • Ubuntu系统端口查询与管理的详细分析

    Ubuntu系统端口查询与管理的详细分析

    事情起因是宝塔的CPU负载过大,重启服务进程之后还是爆,后续发现是端口被占用,导致服务重启不起来,所以本文给大家介绍了Ubuntu系统端口查询与管理的详细分析,需要的朋友可以参考下
    2024-11-11
  • 在linux系统下安装两个nginx的简单方法

    在linux系统下安装两个nginx的简单方法

    下面小编就为大家带来一篇在linux系统下安装两个nginx的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • CentOS 7搭建Linux GPU服务器的教程

    CentOS 7搭建Linux GPU服务器的教程

    这篇文章主要为大家详细介绍了CentOS 7搭建Linux GPU服务器的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • centos查找已安装的jdk路径的方法

    centos查找已安装的jdk路径的方法

    本篇文章主要介绍了centos查找已安装的jdk路径的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 浅谈Linux vfork与fork简单对比分析

    浅谈Linux vfork与fork简单对比分析

    本篇文章主要介绍了浅谈Linux vfork与fork简单对比分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Linux取消目录的执行权限的具体步骤

    Linux取消目录的执行权限的具体步骤

    用户对一个文件或目录具有访问权限,这些访问权限决定了谁能访问,以及如何范围这些文件和目录,本文给大家介绍了Linux取消目录的执行权限的具体步骤,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-10-10
  • Centos7搭建sftp服务流程

    Centos7搭建sftp服务流程

    本篇文章给大家详细分析了Centos7搭建sftp服务的全过程以及相关命令分享,一起需要下。
    2018-02-02
  • Linux QT Kit丢失及Version为空问题解决方案

    Linux QT Kit丢失及Version为空问题解决方案

    这篇文章主要介绍了Linux QT Kit丢失及Version为空问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • linux环境下安装PHP的OpenSSL扩展的方法讲解

    linux环境下安装PHP的OpenSSL扩展的方法讲解

    下面小编就为大家分享一篇linux环境下安装PHP的OpenSSL扩展的方法讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03

最新评论