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

screen用法

screen 是 Linux 系统中强大的终端复用工具,允许你在单个终端窗口中创建多个独立的会话,并在会话间自由切换。即使断开连接,会话也会继续运行,特别适合长时间任务(如编译、下载)。以下是其核心用法:

一、基本操作

1. 创建新会话
screen              # 创建无名称的会话
screen -S mysession  # 创建名为 mysession 的会话
2. 断开会话(让任务在后台运行)

在会话中按 Ctrl + A 然后按 d(即先按住 CtrlA,松开后再按 d)。
系统会提示:[detached from <会话ID>.mysession]

3. 恢复会话
screen -r           # 恢复最近断开的会话
screen -r mysession  # 恢复指定名称的会话
screen -r <会话ID>   # 恢复指定 ID 的会话(如 12345.mysession)
4. 列出所有会话
screen -ls          # 显示所有已连接和断开的会话

输出示例:

There are screens on:12345.mysession  (Detached)23456.another    (Attached)
2 Sockets in /run/screen/S-user.
5. 终止会话
  • 方法1:在会话内输入 exit 或按 Ctrl + D
  • 方法2:在会话外通过 ID 强制终止:
    screen -S mysession -X quit  # 终止指定会话
    screen -wipe                 # 清理已终止但未释放的会话记录
    

二、会话管理快捷键

在 screen 会话中,所有快捷键都以 Ctrl + A 作为前缀,以下是常用组合:

快捷键功能描述
Ctrl + A d断开当前会话(Detach)。
Ctrl + A c创建新窗口(会话内的子窗口)。
Ctrl + A n切换到下一个窗口。
Ctrl + A p切换到上一个窗口。
Ctrl + A 0-9直接切换到指定编号(0-9)的窗口。
Ctrl + A "显示所有窗口列表,并可选择切换。
Ctrl + A w显示窗口列表(类似任务栏)。
Ctrl + A k关闭当前窗口(需确认)。
Ctrl + A S水平分割窗口(Split)。
Ctrl + A |垂直分割窗口(需启用 vbell off 选项)。
Ctrl + A Tab在分割的窗口间切换。
Ctrl + A Q关闭除当前窗口外的所有窗口(Quit other windows)。
Ctrl + A ?显示所有快捷键帮助。

三、高级用法

1. 会话共享(多人协作)

允许其他用户连接到你的 screen 会话,实现实时协作:

# 主机用户允许共享
screen -S mysession -x# 客户端用户连接
screen -x 主机用户名/mysession
2. 窗口命名

为当前窗口设置名称,方便识别:

Ctrl + A A  # 进入窗口命名模式,输入新名称后回车
3. 滚动和复制模式
Ctrl + A [  # 进入复制/滚动模式(可用方向键或 PageUp/Down 滚动)
# 按 Space 开始选择,按 Enter 结束选择并复制
Ctrl + A ]  # 粘贴复制的内容
4. 配置文件

创建 ~/.screenrc 配置文件,自定义 screen 行为,例如:

startup_message off  # 关闭启动信息
vbell off            # 关闭提示音
defscrollback 10000  # 增加滚动缓冲区行数

四、常见问题

1. 会话已“Attached”无法恢复

若会话显示为 (Attached),说明已在其他终端连接:

screen -r -d mysession  # 强制断开其他连接并恢复
2. 乱码或屏幕显示异常
Ctrl + A z  # 暂停 screen,然后在外部终端输入:reset
fg          # 恢复 screen
3. 后台运行命令

创建会话时直接执行命令:

screen -dmS mysession long-running-command  # 后台运行命令

五、替代工具

  • tmux:功能更强大,配置更灵活,支持鼠标操作,推荐作为 screen 的现代替代。
    安装:sudo apt install tmux(Debian/Ubuntu)。
  • byobu:基于 screen/tmux 的增强工具,界面更友好,适合新手。

总结

掌握 screen 的核心命令(-S-r-ls-d)和快捷键(Ctrl + A dCtrl + A c),可以大幅提升远程操作效率,尤其适合需要长时间运行任务的场景。通过配置文件和自定义快捷键,还能进一步优化使用体验。

http://www.lryc.cn/news/576464.html

相关文章:

  • Gradio全解13——MCP详解(4)——TypeScript包命令:npm与npx
  • 服务器的维护技术都有哪些?
  • Flutter基础(Isolate)
  • 【论文阅读笔记】知网SCI——基于主成分分析的空间外差干涉数据校正研究
  • 开疆智能CCLinkIE转ModbusTCP网关连接傲博机器人配置案例
  • 舵机在不同类型机器人中的应用
  • JVM调优实战 Day 10:性能指标采集与可视化
  • 【闲谈】技术债:软件开发的隐形杀手
  • Redis高级数据结构深度解析:BitMap、布隆过滤器、HyperLogLog与Geo应用实践
  • JWT认证性能优化实战指南
  • 《剖开WebAssembly 2.0:C++/Rust内存管理困局与破局》
  • 剑指offer48_两个链表的第一个公共节点
  • 叉车考试真题(含答案)pdf下载
  • 告别脚本!用浏览器为 AWS CLI 实现真正的 Cognito 单点登录
  • 案例开发 - 日程管理系统 - 第一期
  • PostgreSQL对比Mysql
  • WPS之PPT镂空效果实现
  • Lua现学现卖
  • 数据湖 vs 数据仓库:数据界的“自来水厂”与“瓶装水厂”?
  • 如何利用好doctor
  • lambda、function基础/响应式编程基础
  • JSON简介及其应用
  • 【世纪龙科技】新能源汽车动力电池总成装调与检修教学软件
  • Python助力自动驾驶:深度学习模型优化全攻略
  • JavaScript中Object()的解析与应用
  • InfluxDB 3 Core最后值缓存深度实践:毫秒级响应实时数据的核心引擎
  • Linux 内存调优之 BPF 分析用户态小内存分配
  • scGPT-spatial 复现
  • 创建套接字时和填充地址时指定类型的异同
  • 测试用例设计方法汇总