Como definir a cor do prompt de comando no Bash?

Como definir a cor do prompt de comando no Bash?

Navegar pelos resultados do último comando no Bash é um pouco difícil porque o prompt de comando e os resultados são da mesma cor. Isso torna difícil separar os resultados de comandos consecutivos.

Como mudo a cor para rosa, por exemplo?

Responder1

@Rob está certo; especificamente, para mudar para vermelho claro (rosa não é uma cor disponível):

PS1 = "\[\033[1;31m\]\u:\w\$\[\033[0m\] "
#      ^^^^^^^     ^^                    Begin/end ANSI escape
#             ^^^^^                      "light red foreground"
#                    ^^^^^^^             Your original prompt
#                           ^^^^^^^^^^^  Reset color back to default foreground

Você precisa usar sequências de escape ANSI (neste caso 1;31m, o código para "primeiro plano vermelho claro") que são delimitadas por \[\033[e \].

Editar:O roxo claro pode estar mais próximo da cor desejada; a PS1mudança fica como exercício para o leitor.

referência @ o projeto de documentação do Linux

Responder2

Se desejar uma solução alternativa, você pode criar um pequeno script para definir as cores PS1 da sessão do terminal sem torná-las permanentes (a menos que deseje cores permanentes, siga a solução de Alex).

Se criarmos yellow.she salvarmos no /usr/bindiretório e, em seguida, tornarmos o arquivo executável, chmod +x yellow.shpoderemos editá-lo yellow.she adicionar o seguinte código:

#!/bin/bash
clear

# Yellow color variable
ylw='\x1b[93m'

echo -e "${ylw}"
clear

A execução deste script mudará a cor do seu terminal para amarelo. Você pode redefinir a cor do PS1 da mesma maneira usando este código:

#!/bin/bash
clear

# Reset color to default
rst='\x1b[0m'

echo -e "${rst}"
clear

Aqui está uma lista rápida de algumas variáveis ​​de código de cores que você pode usar.

black=$'\x1b[90m' # Dark gray. Not used much.
red=$'\x1b[91m'
green=$'\x1b[92m'
yellow=$'\x1b[93m'
blue=$'\x1b[94m'
purple=$'\x1b[95m'
cyan=$'\x1b[96m'
pink=$'\x1b[97m'
default=$'\x1b[0m' # Reset to default color.

Uso para comandos comuns dentro de scripts simples:

echo -e "${red} $(ls $1) ${default}" # Argument would be the directory you want to list.

Isso pode ser feito rapidamente, dependendo de como você configura as cores a serem usadas. Os códigos de cores que forneci não são todos. Dependendo das cores que seu terminal suporta, você pode usar uma gama de 256 cores.

informação relacionada