标签: gnu-screen

如何在屏幕会话中执行命令

我想知道如何在屏幕会话中执行命令。我搜索了一下,发现了这个:

screen -S nameofscreen -X stuff "command"
Run Code Online (Sandbox Code Playgroud)

当我输入此命令时,命令会在屏幕内输入,但不会执行。所以我的问题是如何使用此命令按 Enter 键。

linux gnu-screen enter

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

GNU 屏幕鼠标限制

我典型的开发环境是在全屏终端(通常是 gnome-terminal)中使用 vim 运行 GNU 屏幕会话。我遇到的问题是,当单击 vim 中超出终端第 223 个字符的字符时,鼠标指针无法正确解释。

我已经尝试了另一个问题的解决方案(添加set ttymouse=sgr到我的.vimrc),这解决了直接在终端中运行 vim 的问题,但在屏幕会话中使用 vim 时,鼠标的限制仍然存在。

vim ubuntu gnu-screen gnome-terminal

4
推荐指数
1
解决办法
483
查看次数

GNU 屏幕实际上是如何工作的

因此,我一直试图找到一些关于 GNU 屏幕如何在高位实际工作的信息,而无需实际阅读源代码,但我一直无法这样做。

即使终端会话关闭,屏幕也能保持不变,它有什么作用?它是否作为守护进程或其他东西运行,并且调用 screen 的每个人都只是连接到它,然后它找到要附加到的伪 tty 会话,或者它是否执行完全不同的操作?

gnu-screen

4
推荐指数
1
解决办法
1039
查看次数

如何使用 bash 脚本“设置”屏幕

我正在尝试编写一个 bash 脚本来创建一个带有一组特定窗口的屏幕(软件)会话,以及cd每个窗口的特定目录。

这是我到目前为止的脚本:

#!/bin/bash

killall screen;
screen -AmdS work;
screen -S work bash -c "cd myDir";
Run Code Online (Sandbox Code Playgroud)

问题是我似乎无法更改该会话中的目录。运行这个脚本后,我运行$ screen -r,当前目录仍然是我的默认目录(~/)。

(我已经尝试将cd命令更改为,touch myFile并且在运行脚本后文件就在那里)

linux bash gnu-screen

4
推荐指数
1
解决办法
7238
查看次数

如何在bash中找到正在运行的命令的PID?

我用谷歌搜索了这个问题,但从未发现任何对我的特定情况有用的东西。

所以,我想弄清楚的是某个正在运行的命令的 PID,这样我就可以在必要时终止它。我知道可以通过键入echo $!So来获取命令的 PID

my_command & echo $!

应该给我PID。但事实并非如此,我想我知道为什么:我的命令如下:

screen -d -m -S Radio /path/to/folder -f frequency -r path/to/song

screen首先打开一个分离的,然后输入命令,以便它被执行并继续在后台运行。这样echo显示给我的 PID是错误的。我猜它向我显示了 PIDscreen -d -m -S Radio /path/to/folder -f frequency -r path/to/song而不是在由 screen 创建的新终端中运行的命令的 PID。

但是还有另一个问题:当我screen -ls在终端中运行时,在后台运行的命令没有显示!我相当确定它正在运行,因为 Pi 的 CPU 使用率始终保持在 25%(而不是通常的 0% 或 1%),并且当我输入时,ps au我实际上可以看到命令和 PID。

所以现在我打电话给社区:关于如何在新终端中找到特定命令的 PID 有什么想法吗?我正在编写一个bash脚本,因此必须可以通过代码获取PID。完美的命令是将 PID 存储在变量中!

linux bash pid gnu-screen raspberry-pi3

4
推荐指数
1
解决办法
5788
查看次数

无法在屏幕内部使用pbcopy -clipboard

问题尽管有一个答案被接受但未解决:我们正努力让Jonah的代码起作用.

问题:将(1)的代码更改为(2)

我知道线程.我希望能够在Screen中运行以下代码

代码(1)

cat ~/.vimrc | pbcopy                   (1)
Run Code Online (Sandbox Code Playgroud)

代码(2)

cat ~/.vimrc > /tmp/pbcopy.pipe         (2)
Run Code Online (Sandbox Code Playgroud)

我尝试解决问题: 将以下代码放到.zshrc中

function pbcopy() { "(cat \"$1\")"  > /tmp/pbcopy.pipe } 
Run Code Online (Sandbox Code Playgroud)

我明白了

cat masi | pbcopy          
pbcopy: command not found: (cat "")
cat: masi: No such file or directory
Run Code Online (Sandbox Code Playgroud)

你如何在屏幕内使用pbcopy?

macos gnu-screen pbcopy

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

如何使用screen bash命令修复此问题?

我意外删除了/var/run/screen/S-root/25771.pts-0,当我再次尝试运行屏幕时

screen bash ...
Run Code Online (Sandbox Code Playgroud)

它报道:

/var/run/screen/S-root/25771.pts-0: No such file or directory

我该如何恢复?

bash gnu-screen

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

与ubuntu中的screen命令结合使用时出现Java错误

我正在运行Linux 2.6.38-10服务器#46-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux,我有以下问题:

1)我登录ssh

2)我启动一个屏幕(使用屏幕命令)

3)我启动一个java程序"java -jar ../mlJar.jar> eval1"并将输出传递给eval1

4)我分离屏幕(Ctrl + A,Crtl + D)

5)除非我注销,否则程序将正常运行

6)注销后,当java应用程序尝试打开文件时,会抛出以下异常

java.io.FileNotFoundException: /path/to/my/file.arff (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at java.io.FileInputStream.<init>(FileInputStream.java:79) at java.io.FileReader.<init>(FileReader.java:41) at gr.auth.ee.lcs.utilities.InstancesUtility.openInstance(InstancesUtility.java:74) at gr.auth.ee.lcs.data.representations.complex.ComplexRepresentation.<init>(ComplexRepresentation.java:834) at gr.auth.ee.lcs.data.representations.complex.StrictMultiLabelRepresentation.<init>(StrictMultiLabelRepresentation.java:456) at gr.auth.ee.lcs.implementations.SequentialUCS.<init>(SequentialUCS.java:165) at gr.auth.ee.lcs.implementations.SequentialUCS.createNew(SequentialUCS.java:196) at gr.auth.ee.lcs.FoldEvaluator.evaluate(FoldEvaluator.java:153) at gr.auth.ee.lcs.implementations.global.AllMlTypes.main(AllMlTypes.java:69) Exception in thread "main" java.lang.NullPointerException at gr.auth.ee.lcs.FoldEvaluator.loadFold(FoldEvaluator.java:211) at gr.auth.ee.lcs.FoldEvaluator.evaluate(FoldEvaluator.java:155) at gr.auth.ee.lcs.implementations.global.AllMlTypes.main(AllMlTypes.java:69)

这可能意味着发生这种情况是因为JVM"丢失"了它对该文件夹的访问权限.

任何人都可以帮助解决问题.在其他版本的Linux中,这不会发生.Linux中是否有可以对此进行排序的配置?

谢谢!

java linux ubuntu gnu-screen

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

如何在Debian下的GNU屏幕中获得40多个窗口

我正在使用名为screen的终端程序,它可以在一个"真实"终端中创建几个"虚拟终端"(这里的"虚拟"和"真实"这两个词是非常相对的,"真正的"终端可以是一个konsole标签,如同好吧,不一定是tty1-tty6).问题是我无法在一个屏幕内创建超过40个窗口.当我试图创造更多,屏幕说"没有更多的窗户." 经过一些谷歌搜索后,我发现这是由一个名为MAXWIN的东西控制的,但我没有找到任何有关如何修改这个MAXWIN的信息.如何在单个屏幕内增加最大窗口数?

我用Debian 6"挤".

PS我明白我可以在几个"真实"(在上面的意义上)终端中运行几个屏幕,但是这使得使用多个显示模式(屏幕-x)变得更加困难.

terminal debian gnu-screen

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

stdout和stderr-并排预览

我想将stdout和stderr分开,并能够在程序执行期间并排看到它们。

我知道的所有解决方案都需要将一个或两个流重定向到文件。

我的解决方案:

  1. 将stdout和stderr重定向到不同的文件,然后tail -f将这两个文件重定向到单独的终端窗口或tmux / screen中。这需要3个终端-1个用于命令调用,另外2个用于预览。
  2. 仅将stderr重定向到文件,并将文件重定向到taif -f单独的终端。这需要2个终端-1个用于命令调用和stdout,一个用于stderr预览。

两种解决方案都不方便,因为您必须运行多个命令并在终端之间切换。

有没有更好的解决方案来解决这个问题?有办法避免重定向到文件吗?

bash stdout gnu-screen stderr tmux

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

标签 统计

gnu-screen ×10

bash ×4

linux ×4

ubuntu ×2

debian ×1

enter ×1

gnome-terminal ×1

java ×1

macos ×1

pbcopy ×1

pid ×1

raspberry-pi3 ×1

stderr ×1

stdout ×1

terminal ×1

tmux ×1

vim ×1