问题标签 [screenrc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - screenrc 中的 shell 命令
我正在尝试改进我的屏幕软件,所以我会有很多问题,因为我很难在互联网上找到很多答案......无论如何,这个是关于我希望 screen 的 shell 命令打开时执行,并没有...
在屏幕的新会话上,我要求屏幕打开一些窗口并命名它们并在每个窗口中打开一个文件,然后垂直拆分并打开新的空窗口:
但是这些文件像往常一样创建 .file.txt.swp 和 .file.txt.swo 隐藏文件,所以当我的计算机关闭并且文件没有正确关闭时,当我重新打开屏幕时,它会询问我必须对 . sw* 文件...我想先运行这个命令rm /path/to/folder/.*.sw*
,这样它在打开时就不会要求执行操作(“.file.txt.swp 已经存在![O]open, [E]dit Anyway, [R] ecover,[Q]uit,[A]bandoned")
在 shellrm path/to/folder/.*.sw*
中按预期删除每个交换文件,但我无法使其在 .screenrc 中工作
这不起作用:
这也不是:
也不是这个:
甚至这个:
还有很多其他的“盲目”尝试......
好吧,我不知道我在做什么:p
gnu-screen - GNU 屏幕动态标题
我的设置适用于一台计算机(linux mint 18.3 sylvia),而不适用于另一台计算机(Ubuntu 14.04.5 LTS),我真的不知道要检查什么才能找到问题:
我正在使用 GNU 屏幕,我输入了每个窗口的名称,当我更改目录或运行任务时,它们会动态变化。
例如,如果我提示cd ~/desktop
它会显示~/desktop cd ~/desktop
. 如果然后我提示cd ..
它会显示~ cd ..
。
问题是,在第二台计算机上,它不起作用,或者更确切地说,它工作了一半,但我不明白如何。
以下是配置的工作方式:一部分在 .screenrc 文件中,另一部分在 .zshrc 文件中。
.screnrc:
%t
是标题的一部分,应该用 PATH_SPACE_STRING 展开
它的工作原理归功于我在 .zshrc 文件中放入的内容,它使 shell 输出标题转义序列(esc k title esc),如此处要求的https://www.gnu.org/software/screen/manual/html_node/动态标题.html
.zshrc:
where%~
代表当前路径,$1
是在提示符中输入的字符串
但是经过几次测试,我知道运行 ubuntu 的计算机不会听我在 .zshrc 文件中放入的内容,但它无论如何都会扩展%t
到路径中(所以我将路径作为标题,而不是路径加提示命令)
如果不是我在 .zshrc 文件中写的,什么可以给屏幕动态地将当前路径作为标题的指令?以及如何覆盖它?
gnu-screen - 你如何从你的screenrc设置复制模式?
我想默认从屏幕进入复制模式。现在,我正在使用stuff
启动服务器。然后我想进入复制模式,这样我就可以使用鼠标向上滚动。
我不能只是使用stuff "Ctrl-a ESC"
(即使Ctrl-a ESC
从终端设置屏幕模式输入就好了)。
有Ctrl-a
我可以填充的特殊字符吗?(比如^M
退货)
linux - 将屏幕会话配置为与 xterm 终端完全相同
我希望能够通过 screenrc 或在会话中配置屏幕会话,使其行为类似于 xterm 终端。目前我有一个 ac# 应用程序,它使用 ssh.net 库从 Windows 机器 ssh 到 Linux 机器,我在该机器上附加到屏幕会话并发送命令并接收回复。如果我附加到屏幕会话与我未附加到屏幕会话时相比,我会看到同一命令的两种不同类型和响应。为了演示这个问题,我将使用 putty 终端复制该问题并记录数据。
- 从 Windows 打开一个腻子终端
- 更改 Session->Logging 设置并选择 SSH Packets,同时浏览到保存 putty.log 文件的位置
- 设置您的 IP 地址并连接到 Linux 机器
- 登录后,发出以下命令 printf "abc\6\n",该字符串包含一个 ack 字符
- 响应将打印 abc 当然它不会显示 \6 因为它不是可打印字符
- 打开 putty.log 文件,您将看到响应数据包数据包含 \6,这是正确的行为。
- 现在通过发出以下命令创建会话:screen -dmS test
- 通过发出以下命令附加到会话:screen -Rr test
- 再次发出以下命令 printf "abc\6\n"
- abc 将按预期打印,但是如果您查看 putty.log 中的响应数据包数据,它将不再具有 \6 字符
- 我可以通过管道这样的命令来解决这个问题 printf "abc\6\n" | cat -v 将 \6 转换为可打印形式并在屏幕上显示 ^F,我宁愿在我的数据包数据中接收 \6,这不是一个理想的解决方案,但至少它为我的问题提供了一个解决方案。
以下是我无法解决的更严重的问题。为了演示,请执行以下操作:
- 从 Windows 打开一个腻子终端
- 更改 Session->Logging 设置并选择 SSH Packets 并浏览到保存 putty.log 文件的位置
- 设置您的 IP 地址并连接到 Linux 机器
- 登录后,通过发出以下命令更改 stty 设置(告诉终端不要用回车替换新行):stty -onlcr
- 然后发出命令 ls -al,
- putty.log 文件将包含没有额外字符的正确数据集。
- 现在通过发出以下命令创建会话:screen -dmS test
- 通过发出以下命令附加到会话:screen -Rr test
- 再次发出以下命令 stty -onlcr
- 再次发出 ls -al
- 如果您查看 putty.log 中的响应数据包数据,您会看到在收到一定数量的数据包后,响应将在每个响应前面包含额外的字符。额外字符采用以下格式 [13C. [ 和 C 之间的数字不同。
我想让我的响应与标准 xterm 终端的行为方式相同,为什么会有差异,是否有办法配置屏幕以获得与 xterm 类型的终端一致的响应。