Você só precisa digitar ctrl + u .
Aproveite =)
Uma coisa que me irrita usando o terminal do Linux é quando eu tenho que digitar uma senha invisível, como quando você executa ssh . Às vezes eu digito errado uma ou mais letras e depois tenho que pressionar a tecla de retrocesso algumas vezes para ter certeza que apaguei tudo para começar de novo.
Eu sei que isso não é grande coisa, mas no outro dia descobri que pressionar CTRL + L "limpa" o terminal Eu queria saber se há uma maneira de limpar / apagar a senha invisível sem depender de retrocesso ou pressionando Digite a chave para tentar novamente.
Eu sei que isso já foi respondido, mas a resposta não explica o que está acontecendo.
Caracteres como Ctrl + L são manipulados pelo aplicativo . No caso de inserir entrada no shell, como bash
, ela limpa a tela. Alguns aplicativos, como emacs
, o usam para redesenhar a tela e / ou recentrar o cursor.
Caracteres como Ctrl + U em um prompt de senha são tratados pela Disciplina de linha TTY . Eles funcionarão sempre que o terminal de entrada estiver no modo de edição de linha "canônico", que é o modo em que seus programas estão enquanto você digita uma senha. Nesse modo, é o próprio kernel do Linux que interpreta esses caracteres. Você pode ver quais funções são atribuídas a quais chaves na saída de stty -a
:
speed 38400 baud; rows 45; columns 128; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
Aqui, você pode ver que Ctrl + U está ligado a kill
, que (de acordo com o stty man page )" apagará a linha atual ". Você também pode usar stty
para alterar este mapeamento:
stty kill ^E # make ctrl-e erase the line
Esta página tem muitas informações importantes sobre a camada TTY se você estiver interessado.
Se as coisas não foram confusas o suficiente: quando no prompt de um bash
interativo, você está realmente não no modo de edição de linha "canônico". Em vez disso, bash
está recebendo cada caractere diretamente conforme você o digita e interpretando as sequências de controle em si, por meio do readline biblioteca. Essa biblioteca irá honrar os mapeamentos que você definiu no seu dispositivo terminal, portanto, você ainda pode usar stty
para alterá-los. Ou, você pode personalizá-los independentemente dentro de bash
e outros programas baseados em readline definindo a propriedade unix-line-discard
dentro de seu arquivo ~/.inputrc
. Veja a página do bash man para mais informações.
Quando você executa um programa, bash
reativa o modo de edição de linha canônica ( stty icanon
) se ele foi ativado antes e, em seguida, o desativa novamente quando o programa é concluído ( stty -icanon
).