Questão Como faço para excluir meus comandos rapidamente?


Eu uso terminal para quase todas as tarefas. Digamos que eu tenha inserido um comando enorme como este:

sudo a-huge-command

Qual é a maneira mais fácil de excluir o comando inteiro com um único atalho, em vez de continuar pressionando backspace chave?

Eu sou um novato do Ubuntu procurando usar o Ubuntu de uma maneira profissional.


163
2017-09-04 11:56


origem


Também vale a pena notar que você pode definir bash (e várias outras shells) para entender as chaves vi: set -o vi. Você poderia então fazer esc, dd (ou edite / substitua como você poderia fazer no vi [m]). - Wayne Werner
Casa, '#', Entrar - Alistair Buxton
este é um hack barato, mas pelo que vale a pena, eu costumo apenas acertar a seta para cima até chegar a um comando muito curto (por exemplo, ls) e, em seguida, backspace - isso geralmente apenas um par de golpes de tecla, por isso não é tão grande um 'negócio. - KennyPeanuts
CTRL <- bateu um par de vezes normalmente me permite voltar ao início da minha consulta .. é isso que você quer dizer? - marc-andre benoit


Respostas:


Usar Ctrl+você para cortar texto da posição do cursor para o início da linha de comando. Mais tarde, se você quiser, use Ctrl+Y para colar o texto cortado.

Se você quer apenas descartar a linha de comando atual e obter um novo prompt limpo Ctrl+C.

Para mais referência, por favor, verifique a documentação do Ubuntu para Usando o terminal


176
2017-09-04 12:03



Esta resposta funciona tanto para o bash (padrão do Ubuntu) quanto para o tsch. - Nick
Eu pensei que traço era o padrão do Ubuntu? - Chris
dash é o intérprete padrão para /bin/sh comandos. bash é o login padrão e o shell TTY. - darvids0n
eu acho Ctrl + C ser um mau hábito, já que muitas vezes eu envio acidentalmente sinais para programas com seu próprio prompt, matando-os e perdendo meu progresso e / ou momentum. - user606723


Ctrl +  você deve ajudá-lo.

Abaixo estão as outras opções disponíveis. Agarrado de Aqui

O UNIX entende vários comandos de teclas de controle, comandos que você insere pressionando a tecla Ctrl (ctrl) enquanto pressiona uma segunda tecla.

CTRL + S - congela a tela e impede que qualquer exibição na tela continue (equivalente a uma tecla no-scroll) (às vezes leva um tempo para trabalhar)

CTRL + Q - congela a tela e permite que a tela continue

CTRL + C - interrompe um programa em execução

CTRL + \ - mesmo que CTRL - C mas mais forte (usado quando o terminal não responde)

CTRL + Z - suspende um programa em execução (use o comando fg para continuar o programa, veja s $

CTRL + H - exclui o último caractere digitado

CTRL + W - exclui a última palavra digitada

CTRL + você - exclui a última linha digitada

CTRL + R - pesquisa texto do histórico

CTRL + D - termina a entrada de texto para muitos programas UNIX, incluindo correio e gravação.

Nota:

Quando eu apago isto usando CTRL + W ou CTRL + você, também estamos realizando uma operação de "corte" (recortar) (excluir e armazenar em buffer / área de transferência). Para colar (arrancar) a string no buffer / área de transferência, use CTRL + Y.


109
2017-09-04 12:04



Na verdade, ctrl-r pesquisa o texto do histórico. - Eric Carvalho
@EricCarvalho Você está certo. Removendo essa opção da resposta. - devav2
Estes são códigos de controle genéricos do UNIX. O terminal ubuntu padrão é baseado em bash, o que é diferente. - OrangeDog
Ctrl-U apaga do cursor para o início da linha. Eu costumo usá-lo colocando o cursor antes dos argumentos para um comando do histórico. Dessa forma, eu posso digitar um novo comando usando os mesmos argumentos - como alterar menos arquivo para o arquivo kate para que eu possa editar o arquivo depois de analisá-lo para ver se são necessárias edições. - Joe
@OrangeDog - Estes são bons - eu uso todos estes no meu terminal bash-bashed do Ubuntu, com exceção do CTR-\ one. - belacqua


Geralmente estou usando Alt+Backspace. Se você estiver usando bash, isso permitirá que você exclua até o caractere especial anterior (/, ;, , etc.). Se você estiver usando zsh, irá remover as barras e ponto e vírgula também. É muito mais rápido do que bater Backspace.

Dentro bash, isso é diferente de Ctrl+W no sentido de que Ctrl+W exclui a palavra anterior onde Alt+Backspace apaga até que o caractere especial anterior seja encontrado. Dentro zsh, ambas as combinações de teclas fazem a mesma coisa


61
2017-09-04 12:00



Ctrl + W faz a mesma coisa. - hytromo
Não vai funcionar para terminais como rxvt embora. - sqram
@lyrae Para mim, funciona perfeitamente em rxvt, embora não no xterm. E isso só funciona se set -o emacs está definido. - Marco
eu uso ALT+Backspace assim como CTRL+C. Isso funciona em qualquer linux. :) - tftd
@hakermania: Não, é diferente. Ctrl + w exclui uma palavra e Alt + Backspace apaga até o caractere especial anterior (/, ;, ``, etc). - jobin


Aqui está um listando de atalhos de teclado que podem ser usados ​​com o bash Concha.

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

O que você está querendo fazer é alcançado por qualquer Ctrl+C ou Ctrl+você no final da linha.


33
2017-09-04 18:42



Esta é a lista mais completa, embora a melhor resposta seja Ctrl+C ou (Ctrl+E  Ctrl+U) - New Alexandria
Quantos na lista são aplicáveis ​​ao tcsh, no qual estou interessado? - TCSGrad
@ shan23 Leia a seção "Comandos do editor" do man tcshou use bindkey -l. Parece muito diferente. - OrangeDog
Note que alguns deles falharão se você estiver usando vi bindings para o Readline de bash (ou de outro shell). Estes devem aplicar-se principalmente ao tcsh também; essas festanças pré-datadas. O bash também incorporou muitos dos atalhos de histórico do csh / tcsh. - belacqua


Alt+# (isto é, Alt+Mudança+3) irá comentar o comando atual e continuar na próxima linha.

Por exemplo, se você digitar t, e, s, t, Alt+#, você terá:

you@computer$ #test
you@computer$ 

Se você quiser recuperar seu antigo comando, pressione a seta para cima e exclua o caractere de hash (Acima, Casa, Excluir ou Acima, Ctrl+UMA, Excluir).

Eu acho que é uma característica do GNU Readline, pois funciona em Bash, Python e MySQL.


24
2017-09-04 17:21





 Ctrl + C - além de interromper os comandos em execução, ele também pode ser usado para "interromper" sua entrada de linha de comando.

Em contraste com o  Ctrl + você, você ainda verá o que digitou, mas o cursor irá pular para a nova linha e você receberá um prompt de linha de comando vazio.


22
2017-09-04 12:16



Eu prefiro isso simplesmente por causa da memória muscular, e você ainda pode copiar / colar qualquer coisa importante porque a linha de comando interrompida permanece lá. - ish


A critica readline atalho Ctrl+X+E é muito útil, na verdade, quando você está trabalhando na linha de comando. Se você estiver no processo de inserir um comando longo e decidir que deseja, em vez disso, abri-lo em seu editor de texto padrão, tudo o que você precisa fazer é usar o atalho.

Faz uso de Bash readline biblioteca e este atalho particular é chamado o edit-and-execute-command. Você pode definir seu editor padrão colocando export EDITOR="/usr/bin/vi" dentro ~/.bashrc ou ~/.bash_aliases.

Entrar bind -P para ver seu atual readline ligações e referem-se a man readline ou o Manpages Ubuntu on-line Para maiores informações.


8
2017-11-14 21:06





Eu também uso Esc+Backspace para apagar todos os caracteres anteriores até um caractere especial. Isso é o mesmo é Alt+Backspace. Útil se você está apenas excluindo algumas palavras de cada vez.


7
2017-09-06 15:53