Customizando PS1 – zsh
30 Maio 2009
O texto exibido pelo shell antes do comando a ser executado, é na realidade uma variavel ambiente, no caso PS1, assim se você digitar no shell:
export PS1="$"
Você terá o seu prompt igual a “$”, mas isso não é nada interessante, muito menos útil, por isso o shell permite o uso de expressões especiais tanto para dar estilização ( negrito itálico etc.) como para mostrar informações úteis como o diretório atual o nome do host usuario hora etc., exemplo:
export PS1="%m %T:"
No exemplo a cima o “%m” e o “%T” irão mostrar o nome da máquina local e a hora respectivamente,repare que é um sinal de porcentagem % seguido de uma letra que depois é expandido ( em outras palavras substituido) para um determinado valor, aqui tem uma lista ( para o zsh) de valores a serem usados na variavel do prompt:
%l – atual tty
%M – nome completo da do host (máquina atual)
%m – primeira parte do nome do host ( meu.host no caso seria exibido meu)
%n – nome do úsuario
%# – identificação de úsuario (# para root e % para usuarios)
%d – mostra o diretorio atual – como em um ‘pwd’ -
%-nd – n especifica um número máximo de subdiretorios ha serem exibidos
%~ – mesmo que %d mas nesse caso o diretório home é substituido por ~
%D – data no formato ano-mês-dia
%T – horas no formato de 24h
%t – horas em am/pm
%* – horas no formato de 24h + os segundo
%W – data no formato mês-dia-ano
Nota: como o % é usado para marcar uma expansão, se você quiser usa-lo no texto do seu prompt você tem de “escapa-lo”, exemplo:
export PS1="%%"
o seu prompt seria apenas %.
E para expansão de estilo:
%B – coloca negrito da fonte
%U – coloca sublinhado da fonte
%S – coloca italico da fonte
%F{cor} – adiciona cor, as cores são:
black, red, green, yellow, blue, magenta, cyan, white
%K{cor} – adicionar cor de fundo
nota: você precisa determinar onde termina a aplicação do estilo, no caso é o carater de escape “%” seguido da letra da opção que aplica o estilo. Exemplo:
export PS1="%F{cyan}%n%f:"
Teria como resultado “usuario:” onde usuario é o seu nome de usuario em azul claro seguido de dois pontos sem cor ( porque a mudança de cor foi encerrada antes deles com o %f) . Você não é abrigado a encerar o efeito visual, assim se você quiser que o nome do comando sendo digitado seja visto em negrito, no exemplo acima seria só adicionar o %B depois dos dois pontos:
export PS1="%F{cyan}%n%f:%B"
A lista completa dos valores possiveis para o prompt esta no final da página de uma das páginas do manual do zsh `man 1 zshmisc` para ve-la.
Além da variavel PS1 existe a PS[2-4] e RPS[12], onde PS2 em frente é usado para demonstrar subniveis, no caso se você digitar echo ” <enter> vai aparecer a sua PS2, e a RPS1 é equivalente a PS1 porem é mostrada do lado direito da tela, como exemplo minha configuração:
export PS1="%F{cyan}%n%f %1. %(?.%#.%F{red}%#%f) "
export PS2="> "
export RPS1="%F{yellow}%T%f"
Entry Filed under: Linux. .
Trackback this post | Subscribe to the comments via RSS Feed