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

31

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

user282315
источник
Вы должны получить приглашение после нажатия Ctrl-Z. У меня ... кажется, что это не происходит в вашем случае. Как именно вы работаете nanoв терминале?
Rmano
Я только что понял, что я на самом деле не использую 12.04. На самом деле я работаю nanoиз сеанса MATLAB, что является (очевидно) проблемой (извините за то, что не упомянул об этом; я забыл, что был в MATLAB). При вызове jobsна другом экране не отображается список заданий, которые нужно подтянуть
user282315

Ответы:

11

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

Проблема в том, что команда оболочки fgbg, и 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.

Rmano
источник
Удивительно, что сделал это. Эта проблема беспокоила меня некоторое время! Регистрация ошибки с TheMathWorks. Благодарность!
user282315
1
Увы, новая учетная запись, нет репутации, чтобы поддержать (пока).
user282315
54

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

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

Оли
источник
5
ИМХО, это реальный ответ, он делает то, что просит опера, заново открывает закрытые (ctrl + z) окна Nano.
ДонСеба
классные трюки здесь.
Пиетровисмара
Это тоже мне поможет.
Арефе
Это должен быть правильный ответ.
user2180794