4

Я ищу способ удалить текущую введенную командную строку, не тратя ни секунды на клавишу Backspace .

Например, я прокрутил историю bash и получил длинную командную строку, которая выполнялась, когда я нажимал Enter:

~$ aptitude search openssl | grep dev

Но теперь я решаю, что не хочу выполнять эту команду. Можно ли быстро получить пустое приглашение, не удаляя всю строку с помощью Backspace? В Windows cmd вы можете просто нажать Escape, и он исчезнет. Такое поведение было бы тем, что я хочу.

2 ответа2

7

Нажатие Ctrl+U очистит текущую строку.

Это символ уничтожения по умолчанию на большинстве терминалов, и он стирает текущую строку (от курсора до ее начала). Команда stty может быть использована для получения или установки ее значения.

[dave@hal9000 ~]$ stty -a
speed 38400 baud; rows 23; columns 75; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?;
eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
...
[dave@hal9000 ~]$ stty kill ^T # Set it to Ctrl-T

Кстати, werase обозначает удаление слова, поэтому Ctrl+W стирает слово слева от курсора.

2

Нажмите Ctrl+C, чтобы отменить введенную вами команду и вернуться к пустому приглашению.

Это общий ключ в приложениях текстового режима Unix:

  • в неинтерактивных программах Ctrl+C обычно вообще останавливает программу и возвращается к приглашению оболочки;
  • в интерактивных программах, которые выполняют одну команду за раз (например, оболочки), Ctrl+C обычно возвращается в основную командную строку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .