标签: gnu-screen

在屏幕内滚动,或暂停输出

我在管理我工作的服务器时使用screen执行我的命令行任务。我通常运行小命令(主要是文件系统任务),但有时我运行更广泛的任务(如 DBA)。

这些任务的输出对我来说很重要。由于我将 Ubuntu 和 OS X(都是终端 Windows)用于我的任务,但我需要使用屏幕,因此滚动不可用,因此任何长输出(认为来自选择的 500 行表)对我来说都是不可见的。鼠标滚轮是不可能的。

当我说“滚动对我来说是不可见的”时,我的意思是:

top 使用屏幕时,在 Mac OS X 中,滚动时

我在考虑两种选择:

  1. 暂停(想想paginate)某个命令的输出。当输出开始时,它会让我阅读正在发生的事情,然后我按“Enter”,然后输出继续,直到没有更多显示。

  2. 在屏幕内滚动。但我不知道这是否可能。

当然,我不知道这些选项是否真的可行。如果是,如何实现?其他替代方案将受到欢迎。

ssh gnu-screen terminal putty scrolling

525
推荐指数
5
解决办法
45万
查看次数

如何将终端拆分为多个“视图”?

vi,如果您发出命令:sp,屏幕将分成两个“视图”,允许您从同一终端编辑多个文件。

同样,有没有办法在同一个终端中打开多个 shell?

shell gnu-screen terminal

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

无法恢复屏幕,说我已附加?

我正在远程 Debian Jessie 服务器上工作。我启动了一个屏幕会话,开始运行一个脚本,然后由于网络超时而断开连接。

现在我再次登录并想恢复会话。

这是我在列出屏幕时看到的:

$ screen -ls
There are screens on:
    30608.pts-8.myserver    (11/03/2015 08:47:58 AM)    (Attached)
    21168.pts-0.myserver    (11/03/2015 05:29:24 AM)    (Attached)
    7006.pts-4.myserver (10/23/2015 09:05:45 AM)    (Detached)
    18228.pts-4.myserver    (10/21/2015 07:50:49 AM)    (Detached)
    17849.pts-0.myserver    (10/21/2015 07:43:53 AM)    (Detached)
5 Sockets in /var/run/screen/S-me.
Run Code Online (Sandbox Code Playgroud)

我似乎同时被两个屏幕所吸引。

现在我想恢复我之前运行的会话,以查看我的脚本的结果:

$ screen -r 30608.pts-8.myserver
There is a screen on:
    30608.pts-8.OpenPrescribing (11/03/2015 08:47:58 AM)    (Attached)
There is no screen to be resumed matching 30608.pts-8.myserver.
Run Code Online (Sandbox Code Playgroud)

为什么我不能重新连接?

我在另一个屏幕上有同样的问题:

$ screen -r 21168.pts-0.myserver
There is a screen on:
    21168.pts-0.OpenPrescribing (11/03/2015 …
Run Code Online (Sandbox Code Playgroud)

gnu-screen

224
推荐指数
3
解决办法
26万
查看次数

tmux 与 GNU 屏幕

浏览我发现的有关 tmux 的问题(我通常使用 GNU Screen)。我的问题是它们各自的优缺点。尤其是我找不到太多关于 tmux 的信息。

gnu-screen terminal-multiplexer tmux

202
推荐指数
10
解决办法
7万
查看次数

如何否认正在运行的进程并将其关联到新的屏幕外壳?

我在 SSH shell 上有一个正在运行的程序。我想暂停它并在我回来时能够取消暂停它的执行。

我想到的一种方法是将其所有权转移到屏幕外壳,从而使其在那里运行。

是否有不同的方式进行?

ssh gnu-screen terminal job-control disown

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

你如何从另一个屏幕中分离第二个屏幕?

我不小心从现有的屏幕会话中附加到了第二个 GNU 屏幕会话,并且无法分离或向内部屏幕发出命令。我记得之前想过如何做到这一点,但完全忘记了,并希望将其作为参考。

一种方法是通过screen -dr从外壳执行操作来分离内部屏幕,但是从屏幕本身内部执行此操作的组合键是什么?

gnu-screen

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

如何杀死所有屏幕?

我不小心创建了 1000 多个屏幕。我如何用一个命令将它们全部杀死?(或几个)

linux bash kill gnu-screen

117
推荐指数
5
解决办法
27万
查看次数

为屏幕会话设置名称

有没有办法为 unix 屏幕会话指定一个特定的名称?例如,假设我多次运行同一个程序,每个程序都有不同的参数,我想知道哪个是哪个。

gnu-screen

98
推荐指数
6
解决办法
14万
查看次数

列表中有屏幕,但“没有要恢复的屏幕”

当我键入时,screen -r我希望看到:要恢复的屏幕列表,或消息“没有要恢复的屏幕”。

今天,我看到有一个屏幕,但我仍然收到没有要恢复的屏幕的消息:

[root@server chiliNUT]# screen -r
There is a screen on:
        27863.pts-1.server     (Attached)
There is no screen to be resumed.
[root@server chiliNUT]# screen -rx 27863
[detached]
[root@server chiliNUT]# screen -r
There is a screen on:
        27863.pts-1.server     (Attached)
There is no screen to be resumed.
Run Code Online (Sandbox Code Playgroud)

为什么它报告屏幕已连接?我只是在上面的行([detached])上将其分离

gnu-screen

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

如何恢复“丢失”的屏幕会话?

不知何故,我设法关闭了一个屏幕窗口而没有屏幕“注意到”它,所以会话仍然被标记为attached. 这会阻止我重新连接到此会话。我能做什么?

me@iupr-serv8:~$ screen -r
There are several suitable screens on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:34 PM)    (Attached)
    24658.pts-19.XXX-serv8  (01/05/2012 07:11:38 PM)    (Detached)
    24509.pts-19.XXX-serv8  (01/05/2012 07:10:00 PM)    (Detached)
    18676.pts-5.XXX-serv8   (01/02/2012 06:55:33 PM)    (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
me@XXX-serv8:~$ screen -r 25028
There is a screen on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:33 PM)    (Attached)
There is no screen to be resumed matching 25028.
Run Code Online (Sandbox Code Playgroud)

[更新]

最后我发现,会话并没有丢失,而是第一个会话的ID是0. 第二个会话具有 ID 1

gnu-screen terminal

86
推荐指数
3
解决办法
15万
查看次数