Gnu屏幕:命令约100个字符限制 - 无法改变hardstatus


2

我的.screenrc文件中设置了一个hardstatus行:

hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'
# This is 127 characters

我经常登录到与拥有自己喜欢的hardstatus系列的其他用户共享的远程服务器。我想通过在启动会话后将其作为命令输入来更改我的屏幕会话的hardstatus。不幸的是,屏幕在达到大约100个字符后停止接受命令的输入。

当我谈论屏幕命令时,我指的是在绑定ctrl+ 之后输入的命令a :

有没有办法将屏幕命令字符限制增加到超过100个字符,或者在不改变.screenrc文件的情况下设置hardstatus的另一种方法?在会话开始后更改它的解决方案将是首选,但是如果可能的话,在启动屏幕时的命令行选项将是一个很好的选择。

解决此问题的一种方法是将hardstatus行放入文件并输入ctrl+ a :source <file>,或者在启动屏幕后输入:

screen -p <SESSION_NAME or PID> -X hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'

但我真的想知道如何增加命令的字符限制。

提前致谢,

马修


1
我很好奇为什么多个交互式用户在系统上共享一个用户帐户。这似乎是安全/审计的噩梦。如果这个假设不正确,我会问为什么你不能修改〜/ .screenrc - 主要是因为修复这样的问题是该文件的特定目的。只是想确保这不是一个XY问题。
Darth Android

有一个用户帐户具有正确的运行某些作业的环境。公司政策和流程限制对此系统的访问,因此我们无法在其上创建其他帐户。我可以修改.screenrc文件,但在我开始使用系统之前,其他人将其设置为他的首选项,这意味着要更改它。尽管如此,这些都与100个字符命令的限制无关,这是我真正想知道如何改变的。感谢您的兴趣:)
马修

Answers:


1

你不能; 100 char限制是硬编码的(我认为上限是在screen / src / input.c中强制执行的,但函数调用者可能会提供一个较短的缓冲区,因此可能不是唯一需要修补的地方)。

作为一种打字密集度较低的解决方案,我建议先添加.screenrc-DarthAndroid第一个呼叫source .screenrc,然后添加首选覆盖设置; 然后,创建一个shell别名myscr="screen -c ~/.screenrc-DarthAndroid "


我接受了关于行为的100字符限制解释的答案。至于第二段,我可以使用.screenrc文件完成此操作(可选择将其命名为其他内容)。感谢您解决这个谜:)
马修
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.