0#2 screen 指令相关

参考资料

 资料来源大部分是 man 手册,与自带的帮助信息。

  screen -h
  man screen

指令格式

 在 man 手册,和 screen -h 中都有写

screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]

简介

  曾经使用阿里云,腾讯云,但是下载一些大的文件,常常要花很长时间,中途,ssh关闭了,导致没有下载完成。说明下载过程中ssh并不能断开。所以想到使用 screenscreen 使得下载能够在后台下载,即使断开了ssh,下载仍在继续。对于后期服务器运维来说是很大的帮助。
安装方法:

    apt-get install screen

一些screen的状态:
  Attached: 表示当前正处于该screen中
  Detached: 表示该screen正处于离线状态(后台)
  Dead: 表示该screen已被kill

一些选项

 screen有一些快捷键的选项,但是我不常用,只是对screen的指令较为熟悉,下面主要介绍screen的指令。
 1.创建,创建一个sockname的screen窗口
  -S sockname
 2.专门为一个shell指令,创建一个sock
  -s shell指令
 3.退出(Detach),退出当前的screen窗口
  -d
 4.查看目前已有的screen窗口
  -ls
 5.删除已死亡(dead)的screen
  -wipe
 6.恢复指定的离线screen
  -r sockname
 7.恢复上一个screen
  -x
 8.先试图恢复离线的作业。若找不到离线的作业,即建立新的screen窗口
  -R sockname
 9.退出(退出,并删除screen)
  $ exit

演示样例

1.查看screen目前已有的窗口

查看screen目前已有的窗口

  screen -ls

输出如下

  No Sockets found in /var/run/screen/S-lee.

表示目前没有创建screen的窗口

2.创建,创建一个sockname的screen窗口

假设创建一个bmelab的screen窗口

screen -S bmelab

会发现,之前的指令已经消失了,表示已经进入了bmelab的screen窗口。
检验方式:

screen -ls

输出如下

There is a screen on:
12558.bmelab    (2019年03月24日 14时54分34秒)   (Attached)
1 Socket in /var/run/screen/S-lee.

Attached 表示目前处于激活状态,即目前的窗口就是bmelab窗口。


图片.png

3.退出当前的 screen

退出当前的 screen

screen -d

会发现目前的界面又换了。
查看bmelab的状态

screen -ls 

输出如下

There is a screen on:
12558.bmelab    (2019年03月24日 14时54分35秒) (Detached)
1 Socket in /var/run/screen/S-lee.

Detached表示当前的bmelab处于离线状态

4.重新进入bmelab这个screen窗口

重新进入bmelab这个screen窗口

screen -r bmelab

会发现窗口又切换回了bmelab中。可以像上面的方法进行检测。

5.当我们在bmelab这个screen窗口中,并且想删除这个窗口使用

当我们在bmelab这个screen窗口中,并且想删除这个窗口使用

exit

检测方式如上。

6.当我们处于自己的窗口下,并且想删除bmelab中的窗口时。

窗口信息如下


图片.png

删除方式

kill -9 15313

查看窗口状态


图片.png

dead 表示该线程已被杀死。
清除已杀死的screen窗口方式

screen -wipe

再次查看窗口状态


图片.png

你可能感兴趣的:(0#2 screen 指令相关)