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. .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


 

Maio 2009
S T Q Q S S D
« Jan   Jun »
 123
45678910
11121314151617
18192021222324
25262728293031

Principais mensagens

Tópicos recentes

Feeds