it-swarm-pt.tech

Alterar prompt do Cygwin

O prompt cygwin padrão de "[email protected] path\ n$" é muito longo para mim. Eu gostaria de manter o caminho.

Eu quero que se torne:

caminho $

Existe um arquivo de configuração que posso modificar para fazer isso?

17
Cristian

O PS1 a variável de ambiente controla o Prompt:

PS1='\w $ '

Para obter mais informações sobre este e outros tópicos de configuração do Prompt, digite man bash (assumindo que bash é o seu Shell) e consulte a seção "PROMPTING".

Para tornar esta alteração permanente, edite o seu ~/.bashrc arquivo para adicionar a linha acima.

26
Greg Hewgill

Um shell de login é aquele cujo primeiro caractere do argumento zero é um - ou um iniciado com a opção --login. Quando o bash é invocado como um Shell de login interativo ou como um Shell não interativo com a opção --login, ele primeiro lê e executa comandos do arquivo/etc/profile, se esse arquivo existir. Depois de ler esse arquivo, ele procura ~/.bash_profile, ~/.bash_login e ~/.profile, nessa ordem, e lê e executa os comandos do primeiro que existe e é legível. A opção --noprofile pode ser usada quando o Shell é iniciado para inibir este comportamento. Quando um Shell interativo que não é um Shell de login é iniciado, o bash lê e executa comandos de ~/.bashrc, se esse arquivo existir.

Portanto, depende ... eu não uso o --login, então devo adicioná-lo a ~/.bashrc

1
jr00n

.bashrc não funcionou para mim. Eu adicionei isso ao final de/etc/profile e funcionou:

export PS1="\[\e[33m\]\w\[\e[0m\] \$ "

Estou usando o Cygwin versão 2.11.2 (versão mais recente em 18/12/2018).

1
Samuel

Não sei por que ter menos contexto é melhor do que ter mais ... O fato de haver uma nova linha no Prompt significa que o comprimento do Prompt não deve ser um problema, mas tente isto:

PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

ou

export PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Isso fornece um prompt colorido:

/full/path/to/current/folder
$your command text here

Dessa forma, você sempre vê o contexto completo da pasta, mas ainda obtém uma linha completa para inserir o texto. (Eu deixei de fora o espaço habitual após '$' porque é colorido para maior clareza).

Colours are:
    1. '/full/path/...' = yellow;
    2. '$' (on next line) = cyan;
    3. 'your command text...' = light grey.

Para aqueles que desejam o contexto 'usuário @ nome do host' também:

PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

ou

export PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Isso fornece um prompt colorido:

[email protected] /full/path/to/current/folder
$your command text here

Essa é minha preferência.

Colours are:
    1. 'user' = (light) green;
    2. '@' = pink;
    3. 'hostname' = (light) green;
    4. '/full/path/...' = yellow;
    5. '$' (on next line) = cyan;
    6. 'your command text...' = light grey.

(Não, não há erros ortográficos neste post - Queen's English;))

1
skeetastax

Coloque isso em seu ~/.bashrc. Fornece um prompt colorido e mantém o status em uma única linha.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\[email protected]\h \[\e[33m\]\w\[\e[0m\]\$ "
0
Sandeep