在linux的环境中,我们想要在后台持续运行一些脚本,但是又因为关闭这个tty的话,脚本就会中断,这个时候我们就需要screen这个工具的帮助啦!

基础

 
  1. 1

    首先先查看下否则有这个工具。如果运行screen后提示command not found,那么说明我们还没有安装这个工具。

  2. 2

    如果redhat系的linux distribution,那么可以用yum install -y screen 来安装screen。

  3. 3

    安装完毕后在运行screen,会跳出这么一个介绍页面,再按回车键,那么就进入到screen里面啦!

     
  4. 4

    我们可以在里面运行我们需要的脚本,那么运行完后怎么回到原来的命令行呢?答案是:先按CTRL+a,然后再按d。

  5. 5

    在原来的界面运行screen -ls可以看到现有的screen的会话。

  6. 6

    怎么回到这个screen的会话中呢?运行screen -r <session>,那我们这边就是运行screen -r 2684.pts-0.NetDimCC。

  7. 7

    这就是基本的screen的用法啦~

    END

进阶

 
  1.  

    那后面讲一些比较有用的screen的命令。

    Screen分屏,有的时候我们需要边观察一个命令的输出边执行一些操作,开两个CLI是一种解决方式,用screen分屏的功能也能做到。

    首先在screen的session中按CTRL+a,X,这个时候就会出现第二个屏。

  2.  

    然后按CTRL+a,tab可以在两个屏幕之间自由切换。

  3.  

    切换到下个屏幕后,没有命令输入的提示符啊,怎么建立呢?

    CTRL+a,c

  4. 4

    还有一个命令要强烈推荐下,可以在detach的模式下跑screen的命令,我经常用这个命令去在后台持续抓包。

    就是在主tty中,运行 screen -dm <你要跑的命令>

    看下图,我运行screen -dm tcpdump,然后再去查看screen的 session时,发现多了一个,但是我并没有进入screen的会话中,也就是并没有attach进去。

    转自

    screen 常用命令_百度经验
    https://jingyan.baidu.com/article/25648fc184e9ab9190fd005c.html

    自己总结

    screen 可以理解为一个虚拟屏幕;

    在同一个终端下拥有多块“屏幕”——即“会话”。

    screen -S yourname -> 新建一个叫yourname的session
    screen -ls(或者screen -list) -> 列出当前所有的session
    screen -r yourname -> 回到yourname这个session
    screen -d yourname -> 远程detach某个session
    screen -d -r yourname -> 结束当前session并回到yourname这个session

    #创建一个离线会话screen -dmS test

    #查看会话列表screen -ls
    There is a screen on: .test (Detached) Socket in /var/run/screen/S-root.

    #进入会话screen -r test
    # 或者screen -r

    # 执行下载命令aria2c -s -x -c http://xxxxx

    #退出会话Ctrl+a,按d

    #或者会话screen -d test

    #下次进入会话重复上面的步骤即可

    #退出会话后,里面运行的程序不会停止 #退出会话,可以使用-ls然后kill掉,但建议使用以下方法
    screen -r test
    exit

    [root@test1 ~]# screen -r test
    [screen is terminating]

最新文章

  1. MVP社区巡讲照片集
  2. ASP三种常用传值方式:
  3. ASP.NET购物车实现方法
  4. linux下 oracle常用命令
  5. OpenLayers实现覆盖物选择信息提示
  6. LatinIME输入法分析
  7. css div inline 与 span 区别
  8. git bash上传代码到github
  9. VxWorks嵌入式系统几种常用的延时方法
  10. python读写word、excel、csv、json文件
  11. 别的C#基础笔记
  12. sqlalchemy外键的一些东西
  13. iOS 开发笔记 - 导航到地图
  14. python shutil模块&amp;random模块
  15. [CSS3]环形进度条
  16. SpringCloud2.0入门3-新的eureka依赖
  17. P3273 [SCOI2011]棘手的操作
  18. Redis学习笔记一(Redis的详细安装及Linux环境变量配置和启动)
  19. idea设置字体大小
  20. mongodb c++ driver 2.0编译使用

热门文章

  1. JavaScript 保留两位小数
  2. json 当集合类型的字符串变成集合时候 里面有map类型的转换操作
  3. 【JavaScript&amp;jQuery】单选框radio,复选框checkbox,下拉选择框select
  4. 【BZOJ2306】幸福路径(动态规划,倍增)
  5. 51NOD 1709:复杂度分析——题解
  6. 【极值问题】【CF33C】 Wonderful Randomized Sum
  7. Java--Inheritance constructor继承中的构造方法问题(一)
  8. 再谈System.arraycopy和Arrays.copyOf
  9. Install Terraform on Windows, Linux and Mac OS
  10. ORACLE创建用户,建表空间,授予权限