Às vezes, ao copiar e colar texto da saída de comandos, acidentalmente usarei Ctrl+ em cvez de Ctrl+ Shift+ c.
Portanto, a linha de comando interpreta como ^C
...
Por que é isso? Por que a linha de comando interpreta a controlentrada como ^
?
command-line
Diga-me o porquê
fonte
fonte
^
como símbolo para "controle" data de tempos pré-gráficos, quando os terminais eram somente texto, e acredito que antes disso, quando tínhamos cartões e papel, nenhum terminal. Eu adoraria saber por que o cursor foi escolhido como símbolo.Como os CTRL+ KEYcombos são interpretados pelo terminal como caracteres ASCII não imprimíveis, e sendo esses não imprimíveis, você precisa de uma maneira de representá-los.
A convenção, decorrente dos terminais VT com suporte a ANSI , é representar o combo CTRL+ KEYrepresentando CTRLcom um sinal de intercalação (
^
) e KEYcom KEY.fonte
Ao copiar e colar de / para um terminal, é recomendável usar os atalhos Ctrl+ Inserte Shift+ Insertrespectivamente.
Esses são os atalhos mais tradicionais para uso em terminais, embora você note que em um ambiente gráfico X Ctrl+ Inserte Shift+ Insertestão vinculados aos mesmos Ctrl+ Ce Ctrl+ V.
Na maioria dos terminais Ctrl+ C(representados por
^C
) são usados para interromper a execução de um processo, portanto, colar com esse atalho não funcionará.Para copiar e colar rapidamente, você pode utilizar o buffer primário do X destacando o texto que deseja copiar e, em seguida, clicando com o botão do meio no local em que deseja colá-lo. Não é necessário teclado.
fonte
^C
ou similares aparecem ao pressionar CTRL + C (ou CTRL + outra letra). Não se trata de como copiar e colar corretamente as coisas no terminal, para as quais sua resposta seria ótima.Você deve usar Ctrl+ Ce não Shift+ Ctrl+ C, porque na linha de comando, eles fazem a mesma coisa (e Ctrl+ Cé mais fácil que Shift+ Ctrl+ C). Isso pode não ser verdade em certos ambientes gráficos em que a GUI captura algumas teclas e faz algo especial, mas se as teclas forem realmente enviadas para a linha de comando, não haverá diferença. É por isso que pressionar Ctrl+ Cpode mostrar ^ C como C maiúsculo, em vez de C. minúsculo. A linha de comando não faz distinção sobre qual você pressionou (e presume-se que maiúsculas sejam mais fáceis de ler). Isso é verdade para letras; para outros caracteres, isso Shiftpode ter um efeito.)
Pressionar Ctrl- Cenvia o código ASCII 64 abaixo da posição da letra maiúscula na tabela ASCII (e 96 a menos que a posição da letra minúscula na tabela ASCII). Então, pressionar Ctrl- c(em minúscula) envia o código ASCII 3 (que é 64 a menos do que Co código ASCII de capital 67). Em muitos ambientes, você pode segurar Alte pressionar 3o teclado numérico (e soltar a 3tecla e, em seguida, soltar a Alttecla) e poderá obter o mesmo efeito.
Em relação a ^ C, o ^ é apenas uma abreviação bem conhecida da Ctrltecla " ". Da mesma forma, M- é um atalho para a Alttecla " ". Err, sim. M significa a palavra "Meta", que pode ser inserida mantendo Altpressionado o que vem a seguir, ou algumas vezes pressionando Esc(e liberando Esc) e pressionando o que vem a seguir. O artigo da Wikipedia sobre "Chave de controle": a seção "Notação" descreve isso como "Notação tradicional". Isso também é conhecido como Caret Notation ( artigo da Wikipedia sobre Caret Notation , Unix StackExchange: a pergunta de ryvnf sobre Caret Notation ).
Em relação à última pergunta, o shell de comando não está "interpretando" nada para ser um sinal de intercalação. Em outras palavras, o shell não está lendo nada e acreditando que é um sinal de intercalação. O que está acontecendo é que o shell está usando a conhecida notação de intercalação para saída. Como outro exemplo, você pode ver o conhecido pager, "less", usar notação de sinal de intercalação executando:
dd if=/dev/zero bs=64 count=1 | less
(O editor de texto "nano" também usa notação de cursor em sua ajuda on-line, incluindo as telas completas da ajuda on-line mostradas após pressionar ^ G, aka Ctrl- g.)
fonte