如果我没有 shell 提示符(在 Matlab 会话中),按下 Ctrl-Z 后如何返回到 nano

如果我没有 shell 提示符(在 Matlab 会话中),按下 Ctrl-Z 后如何返回到 nano

我在运行于屏幕 (-x) 终端内的 MATLAB 会话中使用 nano。我不小心按了 Ctrl-Z,它立即退出了 nano,打印出“使用“fg”返回 nano”,但没有显示命令提示符。无论我输入什么,屏幕上都会显示出来,但没有任何反应。如果我按 Ctrl-Z,^Z 只会打印到屏幕上。有什么想法吗?使用 12.04。

答案1

如果它是唯一进入的后台进程,%Return应该将您返回到 nano。

也就是说跑步fg也应该有效。这是shell 内置命令它会将最后一项任务返回到前台。即使您有多项任务,它也会将您返回到最新的任务。

答案2

列出你的工作

jobs

将作业置于前台

fg 1

将“1”改为nano对应的作业编号。

也可以看看https://unix.stackexchange.com/questions/30228/basic-job-control-stop-a-job-add-a-job-onto-the-stack-and-fg

答案3

在评论中,作者说他或她正在nano从 Matlab 运行命令,并且在使用 CTRL-Z 暂停后没有任何提示。这可能是 Matlab(1) 中的一个错误,如果它无法处理它,它不应该允许 CTRL-Z 到达 nano...

问题是 shell 命令fg(以及bg、和jobs)只适用于 shell 的直接子命令。但是您可以从另一个 shell 继续已停止的进程,尽管这不能保证屏幕状态得到正确管理:

  1. 在另一个终端窗口中,找到该nano进程:

    % ps ugx | grep nano
    romano   10600  0.0  0.0  20784  1628 pts/11   T    16:52   0:00 nano prova
    romano   10653  0.0  0.0  18256   900 pts/11   S+   16:53   0:00 grep nano
    
  2. 注意它已停止(状态T

  3. 继续

    kill -CONT 10600 
    

...并希望它能正常工作(可能会严重破坏终端)。您也可以尝试

killall -CONT nano 

这样,CONT信号就会被发送到所有“纳米”过程(但应该不是问题)。


脚注:

(1) 我尝试使用octave:,EDITOR=nano octave然后edit file按八度。按 CTRL-Z 会把事情搞得一团糟……所以也许这不是 Matlab 的问题,而是谁接收和管理 TSTP 信号的问题。

答案4

在 Lubuntu 中,我只需使用F12键...然后带有终端的窗口就会返回。

相关内容