ZSH
Un article de Diablotins.org.
|
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
