Linux Screen命令用法
- Linux
- 10天前
- 121热度
- 0评论
Linux Screen 使用笔记
一、常用场景与命令说明
在日常使用 Linux 服务器时,screen 是一个非常实用的工具。它可以在断开终端连接后,保持程序继续运行。以下是最常用的操作命令:
| 使用场景 | 命令 | 说明 |
|---|---|---|
| 新建会话 | screen -S 会话名 |
创建一个新的会话,S 表示 Session |
| 挂起会话 | Ctrl + A → D |
将当前会话挂起(Detach) |
| 查看会话列表 | screen -ls |
查看当前存在的所有会话 |
| 恢复会话 | screen -r 会话名 |
重新连接到指定会话(Resume) |
| 强制接管被占用会话 | screen -d -r <ID> |
用于强制分离并重新连接被其他终端占用的会话 |
| 退出会话 | exit 或 Ctrl + D |
结束当前会话 |
提示:大多数场景只需要掌握以上五个命令即可应付日常使用。
二、基本练习流程
以下是一套推荐的练习流程,帮助熟悉基本操作:
# 1. 新建一个名为 test 的会话
screen -S test
# 2. 在会话中执行命令
echo "hello screen"
# 3. 挂起会话
# 按下 Ctrl + A 然后按 D
# 4. 查看当前会话
screen -ls
# 5. 恢复会话
screen -r test
# 6. 退出会话
exit
建议每天练习一遍,熟悉命令和按键组合。重复几次后会形成肌肉记忆。
三、常用命令速查表
可将以下内容保存到笔记或配置文件中备用:
# Screen 常用命令速查表
- 创建会话:screen -S <name>
- 挂起会话:Ctrl + A, D
- 查看会话:screen -ls
- 恢复会话:screen -r <name>
- 退出会话:exit
四、进阶功能
在熟悉基础操作后,可以学习一些扩展用法:
| 功能 | 命令 | 说明 |
|---|---|---|
| 创建会话并执行命令 | screen -S jobname command |
创建会话后直接执行命令 |
| 强制结束指定会话 | screen -X -S name quit |
用于清理无用的后台会话 |
| 分屏(上下) | Ctrl + A → S |
将屏幕上下分割 |
| 分屏(左右) | Ctrl + A → | |
将屏幕左右分割 |
| 切换分屏 | Ctrl + A → Tab |
在不同分屏之间切换 |
五、命令别名设置(推荐)
为减少输入错误,可以在 ~/.bashrc 中添加以下别名:
alias scnew='screen -S'
alias sclist='screen -ls'
alias screcon='screen -r'
刷新配置后即可使用更简短的命令:
scnew test
sclist
screcon test
六、使用建议
1. 经常使用 screen -ls 查看会话状态,防止遗忘后台进程。
2. 命名会话时尽量用有意义的名称(如 web, data, compile)。
3. 若终端断线,可直接使用 screen -r 恢复任务。
4. 若有多个会话,使用 screen -r <name> 指定恢复。
5. Linux Screen 中 detach 操作总结
5.1. 核心定义
在 Linux Screen 语境下,detach(分离) 指将当前 Screen 会话与终端窗口“解绑”,会话内程序仍在后台持续执行,不会因终端断开/切换而终止。
5.2. 生活化类比
- 场景:用 Screen 运行文件传输(如
scp)任务,Screen 会话相当于“独立工作间”,文件传输是“正在进行的工作”。 - detach 操作(
Ctrl + A → D):暂时走出工作间,工作间内的文件传输不中断。 - 后续操作:通过
screen -r 会话名可重新“进入工作间”,查看/继续操作。
5.3. 关键特性与作用
- 程序不中断:远程执行耗时任务(编译、备份、脚本运行)时,即使网络断开/终端关闭,任务仍安全后台运行。
- 会话可复用:detach 后会话保留(
screen -ls可查看),支持从同一/其他终端(或设备)重新连接。 - 操作无感知:会话内程序不会收到“终端断开”信号,按原逻辑运行。
5.4. 与 exit 的核心区别
| 操作 | 对会话的影响 | 对会话内程序的影响 | 后续能否恢复会话 |
|---|---|---|---|
| detach | 会话与终端解绑,保留在后台 | 程序持续运行 | 能(screen -r) |
| exit | 直接终止当前会话 | 程序随会话终止而停止 | 不能(会话已消失) |
一句话总结:detach 是“暂时离开”,exit 是“彻底关闭”。
七 screen简介
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
-
会话恢复
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。 -
多窗口
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 -
会话共享
Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
结语:
screen 是一个稳定可靠的远程会话管理工具。熟练掌握它,可以极大地提升服务器操作的安全性与便利性。建议将本笔记保存或打印备查。