标签: gnu-screen

GNU屏幕生存指南

人们的想法不仅仅是你需要了解的关于优秀屏幕实用程序的基本内容,还有你认为值得从头开始教某人,初学者的事情吗?

我刚刚向Screen介绍了一位朋友,他们很难适应它.因此,用于记住绑定等的类比和方便技巧将是非常棒的.

gnu-screen

106
推荐指数
10
解决办法
5万
查看次数

使用鼠标在tmux中恢复旧的复制粘贴行为

这就是我以前在tmux中复制粘贴所做的事情(使用鼠标,键盘的工作方式不同,这不是我感兴趣的):

  1. 用鼠标选择文本,按下左键
  2. 使用中键粘贴文本

我升级了我的操作系统,这已经获得了一个新的tmux版本.我没有更改.tmux.conf配置文件.

这是我对目前的版本做tmux,1.6(其中来自预包装在最新的Linux crunchbang):

  1. 用鼠标,按住左键 shift键选择文本
  2. 使用中键粘贴文本
  3. 终端被阻止,一个小小的信息区域显示当前窗格右上角的一些数字(即[0/24],可能与粘贴了多少个字符有关),这对我来说意义不大,我不需要/想要(编辑:它似乎copy-mode在这里自动输入)
  4. 我必须q按键才能再次获得功能终端.

对于我每天做几十次的事情来说,这太麻烦了.如何让旧机制再次运作?

terminal gnu-screen tmux

102
推荐指数
8
解决办法
8万
查看次数

什么是一个好的Java,类似于curses的终端应用程序库?

我想编写一个执行屏幕操作的Java终端应用程序.是否有任何好的库允许你像*nix/C世界中的curses一样操纵屏幕?

我正在寻找的最小功能是窗口和用户输入支持.

在功能方面,我希望有一个终端区域,其中一些数据定期更新,同时(同时)用户可以在屏幕的其他部分输入命令/文本.

java terminal console gnu-screen console-application

93
推荐指数
5
解决办法
7万
查看次数

GNU屏幕没有响应,似乎被阻止了

GNU Screen似乎冻结了.无法输入用户输入.

我正在使用GNU屏幕,当我按下屏幕时,它变得没有响应.我可以执行所有GNU屏幕命令,但不能输入用户输入.我不想杀死这个屏幕,因为我有重要的工作,我不想失去它.

linux gnu-screen kill freeze

76
推荐指数
3
解决办法
5万
查看次数

如何在切片"屏幕"终端上​​下滚动

我刚安装screen并喜欢将linux终端分成多个部分的想法.但我无法弄明白一件事:当我进去时,如何向上和向下滚动screen.当我使用常规的Linux终端时,我可以用screen或实现这个screen.但不幸的是,它不适用于分割终端.

这就是我说screen和分割终端时的意思: 在此输入图像描述

这是一个常规的终端(以防万一): 在此输入图像描述

unix linux terminal ubuntu gnu-screen

74
推荐指数
4
解决办法
6万
查看次数

怎么知道我是否在屏幕上?

在linux中使用屏幕时,如何判断我是否在屏幕上?我可以这样做exit,如果我在一个屏幕上,我将退出屏幕,但如果我不在,那么我最终会关闭我的终端.

在做的时候screen -r,我可以看到我是否连接了其他屏幕,但是如何知道我当前的终端是否是其中一个连接的屏幕?

linux shell gnu-screen

70
推荐指数
3
解决办法
2万
查看次数

如何将GNU Screen复制缓冲区复制到剪贴板?

使用GNU Screen时,我们可以使用该命令使用回滚缓冲区,也称为"复制模式"Ctrl+a+[.

在那里,我们可以通过选择文本并再次按下来将文本复制到复制缓冲区.spacespace

有没有办法将此文本从屏幕复制缓冲区复制到X剪贴板?

在我的情况下,我使用Ubuntu 12.04与gnome和Xorg.

linux terminal gnu-screen copy-paste gnome-terminal

65
推荐指数
5
解决办法
4万
查看次数

如何从bash脚本发送control + c?

我在bash脚本中启动了一些屏幕,然后runserver在每个屏幕中运行django的命令.我希望能够以编程方式阻止它们,这需要我发送Control+crunserver.

如何从我的bash脚本发送这些击键?

bash gnu-screen

57
推荐指数
3
解决办法
10万
查看次数

网络中断后自动(或更轻松地)重新连接到屏幕会话

补充:我相信这个问题现在归入了这个问题: 完全透明地自动使用GNU Screen

另请参阅此相关问题:https:
//superuser.com/questions/147873/ssh-sessions-in-xterms-freeze-for-many-minutes-whenever-they-disconnect

原始问题:

如果有一种方法可以ssh到一台机器并立即重新连接到特定的屏幕会话,那将是很好的.你可以这样做:

laptop> ssh server.com screen -ls
Run Code Online (Sandbox Code Playgroud)

它将显示server.com上可用的屏幕列表,如[1]:

123.pts-1
456.pts-2
Run Code Online (Sandbox Code Playgroud)

然后你可能会尝试这样做:

laptop> ssh server.com screen -dr pts-2
Run Code Online (Sandbox Code Playgroud)

但那失败了,说"必须连接到终端".你必须首先ssh然后在server.com上执行"screen -dr pts-2",如果你有一个片状连接并断开很多连接,这是不好的.您希望能够通过笔记本电脑上的简单"向上箭头输入"继续.(或者让它更自动化.)

我对这个问题有一个可怕的解决方案,我将其作为答案发布,希望它能够被遗忘以支持正确的方法来解决这个问题.


脚注:

[1]或者,更好的是,如果您使用" screen -S foo"和" screen -S bar" 等名称创建了屏幕会话,那么您将获得更友好的列表,如:

123.foo
456.bar
Run Code Online (Sandbox Code Playgroud)

并且可以重新连接,例如" screen -dr foo".


迷你屏幕教程,结合这个问题的答案:

登录到server.com并执行操作

screen -S foo 
Run Code Online (Sandbox Code Playgroud)

然后再也不会退出该会话.要从其他地方重新连接,请执行此操作

ssh -t server.com screen -dr foo
Run Code Online (Sandbox Code Playgroud)

列出要重新协调的可用屏幕:

screen -ls
Run Code Online (Sandbox Code Playgroud)

或者,当然,

ssh server.com screen -ls
Run Code Online (Sandbox Code Playgroud)

远程检查server.com的可用屏幕.

我现在使用以下别名(tcsh),基于Jason的答案,连接到命名屏幕(如果存在)或创建并连接:

alias ssc 'ssh -t \!:1 "screen -S \!:2 -dr || screen -S …
Run Code Online (Sandbox Code Playgroud)

ssh scripting automation gnu-screen

55
推荐指数
1
解决办法
3万
查看次数

杀死所有分离的屏幕会话

当我执行时screen -ls,我看到以下内容.我该如何杀死所有独立的会话?

屏幕上有:

    84918.ttys002.ros-mbp   (Detached)

    84944.ttys008.ros-mbp   (Detached)

    84970.ttys013.ros-mbp   (Attached)

    84998.ttys002.ros-mbp   (Detached)

    85024.ttys002.ros-mbp   (Detached) 
Run Code Online (Sandbox Code Playgroud)

/var/folders/86/062qtcyx2rxbnmn8mtpkyghs0r0r_z/T/.screen中的5个套接字.

gnu-screen

49
推荐指数
3
解决办法
6万
查看次数