View previous topic :: View next topic |
Author |
Message |
stilldre n00b


Joined: 14 May 2007 Posts: 11 Location: Brasil
|
Posted: Mon May 14, 2007 7:14 pm Post subject: Guia de Instalação e Configuração da zsh no Gentoo GNU/L |
|
|
Conteúdo:
1. Instalação;
2. Configuração;
3. Configurações de Salvamento(gravação de configurações);
4. Tornando a zsh na shell padrão.
1. Instalação
Instalando zsh
Para instalar a zsh sob o Gentoo, precisaremos primeiramente instalar os pacotes app-shells/zsh (o próprio zsh) e app-shells/zsh-completion (scripts complementares da zsh).
Listagem de Código 1.1: Instalando zsh
# emerge zsh zsh-completion
Entrando em zsh
Quando você executar zsh pela primeira vez, você verá a seguinte mensagem. Você poderá ignorar esse menu pois criaremos nosso arquivo de inicialização mais tarde neste guia.
Listagem de Código 1.2: Ignorando a configuração inicial
$ zsh
This is the Z Shell configuration function for new users, zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
--- Type one of the keys in parentheses --- q
2. Configuração
Introdução
Para iniciar uma única sessão zsh, execute zsh, para uma solução permanente, verifique o capítulo Configurações de Salvamento(gravação de configurações). Após a instalação, zsh parece simples e até mesmo limitada em funcionalidade. Para mudar isso, diversas mudanças na configuração precisam ser realizadas.
Compleção-com-TAB Avançada
Para ativar o famoso sistema de compleção-com-TAB da zsh, precisaremos executar os seguintes comandos:
Listagem de Código 2.1: Ativando compleção
% autoload -U compinit
% compinit
O sistema de compleção padrão é feio e simplista. Se você quiser melhorar sua aparência, execute os seguintes comandos:
Listagem de Código 2.2: Melhorias no sistema de compleção
% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
Correção de comandos
Também é uma boa idéia ativar a auto-correção dos comandos digitados:
Listagem de Código 2.3: Ativando auto-correção
% setopt correctall
Título
O título no entanto pode parecer chato, mas podemos ajustá-lo facilmente em alguns passos. Primeiro, temos que iniciar o suporte avançado a títulos:
Listagem de código 2.4: Ativando títulos avançados
% autoload -U promptinit
% promptinit
Nota: Se você está utilizando diversos prompts, e não quer utilizar um título para cada um deles, você pode usar o comando pormpt -l para listar os títulos disponiveis
Outra opção é criar seu próprio título. Para fazer isso você precisará ativar a variável de ambiente PS1.
Listagem de Código 2.6: Um título customizado simples
% export PS1="[Test Prompt] > "
[Test Prompt] >
Enquanto for proveitoso ser capaz de criar um título customizado, zsh também provê muitas sequências de escape que permitem que informação do sistema seja mostrada no título. Abaixo algumas das sequências de escape:
Sequência Exibição
%T Horário do sistema (HH:MM)
%* Horário do sistema (HH:MM:SS)
%D Data do sistema (YY-MM-DD)
%n Nome de usuário
%B - %b Inicia - termina texto em negrito
%U - %u Inicia - termina sublinhado
%d Diretório atual
%~ Diretório atual, relativo ao ~
%M Nome da máquina
%m Nome da máquina (truncado antes do primeiro periodo)
%l Terminal atual (tty)
Estas sequências de escape podem simplesmente serem inseridas na variável de ambiente, PS1, e zsh as interpretará automaticamente.
Listagem de Código 2.7: um título mais complexo
% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/username %
Histórico
Infelizmente, a configuração padrão da zsh no Gentoo não inclui suporte ao comando de histórico. Trabalhar com uma shell sem histórico é muito frustrante, portanto devemos executar os seguintes comandos:
Listagem de Código 2.8: Configuração básica de histórico
% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"
(O histórico não será salvo sem o seguinte comando)
% export SAVEHIST=$HISTSIZE
Para evitar que o histórico grave entradas duplicadas (como um ls -l utilizado diversas vezes em uma única sessão de shell), você pode ativar a opção hist_ignore_all_dups:
Listagem de Código 2.9: Evitando duplicatas
% setopt hist_ignore_all_dups
Uma dica para prevenir que entradas específicas sejam gravadas no histórico é precedê-las por pelo menos um espaço.
Listagem de Código 2.10: Prevenindo entradas específicas de serem gravadas em histórico
% setopt hist_ignore_space
(Este comando não será gravado. Note o espaço extra antes dele.)
% cat /proc/cpuinfo
Opções Diversas
Você pode ativar a opção autocd se quiser evitar a digitação tediosa do comando cd para mudar de diretório (por exemplo /etc ao invés de cd /etc)
Listagem de Código 2.11: Ativando a opção autocd
% setopt autocd
Se a opção tipo-bash para uso de caracteres 'coringa' não satisfaz você, a opção extendedglob deve ser utilizada para ativar opções extendidas de 'coringas' (algo similar a expressões regulares).
Listagem de Código 2.12: Ativando opção extendida de coringas
% setopt extendedglob
Quando a opção acima estiver ativa, você poderá utilizar consultas extendidas através de coringas como em cp ^*.(tar|bz2|gz).
3. Configurações de Salvamento(gravação de configurações)
Gravando configurações zsh
Uma vez personalizada a zsh, é uma boa idéia gravar tais opções como padrão para a shell zsh no sistema. Um meio possível de atingir tal objetivo é escrever nossas configurações no script /etc/zsh/zshrc. Alternativamente, podemos torná-las padrão para nossa conta de usuário apenas editando ~/.zshrc.
Listagem de Código 3.1: ~/.zshrc (um exemplo)
#!/bin/zsh
# compleção
autoload -U compinit
compinit
# auto-correção
setopt correctall
# titulo - prompt
autoload -U promptinit
promptinit
prompt gentoo
4. Tornando a zsh na shell padrão.
Opção para usuários com privilégios root
Podemos trocar a shell para um determinado usuário com o comando usermod.
Listagem de Código 4.1: Trocando permanentemente a shell para zsh usando usermod
# usermod -s /bin/zsh userlogin
Alternativo para usuários não-root
Se o administrador do seu sistema (apesar dos pedidos gentis) se recusa a ativar zsh como shell padrão para você, você pode fazer com que bash execute zsh na inicialização, tudo o que você precisa fazer é fazer uma pequena modificação no ~/.bashrc do sistema.
Listagem de Código 4.2: ~/.bashrc exemplo
(Adicione a seguinte linha ao ~/.bashrc do seu sistema)
exec zsh
Outro método para trocar shells é usar o comando chsh (um utilitário usado para trocar a shell de login de um usuário). Um usuário comum pode trocar a shell de login apenas para sua própria conta. Como root, você pode trocar a shell de login para qualquer usuario.
Listagem de Código 4.3: Trocando a shell para zsh permanentemente com chsh
(Substitua "nome" pelo seu nome de usuário)
$ chsh -s /bin/zsh nome _________________ while ( love & passion ) {
for( fight = 0 ; rights < freedom ; rights++ )
fight = standup( rights );
free( zion );
} |
|
Back to top |
|
 |
mark_alec Bodhisattva


Joined: 11 Sep 2004 Posts: 6066 Location: Melbourne, Australia
|
Posted: Tue May 15, 2007 10:55 am Post subject: |
|
|
Moved from Portuguese to Documentação, Ferramentas e Dicas. _________________ www.gentoo.org.au || #gentoo-au |
|
Back to top |
|
 |
stilldre n00b


Joined: 14 May 2007 Posts: 11 Location: Brasil
|
Posted: Tue May 15, 2007 3:47 pm Post subject: Obrigado |
|
|
Realmente o post precisava mudar de seção, pois se trata da tradução de uma guia da documentação. Muito obrigado. _________________ while ( love & passion ) {
for( fight = 0 ; rights < freedom ; rights++ )
fight = standup( rights );
free( zion );
} |
|
Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Wed Aug 08, 2007 3:59 am Post subject: |
|
|
wow fiquei impressionado eu sabia que a zsh era bastante mais poderosa que a bash mas este howto esta o maximo.
Parabens _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
Back to top |
|
 |
Hal[PT] n00b

Joined: 09 Feb 2003 Posts: 33 Location: Lisbon
|
Posted: Thu Aug 30, 2007 9:00 pm Post subject: Mais algumas dicas sobre a zsh |
|
|
Outras coisas "interessantes" na utilização da zsh...
Problemas com teclas especiais? (Home,End)
Se a zsh não estiver a gostar das teclas Home e End a solução é simples:
Code: | $ cat
Carregar na tecla Home, há de aparecer algo assim: ^[[1~
Carregar na tecla End, há de aparecer algo assim: ^[[4~ |
O código das teclas pode variar. Eu dependendo do terminal apanho com vários códigos. Depois é só editar os ficheiros de init (como o .zprofile) acrescentando o seguinte:
Code: | bindkey '^[[1~' beginning-of-line
bindkey '^[[4~' end-of-line |
claro está, substituindo o código da tecla por aquele que apareceu quando correu o cat. Pode ainda chegar a soluções mais sofisticadas usando a variável $TERM. Nos meus ficheiros tenho algo como
Code: | if [[ $TERM = "rxvt" ]]; then
bindkey '^[[7~' beginning-of-line
bindkey '^[[8~' end-of-line
else
bindkey '^[[1~' beginning-of-line
bindkey '^[OH' beginning-of-line
bindkey '^[[4~' end-of-line
bindkey '^[OF' end-of-line
bindkey '^[[3~' delete-char
fi
|
Procura no histórico on-the-fly
Quantas vezes não acontece querer ver um comando que se fez há já algum tempo e então carregar 238491248 vezes na tecla para cima ou ter de fazer um grep ao ficheiro de history... Pois com a zsh isto pode ser brutalmente simplificado. Eu uso este maravilhoso keybinding para me salvar a vida nessas situações:
Code: | bindkey '^R' history-beginning-search-backward |
O que é que isto faz? Sempre que estou na linha de comandos e faço Ctrl+R, aparece uma segunda prompt para escrever a search string. A prompt do comando mostra o último comando que se identifica com a dita cuja. Em jeito de printscreen...
Code: | $ comando muito complicado que queria encontrar
bck-i-search: complic_ | Esta feature é super útil e quando a gente se habitua passa a fazer imensa falta!
Corrigir só onde deve...
Às vezes a correcção automática da zsh pode ser muito irritante. Por exemplo para renomear um ficheiro com "mv malexcrito malescrito" ele vai perguntar se o segundo argumento "malescrito" deve ser substituído pelo nome do ficheiro que ele encontra, oferecendo-se assim para substituir o comando por "mv malexcrito malexcrito"... nada do que a gente quer. Faz portanto sentido para certos comandos desactivar a correcção automática. Algo que se pode fazer da seguinte maneira (neste caso particular: mv, cp, mkdir e rm)
Code: | alias mv='nocorrect mv' # no spelling correction on mv
alias cp='nocorrect cp' # no spelling correction on cp
alias mkdir='nocorrect mkdir' # no spelling correction on mkdir
alias rm='nocorrect rm' # no spelling correction on rm |
E para acabar...
Só dizer que a zsh é a melhor shell Ela dá até para fazer pipocas, mas ainda não consegui descobrir como  |
|
Back to top |
|
 |
stilldre n00b


Joined: 14 May 2007 Posts: 11 Location: Brasil
|
Posted: Sat Sep 01, 2007 1:44 pm Post subject: |
|
|
Muito bom complemento, obrigado!
Lembrando que a documentação em inglês pode ser encontrada nos links abaixo:
http://zsh.sunsite.dk/Doc/
e
http://zsh.sunsite.dk/Intro/intro_toc.html _________________ while ( love & passion ) {
for( fight = 0 ; rights < freedom ; rights++ )
fight = standup( rights );
free( zion );
} |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|