Pourquoi préférer zsh plutôt que bash ?

Photo de profil pour l’utilisateur Patrice Grundmann
Soumis par Patrice Grundmann le
Image-billet-blog
Préférer zsh en shell plutôt que bash

Zsh est un interpréteur de commande (shell) bien pratique pour sa complétion hors pair et ses capacités pour interpréter des scripts. Installons-le sous Ubuntu ou Debian en ligne de commande, puis changeons le shell par défaut :

sudo apt-get install zsh
chsh

Choisir : /bin/zsh
Vérifiez bien votre saisie avant de valider, sinon vous risquez d'avoir un terminal non fonctionnel.

Il ne reste plus qu'à changer dans Konsole par exemple (notre terminal sous Kubuntu) la commande, là aussi par : /bin/zsh Nous allons créer dans notre home un fichier .zshrc

vim ~/.zshrc

Collons-y ces lignes :

# Set up du prompt
autoload -Uz promptinit
promptinit
#prompt adam2                    #prompt dénudé
prompt fire blue white red black #prompt plus doux
#prompt fire red black red white red red #prompt pour root
 
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%BDésolé, pas de correspondace pour : %d%b'
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \
                             /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin
# Crée un cache des complétion possibles
# très utile pour les complétion qui demandent beaucoup de temps
# comme la recherche d'un paquet aptitude install moz
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh_cache
 
# Des couleurs pour la complétion :
# faites un kill -9  pour voir l'effet
zmodload zsh/complist
setopt extendedglob
zstyle ':completion:*:*:kill:*:processes' list-colors "=(#b) #([0-9]#)*=36=31"
 
# Correction des commandes mal saisies
setopt correctall
 
setopt histignorealldups sharehistory
 
# Use emacs keybindings even if our EDITOR is set to vi
bindkey -e
 
# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zsh_history
 
# Use modern completion system
autoload -Uz compinit
compinit
 
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
 
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
 
# Les alias marchent comme sous bash
alias ls='ls --color=auto'
alias ll='ls --color=auto -lah'
alias lll='ls --color=auto -lh | less'
# marre de se faire corriger par zsh ;)
alias xs='cd'
alias sl='ls'
# mplayer en plein framme buffer ;)
alias mplayerfb='mplayer -vo fbdev -vf scale=1024:768'
# Un grep avec des couleurs :
export GREP_COLOR=31
alias grep='grep --color=auto'
alias xte='nohup xterm &' # xte lancera un xterm qui ne se fermera pas si on ferme le terminal
# Pareil pour les variables d'environement :
#export http_proxy="http://hostname:8080/"
#export HTTP_PROXY=$http_proxy
 
# éditeur de texte et pager par défaut
export EDITOR=/usr/bin/vim
export PAGER=/usr/bin/most
#echo `/usr/games/fortune` | cowsay -f tux.cow
 
## site
alias Drpublicitempro='drush --uri="http://www.publicitem.pro"'
 
setopt no_nomatch # if there are no matches for globs, leave them alone and execute the command
setopt no_cdable_vars # don't use named directories in cd autocompletion
 
#PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
 
### Profile
# && source ~/.profile

Tapons dans le terminal : zsh (ou réouvrons le terminal pour que la configuration soit prise en compte)
Nous avons un shell fonctionnel et plaisant.

Catégorie

Ajouter un commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les lignes et les paragraphes vont à la ligne automatiquement.