找回密码
 立即注册
搜索
查看: 575|回复: 0

screen——基于会话的多窗体复用终端

[复制链接]

267

主题

0

回帖

1154

积分

管理员

积分
1154
发表于 2023-12-26 00:14:52 | 显示全部楼层 |阅读模式

你是否遇到过 ssh 或 telnet 到服务器执行一个长时间的任务,等了几个小时离完成只剩几秒钟时网络中断了,重连后一切等待付诸东流的狗血剧情?

screen 是一款基于会话的多窗体复用终端工具。用户可以创建若干个会话(session),每个会话又可以创建多个窗体,窗体可以在后台运行又可以部分地放在前台上下左右分屏显示。使用它可以解决你的烦恼,远程连上服务器执行命令后随便断开终端,关电脑潇洒走人让程序自己跑即可。过段时间远程连上服务器附着终端(attach),瞄上两眼。

会话管理

会话状态

Attached(被附着,即有用户进入会话)
Detached(分离状态,即没有用户进入该会话)

创建会话

1、创建自动命名的会话

screen

2、创建一个命名的会话

screen -S <name> 

会话可以重名,会以不同的 PID 被区分(PID.name)

3、创建一个命名的会话或附着到已存在会话(推荐)

screen -R <name>

不同于 -S,-R 会判断指定名字的会话是否已存在,若存在则直接附着。

分离会话

在 screen 终端里按下 Ctrl+a d 键,此时回到父终端,screen 终端将继续运行。

查看会话

screen -ls

附着会话

screen -r <pid/name>

附着一个会话,如果已经被附着则会提示已被占用。

也可以用 -R  附着,不可以用 pid,会被当成 name 处理。

同步附着会话

screen -x <pid/name>

用 -x 替换 -r 可好玩儿了,已被附着的会话也可以被附着,而且任意操作都会反应到其他用户。这简直就是终端界的“远程桌面”了。

结束会话

1、在会话里结束会话

(1) 退出命令

exit

终端结束后会回到父终端

(2) 快捷键
Ctrl+a k

2、不附着会话的情况下结束会话

screen <-R/-S/-r> <pid/name> -X quit

-R、-S、-r 三者任意一个就可以

窗体操作

在一个会话中通过快捷键可以创建多个窗体。可以只显示一个窗体,也可以将显示屏分成上下左右多个区域来显示窗体。

Ctrl+a c 创建一个窗体,会自动打开 shell
Ctrl+a " 列出所有窗体,然后可以通过方向键或数字键选择显示指定窗体
Ctrl+a 0 输入一个数字,显示该编号的窗体
Ctrl+a n 切换到下一个窗体
Ctrl+a p 切换到上一个窗体
Ctrl+a A 重命名当前窗体(注意,大写字母需要使用组合键 Shift + a

显示区操作

显示区并不是窗体,而是供窗体显示的区域,同一个窗体可以显示在不同的分区

Ctrl+a S 将当前显示区(region)分为上下两个区
Ctrl+a | 将当前显示区(region)分为左右两个区(注意,是竖线,不是 I 或 l)
Ctrl+a Tab 将焦点切换到下一个显示区
Ctrl+a X 关闭当前区域
Ctrl+a Q 关闭除当前区域外的所有显示区

显示区的大小是可以根据需要调整的,这里就不细说了。

其他快捷键

Ctrl+a ? 显示帮助信息


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棱讯科技 ( 粤ICP备2024228160号-2|粤公网安备44030002003510号 )

GMT+8, 2024-11-21 20:58 , Processed in 0.016512 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表