Linux----screen 工具详细使用方法

1. 简介

screen 是一个终端多路复用器,允许用户在一个单独的终端窗口中管理多个终端会话。用户可以在一个 screen 会话中运行多个进程,并在不同的会话之间切换,即使用户断开连接,进程也能继续运行。screen 工具特别适用于需要长期运行的任务、远程管理和调试等场景。

2. 功能

screen 提供了以下主要功能:

  • 会话管理:允许创建、分离和重新连接多个终端会话。
  • 后台运行:支持在断开连接后保持进程继续运行。
  • 会话恢复 :在重新连接到 screen 会话时,可以恢复之前的工作状态。
  • 窗口分割 :允许在一个 screen 会话中分割多个窗口。
  • 日志记录:支持记录会话日志。
  • 多用户支持 :允许多个用户共享 screen 会话。

3. 安装

在大多数 Linux 发行版中,screen 通常已经预装。如果没有,可以使用包管理器进行安装:

Debian/Ubuntu:

sh 复制代码
sudo apt-get install screen

CentOS/RHEL:

sh 复制代码
sudo yum install screen

Arch Linux:

sh 复制代码
sudo pacman -S screen

4. 基本命令

创建新会话
sh 复制代码
screen
命名会话
sh 复制代码
screen -S [session_name]
列出会话
sh 复制代码
screen -ls
连接到会话
sh 复制代码
screen -r [session_name]

或通过会话 ID:

sh 复制代码
screen -r [session_id]
分离会话

在会话中执行快捷键 Ctrl + D

终止会话

在会话中执行:

sh 复制代码
exit

5. 参数详解

会话管理相关参数

  • -S [session_name]:指定会话名称,便于以后管理。

    sh 复制代码
    screen -S mysession
  • -ls-list:列出当前所有的 screen 会话。

    sh 复制代码
    screen -ls
  • -r [session_name]-r [session_id]:重新连接到指定的 screen 会话。

    sh 复制代码
    screen -r mysession
  • -d:将当前会话分离到后台。

    sh 复制代码
    screen -d
  • -d -r [session_name]:断开当前连接并重新连接到指定会话。

    sh 复制代码
    screen -d -r mysession
  • -D -r [session_name]-D -RR [session_name]:强制断开其他连接并重新连接到会话。

    sh 复制代码
    screen -D -r mysession

执行命令相关参数

  • -X:向指定会话发送命令。

    sh 复制代码
    screen -S mysession -X stuff "ls\n"
  • -L:启动会话时开启日志记录。

    sh 复制代码
    screen -L
  • -logfile [filename]:指定日志文件名称(需与 -L 参数一起使用)。

    sh 复制代码
    screen -L -Logfile mylogfile.log

窗口管理相关参数

  • -c [file]:指定配置文件。

    sh 复制代码
    screen -c myconfigfile
  • -R-RR:尝试重新连接一个断开的会话,如果没有找到则创建一个新会话。

    sh 复制代码
    screen -R mysession
  • -m:强制创建一个新的会话,即使已连接到一个会话。

    sh 复制代码
    screen -m

多用户相关参数

  • -x:与其他用户共享会话。

    sh 复制代码
    screen -x mysession
  • -X:向指定会话发送命令。

    sh 复制代码
    screen -S mysession -X stuff "echo Hello\n"

其他参数

  • -h [lines]:指定滚动缓冲区的行数。

    sh 复制代码
    screen -h 500
  • -v:显示版本信息。

    sh 复制代码
    screen -v
  • -U:使用 UTF-8 编码。

    sh 复制代码
    screen -U
  • -a:强制 screen 打开所有功能(最大兼容性)。

    sh 复制代码
    screen -a

6. 使用示例

实例 1:创建并管理多个会话

  1. 创建两个命名会话:

    sh 复制代码
    screen -S session1
    screen -S session2
  2. 列出会话:

    sh 复制代码
    screen -ls
  3. 连接到 session1

    sh 复制代码
    screen -r session1
  4. 分离会话:

    sh 复制代码
    Ctrl-a d
  5. 连接到 session2

    sh 复制代码
    screen -r session2

实例 2:发送命令到屏幕会话

  1. 创建会话并运行程序:

    sh 复制代码
    screen -S demo_session
  2. 在会话中运行一个长期任务(如 top):

    sh 复制代码
    top
  3. 分离会话:

    sh 复制代码
    Ctrl-a d
  4. 发送命令到会话:

    sh 复制代码
    screen -S demo_session -X stuff "exit\n"

7. 总结

screen 工具是一个强大的终端多路复用器,提供了多种功能,如会话管理、后台运行、窗口分割等。通过掌握 screen 的基本命令和参数,用户可以更高效地管理终端会话,提高工作效率。

相关推荐
Tim风声(网络工程师)2 小时前
不同射频对应不同mac地址(查找无线用户连接AP信息)
服务器·网络·tcp/ip·智能路由器·无线ap
ajassi20002 小时前
开源 C++ QT Widget 开发(十五)多媒体--音频播放
linux·c++·qt·开源
JosieBook3 小时前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
文档搬运工4 小时前
Linux MInt启动速度的优化
linux
Broken Arrows4 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
Light605 小时前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
linux·pdf·可观测性·异步队列·plt转pdf·权限治理·进度查询
鳄鱼杆5 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
羚羊角uou5 小时前
【Linux】命名管道
linux·运维·服务器
IT 小阿姨(数据库)6 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
THMAIL6 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融