“屏幕”指的是如何重新连接到断开连接的 ssh 会话中提到的程序。那是一个很好的设施。
但是有一个问题我很想知道。我怎么知道我是否在“屏幕”内运行?区别在于:
更好的是,我希望在 PS1 提示中显示此状态,以便我可以随时自动看到它。
基本上就像我在下面发布的一些我自己的一样。我正在寻找程序“屏幕”的附加功能。至少看看最后一行屏幕会话底部的一个很棒的“菜单栏”。
## gyaresu's .screenrc 2008-03-25
# http://delicious.com/search?p=screenrc
# Don't display the copyright page
startup_message off
# tab-completion flash in heading bar
vbell off
# keep scrollback n lines
defscrollback 1000
# Doesn't fix scrollback problem on xterm because if you scroll back
# all you see is the other terminals history.
# termcapinfo xterm|xterms|xs|rxvt ti@:te@
# These will let you use
bind -c selectHighs 0 select 10 #these three commands are
bind -c selectHighs 1 select 11 #added to the …Run Code Online (Sandbox Code Playgroud) 当我在 putty 会话中使用 screen 时,我似乎无法使用 putty 的回滚缓冲区来查看刚刚从屏幕上滚动的任何内容。相反,我只是在运行屏幕之前查看 putty 会话中发生了什么。
我在这里缺少什么?我喜欢能够向后滚动,我不想使用屏幕功能查看过去的缓冲区;我鼠标上的滚轮没有钩到屏幕上,我不希望它会。
谢谢!
刚刚了解了 linux 上的 screen 命令 - 它是天才。我喜欢它。但是,屏幕中的实际终端/提示的外观和行为与我的标准 bash 提示不同。也就是说,颜色不一样,选项卡完成似乎不起作用等。
有没有一种方法可以让 screen 表现得像一个正常的(至少,像我习惯的那样正常)bash 提示?
我通过 ssh 从 Mac(终端)连接到无头 linux 机器(Ubuntu)。登录后,我有TERM=xterm-color,当我运行 screen 我有TERM=screen。
我将尝试下面的建议,看看我是否可以先更改该$TERM值。
我被说服了一个用户来运行一个特定的长时间运行的脚本。我想使用 screen 但我收到错误消息“无法打开您的终端 '/dev/pts/4' - 请检查。”
所以我在谷歌上搜索并发现了一个论坛帖子,指示运行$ script '/dev/null/'. 我这样做了,然后我就可以筛选了。
为什么这样做?su 在做什么,该屏幕无法以 su 用户身份运行?为什么将“脚本”重定向到 /dev/null 否则会被阻止?是否使用脚本将原始用户的日志写入某处?
我搜索过,但在任何地方都找不到解决方案。我正在使用 Windows 中的 PuTTY 连接到运行 bash 和 screen 的各种服务器。bash 似乎可以使用 ctrl-arrow 键在命令行上逐字跳转,但在屏幕内它不起作用。不在屏幕中,ctrl-left 发送“^[OC”,ctrl-right 是“^[OD”。在屏幕中,我得到了“^[[C”和“^[[D”,这似乎只是左/右箭头键。有没有办法让屏幕在使用 PuTTY 时识别 ctrl 箭头键?(仅供参考,我不记得在 linux 中使用 gnu-terminal 而不是 PuTTY 时有这个问题)。
更新:看来 PuTTY 是问题所在,因为它没有发送使其工作所需的转义码。我现在放弃并使用 Cygwin+mintty。
所以我使用GNU Screen来管理多个正在运行的脚本/程序。多路复用和可拆卸性非常有用。
我从磁盘中删除了一个脚本,现在我在查找备份时遇到了一些麻烦。但是,其中一个终端会话在删除文件之前正在执行脚本,并且它继续正常工作。
有没有办法劫持当前正在运行脚本的终端会话来恢复这个文件的内容?
我正在致力于自动化维护例程,该维护例程涉及启动和停止在屏幕会话中运行的脚本。我的方法是终止屏幕会话,然后重新启动它并从脚本中运行命令,使用创建屏幕和传递命令而不需要附加到屏幕的能力。
但是,我在这方面遇到了困难。我可以正确创建屏幕而无需使用screen -d -m -S screen_name. 但是,如果我运行基于以下命令的命令:
screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015''
echo -ne '\015' 用反引号而不是单引号包裹。这是模拟用户按下回车键,因为我使用的命令正在移动到一个目录并执行位于那里的脚本。此命令有效,但前提是屏幕创建后已附加到屏幕。当我尝试自动化创建屏幕并在其中运行命令的过程时,我希望避免在脚本中附加和分离。我将尝试创建一个包含我需要在屏幕内执行并根据我的结果进行编辑的命令的 shell 脚本的建议。
有没有办法在一个命令中创建一个屏幕并在屏幕内运行一个命令,或者在创建之后但在执行命令之前不必附加到屏幕?
提前致谢。
**更新 - 尝试了将我需要执行的命令放在 shell 脚本中的建议后,我已经能够成功创建一个屏幕并从屏幕内执行命令,但是我得到了脚本停止运行时的行为屏幕也关闭。这不应该是一个问题,因为脚本是一个日志脚本,它应该只在系统管理员的知识或我试图开发的脚本中停止,但是最好以这样的方式设置屏幕如果脚本停止,则不会消失。是否有可能实现这种行为?**
由于我整天都在使用*nix 命令screen,并且找不到任何人提出这个问题,我认为应该开始。你知道练习:社区维基,每个功能一个答案,所以我们都可以投票。
我正在使用Screen实用程序并希望在机器重新启动时保留会话。如果不可能,您可以推荐Screen 的其他替代方案,以允许在重新启动之间保留会话。
如果重要的话,我正在使用 Ubuntu Server 10.04 (Lucid Lynx)。
我通过 Screen 打开了几个会话。当机器重新启动时,所有这些会话都丢失了,我必须再次重新打开它们。我想找到一种方法来保留这些 Screen 会话。