como mover o cursor para as linhas anteriores que começam com no bash?

1

Quando copio e colo o código abaixo no bash, cada linha começa com o símbolo > ; como:

cat  >hello.c <<"EOF"
#include <stdio.h>

int main()
{
  printf("Hello World\n");
  return 0;
}
EOF

no bash:

cat  >hello.c <<"EOF"
> #include <stdio.h>
> 
> int main()
> {
>   printf("Hello World\n");
>   return 0;
> }
> EOF

Eu quero mover as linhas anteriores do cursor para editar essas linhas

É possível?

EDIT: eu já tentei atalhos bash que nenhum deles funcionou. É diferente nas linhas com > operator * (eu não sei seu jargão na terminologia do bash, espero que alguém me diga)

EDIT2: Encontrei o jargão de > , chamado de operador de redirecionamento de arquivos

Então, eu reitero minha pergunta; Como posso mover o cursor além do operador de redirecionamento de arquivos?

    
por kenn 18.01.2016 / 20:21

1 resposta

1

Deve ser fácil

Se você pressionar a seta para cima no seu teclado, deverá ver o comando multi-line inteiro. Ao pressionar a seta para trás , você deve ser capaz de percorrer o comando até mesmo nas linhas anteriores.

Aúnicadiferençaéquequandovocêusaohistóricobash,o>nãoseráexibido.NomeucasoTorrienAMD-->estáfaltandocomonoexemploacima.

Modificaravisodebash

OBashusaasvariáveisPS1ePS2paradefiniroprompt.

Executeecho$PS1&&echo$PS2paraconhecerosvaloresdessasvariáveisparaoseuterminal.

Minhasaída:

\[\e[0;32m\]\u\[\e[1;33m\]@\[\e[0;36m\]\h\[\e[0;33m\]\w\$\[\e[0;0m\]

\h-->

Paraentenderosignificadodisso,leiaalistaabaixo,obtidaem tutorial .

  • \ a: um caractere de campainha ASCII (07)
  • \ d: a data em "Mês da semana Data "formato (por exemplo," Ter 26 de maio ")
  • \ D {format}: o formato é passado para strftime (3) e o resultado é inserido na string de prompt; a formato vazio resulta em uma representação de hora específica de localidade. o chaves são necessárias
  • \ e: um caractere de escape ASCII (033)
  • \ h: o hostname até o primeiro '.'
  • \ H: o nome do host
  • \ j: o número de jobs atualmente gerenciados pelo shell
  • \ l: o nome de base do shell nome do dispositivo terminal
  • \ n: nova linha
  • \ r: retorno de carro
  • \ s: o nome do shell, o nome de base de $ 0 (a parte seguinte à final barra)
  • \ t: a hora atual no formato de 24 horas HH: MM: SS
  • \ T: o hora atual no formato de 12 horas HH: MM: SS
  • \ @: a hora atual em Formato de 12 horas am / pm
  • \ A: a hora atual no formato de 24 horas HH: MM
  • \ u : o nome de usuário do usuário atual
  • \ v: a versão do bash (por exemplo, 2,00)
  • \ V: o lançamento do bash, versão + nível de patch (por exemplo, 2.00.0)
  • \ w: o diretório de trabalho atual, com $ HOME abreviado com um til
  • \ W: o nome da base do diretório de trabalho atual, com $ HOME abreviado com um til
  • \! : o número do histórico deste comando
  • #: o número do comando deste comando
  • \ $: se o UID efetivo for 0, um #, caso contrário, um $
  • \ nnn: o caractere correspondente ao número octal nnn
  • \\: uma barra invertida
  • \ [: inicia uma sequência de não-impressão caracteres, que poderiam ser usados para incorporar uma seqüência de controle no prompt
  • \]: finaliza uma sequência de caracteres não imprimíveis

Uma alteração de horário

Digite o comando PS2='' para alterar o valor apenas do terminal atual. Esta mudança não será permanente.

Definir PS1 personalizado & Valores PS2

Quando você abre um terminal, o arquivo ~/.bashrc é lido para configuração, aqui você pode acrescentar no final do arquivo:

export PS2=''

Isso definirá um valor personalizado para sua variável PS2 e você deverá parar de ver o caractere > em cada linha extra de um comando. Use o comando reload ou feche e reabra o terminal para ver as alterações.

Melhor personalização

No entanto, tenho uma configuração mais complexa. Adicione o seguinte código a ~/.bashrc :

#file for personal modifications to the command line prompt (PSX) if [ -f ~/.bash_PS ]; then . ~/.bash_PS fi

Esse código significa que, se um arquivo chamado .bash_PS for encontrado no seu diretório home ~/ , ele será lido para execução.

Agora crie um arquivo chamado .bash_PS no seu diretório pessoal ~/ . Dentro adicione o código:

export PS2=''

Use o comando reload ou feche e reabra o terminal para ver as alterações.

Nesta abordagem, você pode usar o arquivo .bash_PS para definir a versão personalizada de PS1, PS2, PS3 ou PS4 conforme desejar. Eu tenho um PS1 e PS2 personalizados com códigos de cores incluídos.

Com qualquer abordagem, você deve definir o PS2 como uma string vazia para seu usuário e o > não deve mais aparecer para seu usuário . Esvazie ou exclua .bash_PS para retornar aos valores padrão. Remova a linha adicionada para .bash_rc se você usou o antigo

Para todos os usuários

Adicione a linha PS2='' ao arquivo /etc/bash.bashrc sob a linha que começa com 'PS1 =' alguma string configurada '.

    
por Torrien 19.01.2016 / 02:26