Как мне вернуться к nano после нажатия Ctrl-Z, если у меня нет приглашения оболочки (в сеансе Matlab)

Я использую nano в сеансе MATLAB, который выполняется внутри экранного (-x) терминала. Я случайно нажал Ctrl-Z, и он сразу же выходит из nano, печатает "Использовать" fg ", чтобы вернуться в nano", но не показывает командную строку. Все, что я печатаю, появляется на экране, но ничего не отвечает. Если я нажимаю Ctrl-Z, ^Z просто печатает на экран. Есть идеи? Использование 12.04.

4 ответа

Решение

В комментариях автор говорит, что он или она управляет nano команда от Matlab, и что после его приостановки с помощью CTRL-Z не появляется никаких подсказок. Это, вероятно, ошибка в Matlab(1), которая не должна позволять CTRL-Z прибыть в nano, если он не может справиться с этим...

Проблема в том, что команда оболочки fg (а также bg, а также jobs) работает только с прямыми потомками оболочки. Но вы можете продолжить остановленный процесс из другой оболочки, хотя это не гарантирует правильного управления состоянием экрана:

  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.

Если это единственный фоновый процесс ввода % затем Return вернет вас в nano.

Это сказало, fg должен всегда работать. Даже если у вас есть более одной работы, она должна вернуть вас к новой работе.

Перечислите свои работы

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

В Lubuntu я просто использую F12ключ ... и окно с терминалом возвращается.

Другие вопросы по тегам