Ctrl z linux вернуться

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

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

3 ответа

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

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

в другом окне терминала найдите nano процесс:

Обратите внимание, что он остановлен (состояние T )

Продолжайте это с

. и надеюсь, что это работает (может сильно испортить терминал). Вы также можете попробовать

таким образом CONT Сигнал отправляется всем «нано» процессам (хотя это не должно быть проблемой).

(1) Я пытался с octave : EDITOR=nano octave а потом edit file в октаве. Нажатие CTRL-Z очень хорошо все испортило. так что, возможно, дело не в Matlab, а в странном взаимодействии с тем, кто получает и управляет сигналом TSTP.

Источник

Горячие клавиши терминала Linux

Терминал — один из самых мощных инструментов Linux. С помощью него можно настроить и сделать практически всё в этой операционной системе. Чтобы сделать работу в терминале ещё более удобной и продуктивной разработчики добавили различные сочетания клавиш.

В этой статье мы собрали самые полезные горячие клавиши терминала Linux, которые могут пригодится вам в работе. Здесь есть комбинации клавиш для навигации по истории команд, коррекции ошибок и управления окном терминала. Все клавиши расположены в случайном порядке.

Горячие клавиши терминала Linux

1. Tab

Без этого сочетания терминалом пользоваться невозможно, и поэтому его знают все. Одно нажатие клавиши Tab автоматически дополняет текущую команду или путь к файлу если возможен только один вариант. Два нажатия по ряд показывают возможные варианты автодополнения. Это делает набор команд и путей к файлам намного быстрее.

2. Ctrl + R

После нажатия Ctrl+R появляется строка поиска в которой вы можете начать вводить имя команды, которую надо выполнить. Система найдёт все команды, которые ранее выполнялись с таким началом и отобразит самую свежую. Вы можете уточнить поиск добавив ещё несколько символов. Для выполнения команды просто нажмите Enter, для редактирования Esc.

3. Ctrl + C

Это сочетание клавиш позволяет прервать работу любой программы, которая выполняется в терминале. После нажатия Ctr + C программе отправляется сигнал SIGINT и если она не обрабатывает его особым образом выполнение программы завершается. Некоторые программы перехватывают сигнал и перед завершением выполняют кое какие действия по сохранению данных и завершению операций, например пакетный менеджер zypper.

Читайте также:  Как исправить ошибку d3dcompiler 43 dll для windows

4. Ctrl + Z

С помощью Ctrl+Z вы можете перевести текущую программу в фоновый режим. Обычно, если вам надо чтобы программа выполнялась в фоновом режиме просто добавьте символ & после команды. Но если вы забыли это сделать поможет это сочетание клавиш. Чтобы посмотреть задачи, которые сейчас работают в фоне используйте команду jobs, а для возврата задачи в нормальный режим — команду fg.

5. Ctrl + D

Сочетание клавиш Ctrl+D можно считать альтернативой команды exit. Если вы подключены по SSH то сессия будет разорвана. Если вы работаете в терминале напрямую, то окно будет закрыто.

6. Ctrl + L

Альтернатива команды clear. Позволяет очистить вывод терминала. Очень удобно для создания снимков экрана и просто для очистки лишней информации.

7. Ctrl+P и Ctrl+N

Эти сочетания клавиш альтернативы клавишам стрелки вверх и вниз. Первое показывает предыдущую введенную команду, а второе следующую. Так вы можете перемещаться по истории команд. Это не удобнее стрелок, но иногда может быть полезно.

8. Ctrl + A и Ctrl + E

Перемещаться можно не только по истории команд, но и по текущей строке. Эти горячие клавиши — аналоги клавиш Home и End. Первая комбинация перемещает курсор в начало строи, а вторая в конец.

9. Ctrl + U и Ctrl + K

С помощью первого сочетания можно удалить весь текст от начала строки до позиции курсора, а с помощью второго — от позиции курсора и до конца строки. Это может быть полезно если вы ввели неверную команду и не хотите стирать её по одному символу.

10. Ctrl + W

Нажав Ctrl+W вы можете стереть слово перед курсором. Если курсор находится в середине слова, то будут стёрты все символы от курсора до начала слова. Удобнее всего ставить курсор после слова, которое нужно убрать.

11. Ctrl + Y

С помощью Ctrl + Y вы можете вставить текст вырезанный с помощью Ctrl + U, Ctrl + K и Ctrl + W. Текст будет вставлен туда, где находится курсор.

12. Ctrl + B и Ctrl + F

Аналог для клавиш стрелка вправо и стрелка влево. Первое сочетание позволяет перемещаться на один символ вправо, а второе на один символ влево.

13. Ctrl + T

Заменяет символ, находящийся под курсором на предыдущий символ. Или перемещает символ перед курсором к концу строки.

14. Ctrl +X затем Ctrl + E

Открывает текущую команду в текстовом редакторе. Если в переменной EDITOR редактор не задан, то будет использоваться nano. После редактирования и сохранения результата команда будет выполнена. Удобно для написания многострочных скриптов.

15. Alt +.

Аналог команды $!. Позволяет вставить последний аргумент предыдущей команды в позицию курсора. Удобно, если надо выполнить несколько команд с одинаковым аргументом.

16. Alt + B и Alt + F

Эти сочетания позволяют перемещаться по словам, также как их аналоги с Ctrl по символам. Alt + B перемещает курсор на слово влево, а Alt+F на слово вправо.

17. Alt + C, Alt + L и Alt + U

Следующие три сочетания клавиш позволяют играть с регистром символов команды. Первое сочетание — Alt + C делает символ под курсором прописным, а все остальные буквы до конца слова строчными. Alt + L делает все буквы до конца слова строчными, а Alt + U — прописными.

18. Ctrl + S и Ctrl + Q

Если команда выводит информацию слишком быстро, а вам надо прочитать её или скопировать, можно попросить терминал поставить на паузу вывод команды. Для этого нажмите Ctrl +S. Чтобы вернуть всё обратно нажмите Ctrl + Q.

Читайте также:  Отключение антивируса windows 10 1909

Сочетания клавиш эмулятора терминала

Все сочетания клавиш, перечисленные выше будут работать во всех терминалах и эмуляторах терминала, которые используют командную оболочку Bash или другую популярную оболочку. Но у популярных эмуляторов терминала есть свои горячие клавиши, которые могут вам очень сильно пригодится при работе. Давайте рассмотрим их тоже. В этой статье будут использоваться горячие клавиши из Gnome Terminal, но в других терминалах они похожи.

1. Ctrl + Alt + T

С помощью этого сочетания клавиш можно открыть терминал в большинстве дистрибутивов, основанных на Ubuntu и Debian. Это просто, быстро и удобно.

2. Ctrl + Shift + С и Ctrl + Shift + V

Копирование и вставка — очень важные функции операционной системы. Сочетание клавиш Ctrl + C просто не может работать для копирования, потому что оно используется для завершения команды, поэтому для копирования и вставки была добавлена клавиша Shift.

3. Ctrl + Shift + F

Если вам надо выполнить поиск по выводу в терминале можно воспользоваться сочетанием Ctrl + Shift + F. После нажатия откроется окно ввода, в котором вы можете ввести искомое слово.

4. Shift + ЛКМ и Shift + ПКМ

Здесь ЛКМ и ПКМ — это правая и левая кнопка мышки. Такие программы, как screen и tmux в режиме поддержки работы мышью захватывают контроль мышки и вяжут на неё свои функции. Таким образом обычное копирование и вставка могут стать проблемой. Чтобы этого избежать можно выделять текст сочетанием клавиш Shift + ЛКМ и открывать контекстное меню с помощью Shift + ПКМ.

Выводы

В этой статье мы собрали лучшие сочетания клавиш терминала Linux, которые могут пригодится вам в работе с системой или во время её настройки. А какие горячие клавиши нравятся вам? Какие вы используете? Напишите в комментариях!

Источник

Ctrl + C, Ctrl + D, Ctrl + Z

Комбинации клавиш Ctrl + C, Ctrl + D и Ctrl + Z часто используются в терминале для выхода из программы, работающей на переднем плане (foreground), и передачи управления Bash.

Ctrl + C выполняет прерывание процесса. По-сути убивает его. Результат действия Ctrl + D такой же. Однако разница между этими двумя способами выхода есть, и заключается она во внутреннем механизме.

Нажатие Ctrl + C заставляет терминал послать сигнал SIGINT процессу, который на данный момент его контролирует. Когда foreground-программа получает сигнал SIGINT, она обязана прервать свою работу.

Нажатие Ctrl + D говорит терминалу, что надо зарегистрировать так называемый EOF (end of file – конец файла), то есть поток ввода окончен. Bash интерпретирует это как желание выйти из программы.

При работе в конкретной программе могут срабатывать оба способа, но может только один. Так команда cat без параметров запускается в интерактивном режиме, в котором то, что вы ввели, будет тут же выводиться на экран после нажатия Enter. Выйти из программы можно как с помощью Ctrl + С, так и Ctrl + D.

Выйти из интерпретатора Питона с помощью Ctrl + C нельзя.

Комбинация клавиш Ctrl + Z посылает процессу сигнал, который приказывает ему остановиться. Это значит, что процесс остается в системе, но как бы замораживается. Само собой разумеется он уходит в бэкграунд (background) – в фоновый режим. С помощью команды bg его можно снова запустить, оставив при этом в фоновом режиме. Команда fg не только возобновляет ранее приостановленный процесс, но и выводит его из фона на передний план.

На скриншоте сначала запускается интерпретатор Питона. Далее его работа останавливается с помощью Ctrl + Z. Командой fg python3 мы возобновляем работу приложения и делаем его текущим. То, что мы вернулись в тот же самый процесс, видно по переменной a , значение которой остается доступным.

С помощью команды ps можно посмотреть процессы текущего сеанса Bash (используя ключи можно просматривать и другие процессы). А команда kill позволяет удалять ненужные.

Читайте также:  Rfr d mac os

Здесь запускается cat и приостанавливается. Далее смотрим список процессов. Ключ -9 команды kill обозначает, что мы хотим полностью избавиться от процесса. В качестве аргумента передается идентификационный номер процесса (PID).

Отметим, что во многих консольных программах управляющие комбинации с клавишей Ctrl обычно обозначаются как ^C, ^Z и т. п. То есть вместо Ctrl используется знак ^.

Также обратим внимание, что понятие «процесса» связано с понятием «одновременного выполнения нескольких программ». Процесс – это выполняющаяся программа, а точнее экземпляр выполняющейся программы, потому что в системе может существовать несколько процессов, запущенных на основе одной программы. Ядром операционной системы создается видимость одновременного выполнения множества процессов.

При необходимости системный администратор может запускать процессы, требующие длительного выполнения, в бэкграунде, а на «переднем плане» выполнять другие команды. Запустить процесс в фоне можно с помощью знака амперсанда &, который записывается в конце команды.

Если в текущем терминале было запущено и переведено в фон несколько одноименных процессов, то сделать один из них текущим с помощью команды fg имя_программы не получится. PID также не используется как аргумент для fg. Здесь используется идентификатор процесса, который возвращает команда jobs. Причем для fg его надо использовать в формате %ID.

Выполните команды sleep 10m и sleep 10s , каждую остановите с помощью Ctrl + Z. Посмотрите идентификаторы процессов с помощью jobs. Выведите из бэкграунда десятисекундный слип. Учитывалось ли время, когда процесс был остановлен? После этого сделайте текущим десятиминутный слип и прервите его.

Курс с ответами к заданиям и дополнительными уроками:
android-приложение, pdf-версия.

Источник

Как я могу возобновить остановленную работу в Linux?

Как я могу возобновить остановленную работу в Linux? Я использовал emacs и случайно нажал Ctrl-Z, что вернуло меня обратно в консоль. Я вижу это, когда набираю «работа»

5 ответов 5

Команда fg — это то, что вы хотите использовать. Вы также можете указать номер задания, если остановлено несколько заданий.

Общие команды управления заданиями в Linux:

  • jobs — список текущих работ
  • fg — возобновить работу, которая следующая в очереди
  • fg% [число] — возобновить работу [номер]
  • bg — выдвинуть следующее задание в очереди в фоновый режим
  • bg% [число] — отодвинуть задание [число] на задний план
  • kill% [число] — убить задание с номером [число]
  • kill — [сигнал]% [номер] — отправить сигнал [сигнал] на номер задания [номер]
  • disown% [число] — отменить процесс (терминал больше не будет владельцем), поэтому команда будет работать даже после закрытия терминала.

Это почти все из них. Обратите внимание на% infront номера задания в командах — это то, что говорит kill, вы говорите о заданиях, а не процессах.

Вы также можете ввести %

; то есть вы нажимаете Ctrl-Z в emacs, затем вы можете набрать %emacs в консоли и вернуть его на передний план.

Просто чтобы добавить к другим ответам, Bash позволяет пропустить fg если вы указали номер работы.

Например, они эквивалентны и возобновляют последнюю работу:

Это резюме работы № 4:

Если вы не запускали его с текущего терминала, используйте ps aux | grep

чтобы найти номер процесса (pid), затем возобновите его с:

(Несмотря на название, kill — это просто инструмент для отправки сигнала процессу, позволяющий процессам взаимодействовать друг с другом. «Сигнал уничтожения» — это только один из многих стандартных сигналов.)

Дополнительный совет: оберните первый символ имени процесса с помощью [] чтобы в результатах не отображалась сама команда grep . например, чтобы найти процесс emacs , используйте ps aux | grep [e]macs

Источник

Оцените статью