该帖子总结了在.zshrc中有以下内容时在Mac终端中使用Screen的问题
if [[ $STY = '' ]] then screen -xR; fi
Run Code Online (Sandbox Code Playgroud)
如果我开始使用屏幕会话screen -dmS name,我将如何使用脚本访问该屏幕会话的命令历史记录?
使用↑,即使在屏幕中也会显示最后执行的命令.
在使用-L标志运行屏幕时,会创建一个名为"screenlog.0"的文件,并将所有输出写入其中(这很棒),但我将运行多个屏幕会话,我需要使用唯一编号标识日志.是否可以更改日志名称?
屏幕很棒,当然,但我不想考虑它.我经常ssh到一台机器,开始做一堆东西,然后想"天哪,我希望我在做这一切之前想到开始一个屏幕会议,所以我可以在以后从家里重新连接到这个".
每当我登录到机器时,我都想自动启动屏幕.当我断开连接时,我希望能够立即简单地重新连接,而不必担心"screen -ls"和"screen -dr".
我有一个脚本,实现了这个问题的一个解决方案,我将作为答案发布.我很想看到其他方法.
我知道如何在启动时在单个屏幕会话中创建多个窗口:
但是,一旦我启动并运行,有没有办法可以将我的输入发送到所有打开的窗口,而不仅仅是当前关注的窗口?
突然间,我的screen/tmux在每个命令后都开始改变我的windows名字.他们不断将名称更改为$PROMPT_COMMAND终端上每个操作的值,即使在手动重命名后(通过Ctrl+A A屏幕或Ctrl+B在tmux上).
在tmux上我已经尝试更改tmux.conf设置以禁用窗口自动重命名关闭,但似乎它被忽略了.
我在没有标准/etc/bashrc配置文件的情况下使用bash .我的发行版是Fedora 18.
当我在终端工作时,我看到最后一个shell命令执行输出的历史.如果我运行vim,我会看到我打开全屏的文件.当我退出vim时,我可以再次看到最后一个shell命令的历史记录.
但是,当我从屏幕使用vim时.我看到我刚从vim退出时编辑的文件的足迹而不是最后一个shell命令的历史记录.我想看看shell的历史.
我怎样才能实现这种行为?
我用了:
到目前为止,我没有得到理想的行为.
PS
我用Google搜索了一下,看到了那些试图解决相反问题的人的评论:
你们中的许多人可能都知道基于控制台的程序的烦人行为,例如less或vi在退出后恢复屏幕,这样你刚才那里的文字就会消失.
这种行为背后的主要思想是程序是否使用备用屏幕来保存shell历史记录的图片并在vim退出时显示它.因此,如果想要解决相反的问题,他应该
通常tmux只显示与终端当前显示的行数相同的输出.然后当我分离它时,它会清除所有内容.我知道如何看待回溯(ctrl+A,[,k,...),但我怎么可以配置TMUX只打印了所有输出终端,因为如果我不使用它呢?
我喜欢tmux因为我很难记住nohup某些任务,并且因为它使查看长时间运行作业的输出变得更容易.不过,我想能够更自然地查看其回溯,通过简单地滚动回在iTerm2.
或者,如果有办法做到这一点screen,我也可以使用它.
背景:我有一个长时间运行的脚本,它使数据库模式更改具有我希望在迁移后检查的输出.我想把它写到一个文件.
我一直在读关于nohup和屏幕的堆栈溢出.我已经尝试了两者并对两者都有顾虑.
他们说他们用过nohup和腻子杀了这个过程.这怎么可能?我无法使用Mac OS X终端进行复制.
随着screen我害怕键入exit,而不是CTRL + A,d的
此外,如果我在使用屏幕时退出终端应用程序,它似乎保持状态.
屏幕似乎是更好的解决方案,因为它真的很漂亮,你可以打开一堆它们并切换回状态.
在我的情况下你会推荐什么?我没有运行脚本一个月左右(当我有一个发布时).我是否应该更熟悉屏幕并坚持使用它?
如果我在一个conda环境中,可以让我说安装了tensorflow,如果我去屏幕然后python -c "import tensorflow";,它说找不到模块.然而,没有屏幕它很好.