ZSH
De Diablotins.org.
| ZSh, l'autre interpréteur de commandes
|
| ||
| ZSH est un interpréteur de commandes disponible dans les ports.
|
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

