当前位置: 首页 > article >正文

【Linux Screen命令】Linux用户注销后可长时间运行的命令行

1. 使用情境

你有没有这样的经历:你有一台远程计算机,并在上面执行长时间运行的任务,突然连接断开,SSH 会话终止,而导致你的工作进度丢失。
幸运的是,有一个名为 Screen 的实用程序可以让我们持续会话。甚至是远程计算机用户注销的情况下程序依然在后台运行。

使用情境:

  1. 远程计算机,需要长时间执行一个程序任务。
  2. 远程计算机,拥有多个用户,频繁登入登出不同账户。需要在一个账户下长时间执行一个程序任务。

2. 安装 Screen

在开始使用“screen”之前,您需要确保它已安装在您的 Linux 服务器上。大多数现代 Linux 发行版都预装了“screen”,但如果您的系统上没有它,您可以使用特定于您的发行版的包管理器轻松安装它。

对于基于 Debian/Ubuntu 的系统,请使用以下命令:

sudo apt-get update
sudo apt-get install screen

对于 Red Hat/CentOS 系统,请使用:

sudo yum install screen

对于 Arch Linux,请使用:

sudo pacman -S screen

3. 基本用法

3.1 创建Screen

在控制台中输入 screen 就可以打开一个屏幕会话,创建一个新窗口,并在该窗口中启动一个 shell。但是我强烈建议在创建 Screen 的时候给这个会话取一个名字(后期会话多了之后会分不清)。把<Name> 替换成你想取的名字。比如:screen -S app

screen -S <Name>

现在您已经创建了一个screen的屏幕会话。

3.2 执行程序

你可以在新弹出的命令行中执行你的程序,然后甚至关掉命令行窗口。
如果你想screen在后台运行,只需要输入

Ctrl+a d

脱离会话后,在screen会话中运行的程序将继续运行。

3.3 查看Screen

在过了一段时间后,你想查询程序运行的情况或者结果如何。你只需要在命令行中输入:

screen -ls

就会列出screen正在运行的会话:

There are screens on:
    10835.app  (Detached)
    10366.pts-0.linuxize-desktop   (Detached)
2 Sockets in /run/screens/S-linuxize.

可以看到当前有两个会话正在运行,其中一个就是我们刚创建的叫app的会话。如果想恢复/查看app会话的内容只需要输入:

screen -r 10835

3.4 结束会话

如果你想结束一个screen会话,还是以app会话为例,你只需要输入:

screen -XS 10835 quit

此时再用 screen -ls 查看时 app 会话将不复存在。

4. 高级用法

以下是管理 Linux Screen Windows 的一些最常用命令:

Ctrl+a c 创建一个新窗口(带shell)。
Ctrl+a " 列出所有窗口。
Ctrl+a 0 切换到窗口 0(按编号)。
Ctrl+a A 重命名当前窗口。
Ctrl+a S 将当前区域水平分割为两个区域。
Ctrl+a | 将当前区域垂直分割为两个区域。
Ctrl+a tab 将输入焦点切换到下一个区域。
Ctrl+a Ctrl+a 在当前窗口和上一个窗口之间切换
Ctrl+a Q 关闭除当前区域之外的所有区域。
Ctrl+a X 关闭当前区域。

本文记录screen的基本用法,更多详细用法可以参考这里

Reference

[1] https://linuxize.com/post/how-to-use-linux-screen/
[2] https://askubuntu.com/questions/356006/kill-a-screen-session


http://www.kler.cn/a/104200.html

相关文章:

  • React 核心与实战2023版
  • IP地址在网络安全中的关键作用
  • 机器学习之ROC与AUC
  • Linux msend.pl配置
  • mysql 基础知识
  • 【数据结构】数组和字符串(四):特殊矩阵的压缩存储:稀疏矩阵——三元组表
  • JWT的登录认证与自校验原理分析
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于 CAN 总线的车辆数据采集与远程监控系统研发
  • 一文了解GC垃圾回收
  • 大数据性能测试方案-V1.0
  • 操作系统第二章王道习题_进程与线程_总结易错知识点
  • 边缘计算:云计算的延伸
  • MySQL - mvcc
  • 嵌入式系统设计师考试笔记之操作系统基础复习笔记一
  • MySQL:日期时间函数整理
  • 探索流视频的发送
  • 使用Spring Boot限制在一分钟内某个IP只能访问10次
  • Go源码实现使用多线程并发下载大文件的功能
  • 代码随想录打卡第五十天|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III
  • CI/CD:GitLab-CI 自动化集成/部署 JAVA微服务的应用合集