Screen的安装与使用

Screen的安装与使用

1. Screen作用

  • Screen是一个非常强大的功能,它可以让你在一个终端窗口中启动多个子窗口,每个子窗口都可以运行不同的程序。这对于需要长时间运行的任务非常有用,比如编译大型项目或者下载大文件。

  • 即使你断开了SSH连接,这些任务也会在服务器上继续运行

    当你进入 screen 会话时,实际上并没有创建一个新的虚拟环境,而是进入了你当前所处的虚拟环境。screen 会话只是一种会话管理工具,它允许你创建多个会话并在它们之间自由切换,但它不会改变你的环境状态。

2. 查看是否已经安装Screen

screen # 方法1:在命令行输入screen,点击回车,如果出现  screen:未找到命令这样的字眼,就是没有安装
which screen # 方法2:输入这句话,点击回车,没有反应,就是没有安装

在这里插入图片描述

3. 安装Screen

注意1:在一个虚拟环境中安装了Screen,其他虚拟环境中是不能使用Screen的。

如果想要在其他的虚拟环境中也使用Screen,那么需要在那个虚拟环境中也安装

注意2:在服务器上运行代码,打开一个节点,比如节点1,建立任务,安装screen,能用了

但是以后你换一个节点运行任务的时候,还得重新安装screen!!!!

# Ubuntu
# 如果你想在某一个虚拟环境中安装screen,首先激活这个虚拟环境conda activate 虚拟环境名字,然后运行下面的命令
apt-get install screen 
# 如果你想在整个系统级别安装screen,无论哪个虚拟环境处于激活状态,运行下面的命令
sudo apt-get install screen

# CentOS
yum install screen
# 我在Ubuntu环境中安装screen过程
apt-get install screen # 安装命令
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  byobu | screenie | iselect
The following NEW packages will be installed:
  screen
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 577 kB of archives.
After this operation, 1022 kB of additional disk space will be used.
Get:1 http://mirrors.aliyun.com/ubuntu focal-security/main amd64 screen amd64 4.8.0-1ubuntu0.1 [577 kB]
Fetched 577 kB in 1s (595 kB/s) 
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package screen.
(Reading database ... 81882 files and directories currently installed.)
Preparing to unpack .../screen_4.8.0-1ubuntu0.1_amd64.deb ...
Unpacking screen (4.8.0-1ubuntu0.1) ...
Setting up screen (4.8.0-1ubuntu0.1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.17) ...

4. Screen的使用

创建新的Screen会话

screen -S session_name

其中session_name是你想要命名的会话名称。如果你不提供会话名称,Screen将会创建一个匿名的会话

在Screen会话中进行工作

在这个新的Scr进行你的工作,就像在普通的终端中一样。

screen -r session_name # 进入这个会话

暂时断开screen

Ctrl+A+D # 或者
screen -d # 或者
screen -d <session_name>

当你需要暂时离开时,你可以按住Ctrl键,然后依次按a和d键来断开会话。这样,即使你关闭了SSH连接,会话中的程序也会继续运行

恢复会话

当你回来时,你可以使用以下命令来恢复之前的Screen会话:

screen -r session_name

其中session_name是你之前创建的会话名称。如果你忘记了会话名称,你可以使用screen -ls命令来列出所有的Screen会话

关闭会话

exit # 或者
ctrl+A+D

如果你想要完全结束Screen会话,你可以使用exit命令或者按住Ctrl键,然后依次按AD键来关闭会话

# 一些常用的命令

# 列出所有的screen会话
screen -ls
screen -list
# 结果是这样的:
# screen -ls
#There are screens on:
  #      5524.pts-14.6912f440a175        (2024年04月08日 21时28分40秒)   (Attached)
   #     5508.pts-12.6912f440a175        (2024年04月08日 21时28分27秒)   (Attached)


# 通过screen 进程id, kill掉一个screen
kill -9 session_num # 或者
ctrl +A+K # 杀死当前窗口和窗口中运行的程序
ctrl+A 输入quit命令退出Screen会话。 # 注意:这样退出会杀死所有窗口并退出其中运行的所有程序

# 清理掉所有挂掉(被杀)的screen 
# 杀掉一个screen会话之后记得清理这个挂掉的会话!(我觉得这个清理操作也可以理解成释放)
screen -wipe

ctrl+A+C # 在当前Screen会话中创建新的窗口
ctrl+A+N # 切换到下一个窗口
ctrl+A+P # 切换到上一个窗口
ctrl+A+D # 断开会话

# 在screen中查看当前处于哪一个screen会话中
echo $STY

# 注:在进入screen会话之前就进入一个虚拟环境,然后你进入screen会话,这个会话就在这个虚拟环境里面

# 卸载screen
sudo apt-get purge screen 

5. Screen的缺点及解决

缺点

  • 在其中不能转动鼠标滚轮,否则会出现一些^A 或者^B的东西
  • 也不能使用键盘上面的上下左右键,否则也会出现那些东西
  • 也不能直接使用ctrl+c/ctrl+v来进行复制粘贴,也会出现那些东西

解决:只能用鼠标右键复制和粘贴

参考文章:

linux screen 命令详解

用screen 在后台运行程序

【Linux】screen的安装与使用

使用过程中问题及解决

使用Screen过程中,可能会遇到一些问题,我遇到了两个问题,已解决,具体请看

使用Screen遇到的问题及解决办法(成功解决)

希望可以为您遇到的问题提供解决思路

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值