【Linux-GNU】screen

记录而已,详细原文请看https://www.cnblogs.com/yangliheng/p/6173530.html

1. 简介
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

2. 特点
多窗口:
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。
会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

3. 满足基本需求依次出入的命令:
在打开你的Shell窗口后:
screen -S Name: 新建一个screen,名字叫Name。接下来会进入screen的世界,虽然看起来和之前的界面没什么区别,然后在这个界面内输入你想要的操作。想要暂时退出这个界面:Ctrl+a d
screen -ls:
列出当前所有的session
screen -r screenNo: 恢复编号为screenNo的会话,进去后可以看输出,做想要的操作
Ctrl+a k: 在screen界面操作,杀死进程
screen -wipe: 清除被杀死的进程(这个进程在screen list的时候会显示为dead)

 

4. 主要命令
screen -r 恢复会话
detach 
在暂时离开的时候,也可以执行分离命令, 在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
 

五、注意事项
1. 清除一个screen会话:
screen -X -S PID quit (PID改成进程编号,例如screen -X -S 11943 quit)


当人为地停掉screen里面的程序(比如Ctrl+Z停掉正在训练的模型),这并不会释放程序所占用的能存,需要用
screen C -a k 使screen的状态变成terminated(后来发现这样不行,这样的功能只是相当于 screen -d)
或者(关闭所有的screen,有些危险,来源https://www.cnblogs.com/liaojie970/p/7872588.html
screen -ls|awk 'NR>=2&&NR<=20{print $1}'|awk '{print "screen -S "$1" -X quit"}'|sh

补充资料https://www.ibm.com/developerworks/cn/linux/l-cn-screen/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章