Première question qu’on se pose tous : Qu’est-ce qu’il a de plus que Bash ?
1) il semble plus rapide a l’execution, niveau conso de mémoire, il semble au même niveau.
2) il permet de personnaliser l’affichage dans la barre des titres, et dispose de la
fonction preexec() qui permet d’afficher la commande en cours d’execution
(si on lance top, top s’affiche dans le titre).
3) Completion avancée des chemins, commandes et paramètres
la completion sous forme de “scroll”, …
4) Correction à la volée, le suprêmissime run-help :
scénario :
#rsync --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=distfiles/* --exclude=local/* --exclude=packages/* --progress
merde je ne me souviens plus quoi mettre
1- sous bash Ctrl-C ou nouveau shell puis man rsync et on recommence la commande
2- sous zsh Esc-H sort le man de rsync et quand on quitte le man on récupère la command ou on en était.
et euh… c’est a peu pres tout ce que je sais pour l’instant…
Voilà ma config (/etc/zsh/zshrc) :
[fixed]# Options
setopt inc_append_history
Historique
HISTFILE=~/.zshhistory
HISTSIZE=3000
SAVEHIST=3000
echap + H affiche la manpage
unalias run-help
autoload run-help
Completition emerge
autoload -U compinit promptinit
compinit
promptinit; prompt gentoo
Couleurs bash
eval dircolors -b /etc/DIR_COLORS
Gestion du ls : couleur + touche pas aux accents
alias ls=‘ls --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable’
Aliases
Demande confirmation avant d’écraser un fichier
alias cp=‘cp --interactive’
alias mv=‘mv --interactive’
alias rm=‘rm --interactive’
Raccourcis pour ‘ls’
alias ll=‘ls -l’
alias la=‘ls -a’
alias lla=‘ls -la’
Completition pour killall
zstyle ‘:completion:*:processes-names’ command ‘ps -e -o comm=’
Completition pour kill
zstyle ‘:completion::processes’ command ‘ps -au$USER’
zstyle ':completion:::kill::processes’ list-colors ‘=(#b) #([0-9]#)*=0=01;32’
Barre de titre
case $TERM in
xterm|rxvt|(dt|k|E)term)
precmd () { print -Pn “\e]0;$USER@$HOST:%~\a” }
preexec () { print -Pn “\e]0;$USER@$HOST $1\a” }
;;
esac
Le prompt
if [ id -u
-eq 0 ]; then
PROMPT=$(echo ‘%{\033[01;31m%}%m %{\033[01;34m%}%1~ # %{\033[00m%}’)
else
PROMPT=$(echo ‘%{\033[01;32m%}%n@%m %{\033[01;34m%}%1~ $ %{\033[00m%}’)
fi[/fixed]
Et un scrot de la bête en action
Utilisateurs de zsh, faites tourner les trucs et astuces dont vous disposez (surtout les raccourcis.
Les autres, n’hésitez pas à essayer, ça vaut le détour !