安装教程
|
|
screen使用教程
screen常用命令,分屏
如果一个screen实例中有多个窗口,其他窗口也有人叫做区块
|
|
C/P模式和操作 screen的另一个很强大的功能就是可以在不同窗口之间进行复制粘贴了。使用快捷键C-a 或者C-a [可以进入copy/paste模式,这个模式下可以像在vi中一样移动光标,并可以使用空格键设置标记。其实在这个模式下有很多类似vi的操作,譬如使用/进行搜索,使用y快速标记一行,使用w快速标记一个单词等。关于C/P模式下的高级操作,其文档的这一部分有比较详细的说明。
一般情况下,可以移动光标到指定位置,按下空格设置一个开头标记,然后移动光标到结尾位置,按下空格设置第二个标记,同时会将两个标记之间的部分储存在copy/paste buffer中,并退出copy/paste模式。在正常模式下,可以使用快捷键C-a ]将储存在buffer中的内容粘贴到当前窗口。
参考链接
用法详解
语法
|
|
选项
|
|
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始
|
|
screen配置
这段配置是在网上copy下来的,以我的使用需求不配置也不影响什么
config
there are two configure file of screen on linux,
- /etc/screenrc
- ~/.screenrc
here is my .screenrc
|
|
issues
"Must be connected to a terminal"
执行 screen 的时候碰到这个错, 先执行 script /dev/null
或者在screen命令后加上 -d -m 参数即可执行不会报错.
因由:因为服务器需要定时重启一个特定服务,该服务用screen命令启动,到时间执行的时候遇到报错:Must be connected to a terminal。
如何用bash脚本创建screen并向其发送命令?
|
|
|
|
解析命令-ChatGPT
这些命令是使用 screen 进行会话管理和自动化输入的示例。我们来逐个解析:
1. screen -dmS test
各部分解析:
- screen:启动 screen 会话,screen 是一个终端多路复用器,允许在一个终端窗口内运行多个虚拟终端。
- -d:这个选项告诉 screen 在后台启动会话。也就是说,screen 会话启动后不会占用当前的终端窗口,而是将其放在后台运行。
- -m:强制启动一个新的会话,即使没有其他正在运行的 screen 会话。
- -S test:指定会话的名称为 test。-S 选项后面的 test 是会话的标识符,通过这个名字,你可以后续对该会话进行操作(例如发送命令、分离等)。
作用:
这个命令的作用是:启动一个名为 test 的 screen 会话,并将其放在后台运行。此时会话没有关联到任何窗口(终端)。它是一个“分离模式”启动的 screen 会话。
—
2. screen -S test -X stuff "ls -a\n"
各部分解析:
- screen:再次调用 screen,用于对已存在的 screen 会话进行操作。
- -S test:指定要操作的会话名称为 test。
- -X:执行对 screen 会话的命令。-X 选项让我们向 screen 会话发送命令。
- stuff "ls -a\n":stuff 命令将 ls -a(列出当前目录的所有文件,包括隐藏文件)发送到指定会话的当前窗口中,并模拟按下回车键(\n)。这等同于在该会话的终端中执行了 ls -a 命令。
作用:
该命令将 ls -a 这个命令发送到名为 test 的 screen 会话中的当前窗口,模拟在该窗口执行 ls -a。由于是后台操作,所以并不会直接在终端显示输出,命令的结果会被发送到该 screen 会话的输出流。
—
3. screen -S test -p 0 -X stuff "ls -a\n"
各部分解析:
- screen:同样,调用 screen 来操作会话。
- -S test:指定会话名称为 test。
- -p 0:指定窗口编号为 0,即第一个窗口。screen 会话可以包含多个窗口,这个命令告诉 screen 要向编号为 0 的窗口发送命令。
- -X stuff "ls -a\n":将 ls -a 发送到指定窗口,并模拟按下回车键。
作用:
该命令将 ls -a 命令发送到名为 test 的 screen 会话中的第一个窗口(编号为 0),并模拟按下回车键。这意味着,如果会话已经包含多个窗口,这个命令只会作用于第一个窗口,而不会影响其他窗口。
—
总结
- screen -dmS test:在后台启动一个新的 screen 会话,命名为 test。
- screen -S test -X stuff "ls -a\n":向名为 test 的 screen 会话的当前窗口发送 ls -a 命令并执行。
- screen -S test -p 0 -X stuff "ls -a\n":向名为 test 的 screen 会话的第一个窗口(编号为 0)发送 ls -a 命令并执行。
这些命令组合起来,可以实现对后台 screen 会话的自动化控制和命令发送,适用于需要在后台运行的程序和脚本的自动化管理。