目录
今天在做实验的过程中,发现了Screen这个小工具,解决了我在训练时想摸鱼但又不得不动几下鼠标的问题,这下可以安心摸鱼啦!主要参考AutoDL帮助文档,下面介绍我的实践经历。
【注】羽婕是使用的vscode终端,如果是使用jupyter的小伙伴可以直接参照autodl帮助文档。
你有没有遇到过因为终端运行时间很长,你很久没有去动鼠标,后面想看运行的怎么样,却发现一点没动,这大大降低了我们的工作效率。Screen就是来帮助我们解决这个问题,简单来说,它起到了一个守护进程的作用。
介绍Screen
Screen 是一个全屏窗口管理器,它允许用户在单个终端会话中创建多个虚拟终端(窗口),并在这些窗口之间切换。即使网络连接中断,Screen 也能保持会话运行,非常适合远程工作。用于Linux/Unix系统,Win系统下有tmux工具可以提供同样的功能。
Screen的主要功能
会话持久化:即使断开连接,会话仍会在后台运行
多窗口管理:在单个终端中创建多个虚拟终端
会话共享:多个用户可以同时连接到同一个会话
后台运行:将长时间运行的任务放在后台执行
Screen的适用场景
远程服务器管理
长时间运行的任务(如编译、下载)
协作工作(多个用户同时查看同一会话)
需要保持会话状态的场景
Screen 的配置文件通常位于 ~/.screenrc
,可以自定义各种行为和快捷键。
Screen有会话和窗口两个概念,一个会话里有多个窗口。
Screen的基本命令
常用命令在代码框里,文本框里的是不常用的。
代码框
文本框
命令:
#-----安装-----
apt-get update #(选)
apt-get install -y screen
#-----启动和创建-----
screen # 启动一个新的 screen 会话(*****) 也可以是screen -U,-U这个更能解决乱码问题
screen -S session_name # 创建一个有名称的会话(*****) 也可以是screen -U -r xxx,-U这个更能解决乱码问题
#如果中文乱码,就执行
echo "defencoding GBK" >> ~/.screenrc
echo "encoding UTF-8 GBK" >> ~/.screenrc
#-----会话管理-----
screen -ls # 列出所有 screen 会话(*****)
# attached表示里面没程序运行,detached表示里面有程序在运行
screen -r session_name # 恢复指定的会话(*****)
screen -d session_name
# 分离指定会话(不进入)
screen -X -S session_name
quit # 关闭screen会话
#-----窗口操作-----
Ctrl+a d # 分离当前会话(保持运行),显示detached(*****)
Ctrl+a quit # 杀死所有窗口及其程序
exit # 关闭单个窗口
Ctrl+d # 关闭单个窗口
Ctrl+a c
# 创建新窗口
Ctrl+a n
# 切换到下一个窗口
Ctrl+a p
# 切换到上一个窗口
Ctrl+a "
# 列出所有窗口供选择
Ctrl+a [0-9]
# 切换到指定编号的窗口
我的实践
安装screen
创建一个会话(带名称)
查看当前所有窗口
退出当前运行窗口(之后还进入)
进入窗口
发现里面的ping www.baidu.com
命令仍在运行。
关闭(杀死)窗口
关于screen,也可以参照下面博文,还有一些高级用法哦~
https://blog.youkuaiyun.com/weixin_39925939/article/details/121033427