zsh est mon shell favori pour différentes raisons et peu de personnes l'utilisent car elles ignorent comment il nous simplifie la vie de tous les jours.
Nous allons voir quelques fonctionnalités que ce shell nous offre.
La completion est largement supérieure à tout autre shell. Par exemple, si vous avez déjà utilisé git, en appuyant sur la touche TAB :
$ git [TAB]
add -- add paths to the index
am -- apply patches from a mailbox (cooler than applymbox)
annotate -- annotate file lines with commit info
apply -- apply patch on a git index file and a work tree
applymbox -- apply patches from a mailbox
applypatch -- apply one patch extracted from an e-mail
archimport -- import an Arch repository into git
archive -- create an archive of files from a named tree
bisect -- find the change that introduced a bug
blame -- blame file lines on commits
branch -- create and show branches
cat-file -- provide content or type information for repository objec
check-attr -- display gitattributes information
check-ref-format -- makes sure that a reference-name is well formed
checkout -- checkout and switch to a branch
checkout-index -- copy files from the index to the working directory
cherry -- find commits not merged upstream
cherry-pick -- cherry-pick the effect of an existing commit
clean -- remove untracked files from the working tree
clone -- clone a repository into a new directory
clone-pack -- clone a repository into the current repository (transpor
commit -- record changes to the repository
commit-tree -- create a new commit object
config -- get and set repository or global options
[...]
$
Pour rechercher les dernières commandes utilisées, vous disposez de plusieurs options :
En mode vi (set -o vi) : Esc+/ pour rechercher une commande spécifique à l'aide d'un filtre.
En mode emacs (set -o emacs) : Ctrl+r
Le problème avec ces deux commandes est qu'elles n'affichent qu'une commande à la fois. Pour avoir une liste de toutes les commandes, nous allons utiliser la commande history.
Zsh :
Pour afficher les dernières 50 commandes utilisées :
$ history -50
339 ps -ef
[...]
390 rm -f test
Bash :
La syntaxe est un peu différente :
$ history 50
339 ps -ef
[...]
390 rm -f test
Ensuite, pour réexécuter une des commandes de la liste il suffit d'utiliser !# où # est le numéro de la commande dans l'historique :
Lorsque vous travaillez en ligne de commande, des options ont été mises en places afin de vous faciliter la vie.
Par exemple, des options existent pour corriger les éventuelles fautes de frappes que vous pouvez faire.
Pour une configuration globale à tous les utilisateurs du système :
Sous Zsh, éditez le fichier /etc/zshrc :
setopt correct
Sous Bash, éditez le fichier /etc/bashrc :
shopt -s cdspell
ou votre ~/.bashrc (le ~/ correspond à votre répertoire personnel c'est-à-dire /home/user où user est votre nom d'utilisateur) pour une utilisation personnelle.
L'option sous bash ne corrige que vous corrigera que sur la commande cd alors que zsh vous corrigera sur toutes les commandes que vous taperez.
Par exemple, sous bash si vous avez un dossier projects :
efaistos@kayo:~/ $ cd projectw [ENTREE]
projects
efaistos@kayo:~/projects $
Ici nous voyons que bash a directement corrigé et nous a mis dans le répertoire projects. Bash est toutefois très limité car il ne fonctionne qu'avec la commande cd.
Avec zsh, la correction se fait également sur les commandes. Par exemple :
efaistos@kayo [~]$ cds projects [1:14]
zsh: correct 'cds' to 'cd' [nyae]? y
efaistos@kayo [~/projects]$ [1:15]
Simple et efficace ;) zsh vous propose de remplacer ce que vous avez tapé, cds qui est probablement une erreur, par la commande cd.
Ensuite pour activer cette nouvelle fonctionnalité, il faut recharger votre fichier de configuration avec la commande source ainsi :
Bash:
$ source .bashrc
Zsh:
$ source .zshrc
Une fois cette modification apportée, les deux commandes ci-dessus seront inutiles car la nouvelle configuration sera prise en compte à l'ouverture de tout nouveau terminal.
Commentaires récents
il y a 1 année 13 semaines
il y a 1 année 14 semaines
il y a 1 année 18 semaines
il y a 1 année 30 semaines
il y a 1 année 34 semaines
il y a 1 année 35 semaines
il y a 1 année 35 semaines
il y a 1 année 35 semaines
il y a 1 année 36 semaines
il y a 1 année 37 semaines