В bash как очистить текущий ввод? - PullRequest
165 голосов
/ 29 июня 2009

Предположим, что в bash вы начинаете писать команду вроде:

$ rm -rf /foo/bar/really/long/path/here

и затем поймете, что вы не хотите выполнять это в конце концов. Есть ли способ очистить ввод одним или двумя нажатиями клавиш?

То, что я делал в последнее время, это добавление эха и заключение ввода в кавычки (Ctrl + A, echo ", Ctrl + E, ") и затем ввод ввода. Есть ли более быстрый способ?

Ответы [ 11 ]

274 голосов
/ 29 июня 2009
  1. Нажмите Ctrl - U , чтобы удалить все перед курсором. Удаленная команда будет сохранена в буфере. Нажмите Ctrl - Y , чтобы вставить удаленную команду.

    (Необязательно: нажмите End или Ctrl - E , чтобы перейти к концу ввода первым.)

  2. Либо нажмите Ctrl - C , чтобы прервать ввод текста.

93 голосов
/ 29 июня 2009

Попробуйте Ctrl + U . Это очищает строку ввода.

30 голосов
/ 29 июня 2009

Нашел короткую ссылку на http://www.ice2o.com/bash_quick_ref.html, а ищет .

ctrl + e (если не в конце строки) плюс ctrl + u сделает это.

21 голосов
/ 04 января 2014

Ctrl - U , Ctrl - K также помогает.

Ctrl - U удаляет все от начала строки до курсора, Ctrl - K удаляет все из курсор в конец строки. (Иногда полезно использовать только один из них.)

13 голосов
/ 29 июня 2009

Для этого есть два варианта

ctrl + c - очищает всю строку независимо от того, где находится курсор.

ctrl + u - это очищает линию от позиции курсора до начала.

9 голосов
/ 28 октября 2014

Хороший ярлык - это нажатие Esc # . Перед ним будет добавлен символ # (что делает строку комментарием), а затем нажмите клавишу ввода. Если вы затем решите, что вам все еще нужна команда, она все еще есть в вашей истории:)

9 голосов
/ 18 октября 2012

Нажатие Esc plus Backspace в bash очистит все до положения курсора.

(В Cygwin это очистит ввод до следующего слова. Слова разделяются пробелами, подчеркиваниями, ...)

3 голосов
/ 15 мая 2017

Это расширение ответа knittl , которое сохраняет строку в истории консоли путем добавления префикса к хешу. Преодоление недостатков буфера обмена, таких как случайная перезапись или невозможность просмотра линии реза для справки.

Строка комментариев и возврат нового приглашения

Используйте любую комбинацию клавиш:

  • Esc #
  • Alt + #

Хеш-символ # будет добавлен к строке, превращая всю строку в комментарий. Он также вернет новое приглашение, как если бы пользователь нажал клавишу ввода. например,

$ #rm -rf /foo/bar/really/long/path/here
$

Получить закомментированную строку

Чтобы восстановить старую строку из истории консоли, используйте один из следующих ярлыков:

  • Вверх
  • Ctrl + p

Повторяйте комбинацию клавиш, пока не появится нужная строка.


Быстрое удаление хеш-префикса

Для удаления префикса хеша строки # доступно несколько вариантов:

Удалить первый символ и немедленно выполнить команду:

  • Esc 1 Esc #
  • Alt + - , Alt + #

Переместите курсор в начало и удалите первый символ, не выполняя команду:

  • Home , Удалить
  • Ctrl + a , Ctrl + d
3 голосов
/ 29 июня 2009

Учтите, что при использовании Ctrl - U (или Ctrl - E , а затем Ctrl - U ) будет хранить то, что вы очищаете, в буфере, чтобы вы могли затем вставить его позже, используя Ctrl - Y .

2 голосов
/ 25 мая 2015

Если вы используете Bash в режиме vi (установите его с помощью set -o vi), затем нажмите Esc , чтобы переключиться в обычный режим vi, и введите dd, чтобы удалить текущую строку!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...