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

screen命令

screen 是一个强大的终端多路复用器,允许你在单个终端会话中运行多个进程,并且可以在断开连接后重新连接,非常适合远程工作。以下是 screen 命令的详细说明:


一、基本概念

  • 会话 (Session): 一个 screen 实例,可以包含多个窗口。
  • 窗口 (Window): 一个会话中的独立终端环境,每个窗口运行一个命令。
  • 分离 (Detach): 断开与当前 screen 会话的连接,但会话仍在后台运行。
  • 重连 (Attach): 重新连接到一个已分离的 screen 会话。

二、启动 Screen

命令说明
screen启动一个新的 screen 会话,使用默认名称。
screen -S <会话名>启动一个命名的 screen 会话。例如:screen -S mysession
screen -dmS <会话名> <命令>启动一个分离的 screen 会话,并立即在其中运行指定的命令。例如:screen -dmS backup tar -czf backup.tar.gz /data

三、Screen 内部命令(在 screen 会话中使用)

所有内部命令都以 Ctrl + a 开头,然后按相应的键。

命令 (按 Ctrl + a 后)说明
c创建一个新的窗口。
n切换到下一个窗口。
p切换到上一个窗口。
<数字>切换到指定编号的窗口(例如 012...)。
"列出所有窗口,可选择切换。
w显示所有窗口的列表(在状态栏)。
k杀死当前窗口(相当于 exit)。
d分离 (Detach) 当前 screen 会话,回到原始 shell。
D分离并退出 screen 会话。
A重命名当前窗口。
S水平分割当前区域。
`V`
tab在分割的区域间切换。
x锁定屏幕(需要输入密码解锁)。
?显示帮助信息(所有可用命令)。
[进入复制/滚动模式。
]粘贴之前复制的内容。
:进入命令行模式,可以输入更复杂的 screen 命令。

四、管理 Screen 会话(在普通 shell 中使用)

命令说明
screen -ls 或 screen -list列出所有正在运行(或分离)的 screen 会话。
screen -r <会话ID或会话名>重新连接 (Attach) 到一个已分离的会话。例如:screen -r 12345.mysession 或 screen -r mysession
screen -r <会话ID>如果会话正在被其他终端占用,尝试连接。
screen -x <会话名>多路复用 (Attach) 到一个会话,允许多个用户/终端同时查看同一个会话(非常适合协作)。
screen -R <会话名>如果会话存在则重新连接,如果不存在则创建一个新的。
screen -d -r <会话名>先分离(detach)该会话(如果它被其他地方连接着),然后重新连接。
screen -S <旧会话名> -X quit终止指定名称的 screen 会话。
screen -S <会话名> -X screen <命令>在指定的 screen 会话中创建一个新窗口并运行命令。
screen -S <会话名> -p <窗口号> -X kill杀死指定会话中的指定窗口。

五、配置文件

screen 的配置文件是 ~/.screenrc。你可以在这里设置默认行为。

常用配置示例 (~/.screenrc):

Bash

深色版本

# 设置状态栏(硬状态线)
hardstatus alwayslastline "%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]"# 启用256色
term screen-256color# 设置默认 shell
shell /bin/bash# 启用滚动历史记录
defscrollback 5000# 设置窗口标题自动更新
autodetach on

六、实用技巧

  1. 防止会话意外终止: 使用 screen -S <name> 命名会话,便于管理和识别。
  2. 后台运行长时间任务screen -dmS <name> <command> 可以在后台启动任务,无需保持终端打开。
  3. 协作: 使用 screen -x <session> 可以让多个人同时看到同一个终端会话,进行协作调试或教学。
  4. 恢复会话: 即使网络中断,只要服务器没关,screen 会话就在,用 screen -r 就能恢复工作。
  5. 复制模式: 按 Ctrl + a [ 进入复制模式,用方向键或 Page Up/Down 滚动,按 Space 开始选择,按 Enter 结束选择并复制。然后按 Ctrl + a ] 粘贴。

七、注意事项

  • screen 需要安装,通常在 Linux 发行版中可以通过包管理器安装(如 apt install screen 或 yum install screen)。
  • 窗口编号从 0 开始。
  • 分离 (detach) 后,screen 会话在后台继续运行,进程不会被 SIGHUP 信号终止。
  • 如果一个会话被多个地方连接(attach),其中一个执行 detach (Ctrl + a d),其他连接不受影响。

掌握 screen 可以极大提高你在命令行环境下的工作效率,尤其是在管理远程服务器时。

http://www.dtcms.com/a/352725.html

相关文章:

  • AI一周事件(2025年8月20日-8月26日)
  • 74hc4094芯片点亮LED闪烁问题的解决
  • JS(面试)
  • 深度学习——激活函数
  • 碳化硅衬底 TTV 厚度不均匀性测量的特殊采样策略
  • Redis哨兵机制:高可用架构的守护神!⚔️ 主从秒级切换实战指南
  • 力扣LCP 46. 志愿者调配随笔
  • 基于Spring Boot+Vue的生活用品购物平台/在线购物系统/生活用户在线销售系统/基于javaweb的在线商城系统
  • 微生产力革命:AI解决生活小任务分享会
  • AI 解决生活小事 2——用 AI 做一回新闻播客
  • 解决mac brew4.0安装速度慢的问题
  • 卫星轨道动力学基本理论
  • 精品短剧《奔腾的心》正式开机,以匠心描绘新时代西藏故事
  • 深入解析达梦数据库:模式分类、状态管理与实操指南
  • 21款m1 max升级到macOS 13——Ventura
  • ModuleNotFoundError: No module named ‘dbgpt_app‘
  • 【开源工具】基于Flask与Socket.IO的跨平台屏幕监控系统实战(附完整源码)
  • 宠物智能手机PetPhone技术解析:AI交互与健康监测的系统级创新
  • 设计模式与设计原则简介——及其设计模式学习方法
  • 【Java】异常处理:从入门到精通
  • `open()` 系统调用详解
  • Day7--HOT100--54. 螺旋矩阵,48. 旋转图像,240. 搜索二维矩阵 II
  • LeetCode 32. 最长有效括号
  • 安卓接入通义千问AI的实现记录
  • 基于Springboot学生社区管理系统源码
  • uniapp H5禁止微信浏览器长按出菜单,只针对图片
  • 迅睿CMS自定义网站表单:HTML方式调用Select下拉选项数据指南
  • HTML(面试)
  • 【开题答辩全过程】以 微信小程序的医院挂号预约系统为例,包含答辩的问题和答案
  • 【开题答辩全过程】以 微信小程序的老年活动中心为例,包含答辩的问题和答案