Действительно ли CTRL+C является неправильным использовать для возврата к командной строке?

Когда Вы в спящем режиме компьютер, вся память (включая все криптографические ключи) записана в подкачку. Я не могу говорить за все дистрибутивы Linux, и я не знаком с OSX, но Ubuntu использует cryptsetup и LVM по умолчанию (на альтернативной установке CD). Подкачка является логическим томом, поддержанным тем же зашифрованным физическим томом, который содержит все данные. То, когда Вы загружаетесь, initramfs просят пароль, открывает зашифрованный том и восстанавливает содержание от подкачки. Таким образом, в этом случае Ваши ключи безопасны.

Я рекомендую попробовать его системой перед помещением любых уязвимых данных на него. Проверьте, шифруется ли подкачка, и можно действительно возобновиться от нее. Если это не шифруется, или Вы не можете возобновиться, не используют его. Выключите компьютер вместо этого. Приостановите для трамбовки, препятствует тому, чтобы ключи поразили диск, но существуют способы, которыми можно закончить пароль экранной заставки.

27
21.01.2012, 22:48
5 ответов

Ctrl+C отправляет SIGINT в программу. Это говорит программе, что Вы хотите прервать (и конец), это - процесс. Большинство программ правильно ловит это и чисто выходит. Так, да, это - "корректный" способ закончить большинство программ.

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

36
27.01.2020, 19:39
  • 1
    Существует также Ctrl+D для программ, которые читают вход от пользователя. Ctrl+D закрывает STDIN к программе. Для того, чтобы корректно выйти из оболочки это также доступно (точно то же самое как вводящий выход). –  Patrick 22.01.2012, 00:48
  • 2
    @Patrick Ctrl+D на самом деле отправляет индикатор End of File в поток. Это до программы для ответа соответственно (обычно закрывающий поток файла). –  Chris S 22.01.2012, 04:32
  • 3
    это - то, какое закрытие STDIN делает. Вы наклоняетесь, получают EOF без закрываемого канала/потока. –  Patrick 22.01.2012, 05:27
  • 4
    Неправильный в трех количествах, Patrick. Во-первых: Control+D не имеет этого значения для каналов. Во-вторых: специальный символ EOF ничего не закрывает. Это вызывает один возврат времени нулевых байтов (предположение, что буфер строки пуст) от тока read() системный вызов. Следующее read()s незатронуты. В-третьих: Ни одно из этого не относится к программам, которые помещают протокол работы линии в неканонический режим, такой как большинство программных оболочек от нескольких прошлых десятилетий и действительно любой другой программы, которая пользуется библиотекой, такой как GNU readline. –  JdeBP 22.01.2012, 13:32

Этот метод очень хорошо, действительно.

13
27.01.2020, 19:39

Для прерывания долгой команды при вводе я иногда перехожу к запуску строки и вставляю знак комментария, прежде чем удар войдет:

Home#Enter

Pos1#Return

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

В Bash можно использовать ярлык

Высокий звук +#

к remarkify Ваша команда, как указано в комментариях (Спасибо, @Zorawar).

11
27.01.2020, 19:39
  • 1
    Можно также использовать Ctrl-A не беря Ваши пальцы от домашней строки. –  Dietrich Epp 22.01.2012, 05:30
  • 2
    И Ctrl-E идет в конец, между прочим. –  Dave 27.01.2012, 20:15
  • 3
    @Dave: Правильно, но Вы не должны перемещаться в конец для удара, входят, для подтверждения команды. Командная строка не является редактором, где это могло бы вставить новую строку. –  user unknown 27.01.2012, 22:12
  • 4
    В ударе можно достигнуть того же самого, просто нажав Alt-#: это вставит комментарий и выполнит команду (настолько помещающий это в Вашей истории). –  Zorawar 06.06.2015, 17:50

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

8
27.01.2020, 19:39

При использовании Bash можно также использовать Ctrl-Z и тип bg "помещать текущее задание в фон".

1
27.01.2020, 19:39

Теги

Похожие вопросы