Linha de comando vazia do bash

4

Eu estou procurando uma maneira de excluir a linha de comando inserida no momento sem desperdiçar segundos no Backspace chave.

Por exemplo, eu rolei o histórico bash e tenho uma longa linha de comando que seria executada quando eu pressionasse Entrar :

~$ aptitude search openssl | grep dev

Mas agora eu decido que não quero executar este comando. Posso obter um prompt vazio rápido sem excluir toda a linha com Backspace ? No Windows cmd você pode simplesmente pressionar Escapar e se foi. Esse comportamento seria o que eu quero.

vobject
fonte

Respostas:

7

Pressionando Ctrl + você irá esvaziar a linha atual.

É o padrão mate caractere na maioria dos terminais e apaga a linha atual (do cursor ao seu início). o stty comando pode ser usado para obter ou definir seu valor.

[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

Seja o caminho, werase significa palavra apagar, então Ctrl + W apaga a palavra à esquerda do cursor.

Janne Pikkarainen
fonte
Obrigado, isso aconteceu. Ctrl-u exclui todos os caracteres antes da posição do cursor.
vobject
1
@vobject: Se o cursor estiver dentro da linha, Ctrl-u e Ctrl-k (ou vice-versa) obterão tudo.
Dennis Williamson
2

pressione Ctrl + C para cancelar o comando que você está digitando e voltar para um prompt simples.

Esta é uma chave comum em aplicativos no modo texto unix:

  • em programas não interativos, Ctrl + C geralmente pára o programa completamente e volta para um prompt de shell;
  • em programas interativos que executam um comando por vez (como shells), Ctrl + C geralmente retorna ao prompt de comando principal.
Gilles
fonte