ZSH

Un article de Diablotins.org.


Image:brush.png

ZSh, l'autre interpréteur de commandes




ZSH est un interpréteur de commandes disponible dans les ports.
Il est très évolué et rencontre beaucoup de succès parmis les utilisateurs avertis.


Configurer

Installez le port “shells/zsh” et crĂ©ez l'arborescence de ZSH pour chaque utilisateur :

  # mkdir -p ~/.zsh/rc
  # mkdir -p ~/.zsh/scripts

Le rĂ©pertoire “scripts” contiendra les scripts spĂ©cifiques Ă  cet utilisateur. Maintenant, dĂ©finissez zsh comme interprĂ©teur par dĂ©faut :

chsh

Un buffer s'ouvre dans votre Ă©diteur par dĂ©faut, modifier le comme tel et sauver pour opĂ©rer la modification :

#Changing user database information for lecid.
Shell: /usr/local/bin/zsh
Full Name: Georges Romain
Office Location:
Office Phone:
Home Phone:
Other information:

Vous voilĂ  un power user :) !

Vous pouvez automatiser la procédure en définissant un squelette par défaut pour tous les utilisateurs et en définissant ZSH comme shell par défaut dans /etc/login.conf.

Scripts Zsh

Éditez le fichier d'initialisation de ZSh, “$HOME/.zshrc” :

 
# Resource files
for file in $HOME/.zsh/rc/*; do
  source $file
done

Mise en œuvre de script rc:

  • completion Ă©tendue de ZSH, /home/lecid/.zsh/rc/completion:

 
autoload -U compinit
compinit
fpath=(~/zfunc $fpath)
  • environnement de ZSH, /home/lecid/.zsh/rc/env:

 
# si vous travaillez sous X
export TERM='xterm-color'
# alias de base
alias la='ls -la'
alias ll='ls -l'
# pour ls
export BLOCKSIZE=K
export CLICOLOR=enable
# env global
export EDITOR='ee'
export PAGER='less'
# FreeBSD ls
export LSCOLORS='cxgxhxhxbxhxhxbabacaca'
  • dĂ©finition de l'historique des commandes, “/home/lecid/.zsh/rc/history”:

 
HISTFILE=~/.history
HISTSIZE=1000
SAVEHIST=1000
LANGUAGE=fr_FR
export LANG HISTSIZE HISTFILE SAVEHIST LANGUAGE LC_ALL LC_MESSAGE
  • dĂ©finition de l'invite (version spĂ©ciale), “/home/lecid/.zsh/rc/prompt”:

 
autoload -U colors
colors
host_color="green"
path_color="yellow"
date_color="`zsh /home/lecid/.zsh/scripts/load`"
date_format="%H:%M:%S"
date="%{$fg[$date_color]%}%D{$date_format}"
host="%{$fg[$host_color]%}[%n@%m]"
cpath="%B%{$fg[$path_color]%}%/%b"
end="%{$reset_color%}"
PS1="$host$cpath$end#"
RPS1="$date$end"

Fonctions avancées

Un script shell externe Ă  rc qui change les couleurs de l'heure en fonction de la charge de la machine :
/home/lecid/.zsh/scripts/load

 
#!/usr/local/bin/zsh
declare -i Up=`uptime | awk '{print $10}' | cut -f1 -d ',' `
if [ $Up -ge 2 ]
 then
  echo 'red'
  exit
 else
  if [ $Up -lt 1 ]
   then
    echo 'green'
    exit
   else
    echo 'yellow'
    exit
  fi
fi
Récupérée de « http://www.diablotins.org/index.php/ZSH »
Projets :
Boîte à outils