zsh (Z shell) - Uma alternativa ao bash

Este artigo descreve alguns procedimentos para configuração do zsh (Z Shell), uma alternativa ao mais conhecido bash (Bourne-Again Shell).

[ Hits: 46.522 ]

Por: Alberto Federman Neto. em 09/09/2013 | Blog: https://ciencialivre.blog/


oh-my-zsh



Depois de instalar o zsh (página 2) e testá-lo (página 3), existe um configurador para o zsh, chamado oh-my-zsh, feito pelo programador Francês Robby Russel:
C. Copie seu arquivo de configuração do zsh para protegê-lo:

cd /
$ cd ~/
$ sudo cp ~/.zshrc ~/.zshrc.original


D. Instalação em distribuições em geral:

1. Instalação automática:

A mais fácil e recomendada pelo desenvolvedor, e baseada em baixar o pacote oh-my-zsh com o cURL ou o Wget.

Se quiser, pode experimentar com outros gerenciadores de download, como o Axel, Prozilla e o Aria2.

Execute um dos comandos abaixo:

curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

$ wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh


2. Instalação pelo Git:

Se preferir, instale em sua distribuição alguns controladores de versão (Git, CVS e SVN/Subversion), depois baixe e clone o oh-my-zsh, usando Git:

sudo git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
$ sudo cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zsh


E. Para Sabayon e Gentoo, ele já está instalado (veja página 2).

F. Uso.

Com esse configurador, o oh-my-zsh, você pode ter vários temas de cores e aspectos do terminal, plugins com suporte a Git, linguagens de programação, multimídia, etc.

Para usá-lo, execute estes comandos:

cd /
$ cd ~/
$ cd .oh-my-zsh
$ sudo sh oh-my-zsh.sh


Isso ativa o oh-my-zsh.

Agora, edite o seu arquivo "~/.zshrc", para temas, plugins, etc. Se quiser, pode se basear no meu:

# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.

ZSH_THEME="candy"

# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"

# Comment this out to disable bi-weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"

# Uncomment to change how often before auto-updates occur? (in days)
# export UPDATE_ZSH_DAYS=13

# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"

# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment following line if you want to disable command autocorrection
# DISABLE_CORRECTION="true"

# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"

# Uncomment following line if you want to disable marking untracked files under
# VCS as dirty. This makes repository status check for large repositories much,
# much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)

plugins=(git)

source $ZSH/oh-my-zsh.sh

# Customize to your needs...
# export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.3:/opt/sublime-text2:/opt/nvidia-cg-toolkit/bin:/usr/games/bin:/opt/cuda/bin:/opt/cuda/libnvvp

# Adaptado a partir de meu Bash:

#Welcome msg

echo '   _ '
echo '  *v* *** BEM VINDO AO '`hostname`' ***'
echo ' /(_)\ '
echo '  ^ ^ ' `date`
echo ' '

#Sistema
echo '    '
echo '  *** Sistema: '`uname -a`' ***'
echo '   '
echo '  *** Usuario: '`who -m`' ***'
echo '   _ '

# Checa a Hora do Brasil, lista servidores NTP e ajusta Teclado:

echo '   _ '
echo '  *** Hora do Brasil e Servidores: ***'
echo '   _ '
ntpq -p
echo '   _ '
setxkbmap -model abnt2 -layout br -variant abnt2
echo '   _ '
echo '*** PRONTO, OK, EIS SEU TERMINAL, DIGITE SEU COMANDO: ***'
date

# Teste de Shell, default no Sabayon:

# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.

if [[ $- != *i* ]] ; then
    # Shell is non-interactive.  Be done now!
    return
fi

# Atalhos, Alias, Para Sabayon, mude para sua Distro

alias lsa='ls -a'
alias lsc='ls -agotpUXh'
alias lst='ls -a -X'
alias terminal='mrxvt'
alias arquivos='nautilus'
alias xinit='xinit &'
alias desliga='sudo init 0'
alias reinicia='sudo reboot'
alias repositorios='sudo equo up'
alias autorepos='sudo equo up && sudo emerge --sync && sudo layman -S'
alias vaiatualizar='sudo equo u --pretend'
alias atualizar='sudo equo u'
alias editar='gksu gedit'
alias internet='/home/albfneto/Desktop/PACOTES/firefox/firefox/firefox %U'

Detalhes de como editá-lo, temas, etc:
Este meu arquivo usa o tema Candy, gerando um terminal com este aspecto:

G. Protegendo a configuração:

Neste ponto, você pode querer usar o oh-my-zsh, mas pode desejar voltar depois ao zsh "clássico", para isso, copie o seu arquivo "/home/usuário/.zshrc" para poder trocá-lo:

cd /
$ cd ~/
$ sudo cp .zshrc zshrc.oh-my-zsh


Para trocar novamente ao zsh clássico (página 3), execute estes comandos:

cd /
$ cd ~/
$ sudo mv -f .zshrc.classico .zshrc


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação de zsh e seus complementos
   3. Testando zsh
   4. oh-my-zsh
   5. Detalhes e conclusão
Outros artigos deste autor

Experimentos com GNOME3 em instalações contendo outros ambientes gráficos

Usando Linux - Vida nova para um velho Itautec Infoway

Modificando a remasterização com Molecule - Sabayon completo, com KDE e GNOME

A teoria Linux por trás dos acessos e dos atalhos

Atualizando Compiz Fusion em Sabayon Linux

Leitura recomendada

OpenVPN - Servidor Ubuntu 10.04 LTS e Clientes Windows

Restaurando o LILO com o Slackware 9.1 (HOWTO)

Servidor DHCP rápido e fácil para Conectiva Linux

Facilitando o acesso a disquetes e memory keys (PenDrives) no Kurumin

Deixando o GNOME mais adequado às leis de Fitts

  
Comentários
[1] Comentário enviado por px em 09/09/2013 - 10:54h

Bacana, já havia ouvido falar e até usei um tempo atrás no BSD (sh) e no slack o zsh e um outro que não me recordo agora, mas qual é a real diferença entre eles? tem algum ganho nos comandos e binários que executamos ou é só por gosto mesmo?

[2] Comentário enviado por lcavalheiro em 09/09/2013 - 12:41h

Em primeiro lugar, excelente artigo, Alberto!


[1] Comentário enviado por px em 09/09/2013 - 10:54h:

Bacana, já havia ouvido falar e até usei um tempo atrás no BSD (sh) e no slack o zsh e um outro que não me recordo agora, mas qual é a real diferença entre eles? tem algum ganho nos comandos e binários que executamos ou é só por gosto mesmo?


Tem diferenças sim. Cada shell permite uma certa gamas de recursos e possibilidades, como por exemplo o csh (que permite usar a sintaxe da linguagem C direto no terminal), o ash (eu acho que é esse, que é um bash mais pelado, com o objetivo de ser bem leve), o ksh (meu favorito, que dá pra fazer umas coisas do arco da velha neles). Hoje eu uso só o bash, mas é mais por preguiça do que por qualquer outra coisa.

[3] Comentário enviado por azk em 09/09/2013 - 15:22h

Belo artigo!
Irei fazer alguns testes com o zsh...

Favoritado!

[4] Comentário enviado por albfneto em 09/09/2013 - 21:22h

Tem diferenças sim, alguns comandos são diferentes (não os básicos de linux)
zsh demora um pouquinho mais para carregar a shell (pelo menos no Olhômetro) mas e execução do comando em sí é mais rápida.
eu acho ela prática, por causa das autocorreções e do auto-completar.

Binários. claro não há diferença, em qualquer interpretador de comandos, com os binários executáveis, ele só os executa.

[5] Comentário enviado por albfneto em 09/09/2013 - 22:19h

COMPLEMENTOS DO ARTIGO:

13 de Novembro de 2018.

Encontrei outra maneira fácil de mudar Temas do Zsh:

Abra o Zsh, execute o comando de função

$ prompt -l

Aparecem os Prompts disponíveis:

Currently available prompt themes:
adam1 adam2 bart bigfade clint elite2 elite fade fire gentoo off oliver pws redhat suse walters zefram

Escolha um, por exemplo o "fire" e faça setar esse prompt, com este comando:

$ prompt -s fire

a seguir, edite o arquivo ~/.zshrc e coloque nele estas linhas:

autoload -Uz promptinit
promptinit
prompt fire

Se usar outro Prompt, substitua "fire" pelo nome do Prompt.

Para ver como são os Temas de Prompt, gráficamente, eles estão aqui:

http://bneijt.nl/blog/post/zsh-themes-for-prompts-screenshots/

Sobre O Dash.

O shell Dash (Debian Almquist Shell) foi usado muito por Ubuntu, por anos, mas descobri recentemente que ele foi inventado para Debian, e nao para Ubuntu:

https://www.cyberciti.biz/faq/debian-ubuntu-linux-binbash-vs-bindash-vs-binshshell/
https://www.edivaldobrito.com.br/dash-to-dock-no-gnome-shell/

Mais um Artigo meu, sobre o assunto exposto aqui:

https://edpsblog.wordpress.com/2017/07/04/dica-variando-terminais-e-shell/

[6] Comentário enviado por xerxeslins em 10/09/2013 - 10:09h

Favoritado, É lógico.

[7] Comentário enviado por removido em 10/09/2013 - 21:31h

Ótimo artigo.Vou testar também.

[8] Comentário enviado por px em 10/09/2013 - 23:07h

Veleu pelas respostas ai colegas dos comentários supracitados.

[9] Comentário enviado por smarcell em 12/09/2013 - 11:47h

Vamos jogar Tetris no zsh?

autoload -U tetris
zle -N tetris
bindkey 'TECLA' tetris

Onde 'TECLA' é a tecla definida por você, e que irá chamar o jogo!

Feito isso, pressione a tecla que você definiu e pronto! Jogue a vontade. :)

zsh rules!!!

[10] Comentário enviado por Crux em 18/09/2013 - 13:44h

Cara é que distro posso encontrar

[11] Comentário enviado por albfneto em 06/02/2014 - 13:00h

Antigo, mas só agora ví.
Fish e Zsh estão presentes em quase todas as Distros.
procure pelo pacote Fish ou zsh,no seu gerenciador de pacotes.
em muitos linux, é mais fácil de instalar que no sabayon ou no gentoo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts