Guide sur l'installation et la configuration de zsh
1.
Installation
Installation de zsh
Pour obtenir zsh sous Gentoo, il suffit d'installer les deux paquets
app-shells/zsh (zsh proprement dit) et app-shells/zsh-completion
(les scripts d'auto-complétion).
Exemple de code 1.1 : Installation de zsh |
# emerge zsh zsh-completion
|
Lancement de zsh
Si vous lancez zsh pour la première fois, vous obtiendrez le message
suivant. Vous pouvez ignorer ce menu puisque nous allons créer un fichier de
configuration à la main plus loin dans ce document.
Exemple de code 1.2 : Fermeture du menu de configuration initiale |
$ zsh
This is the Z Shell configuration function for new users, zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
--- Type one of the keys in parentheses --- q
|
Dans la version utilisée au moment de l'écriture de ce document, ce menu
apparait en anglais, mais en voici la traduction :
Exemple de code 1.3 : Traduction du menu |
Ceci est le script de configuration du Z Shell pour les nouveaux
utilisateurs, zsh-newuser-install.
Vous voyez ce message car vous n'avez pas encore les fichiers d'initialisation de
zsh (ces fichiers sont .zshenv, .zprofile, .zshrc et .zlogin situés dans votre
répertoire ~). Ce script va vous aider à ajuster quelques paramètres qui
rendront votre utilisation du shell plus conviviale.
Vous pouvez :
(q) Quitter sans rien modifier. Ce message apparaitra à nouveau la prochaine
fois.
(0) Terminer, en créant le fichier ~/.zshrc qui contiendra un simple
commentaire. De cette façon, ce message n'apparaitra plus par la suite.
(1) Aller au menu principal.
--- Entrez l'un des raccourcis entre parenthèses ---
|
2.
Configuration
Introduction
Pour lancer zsh depuis un autre shell, tapez zsh. Pour utiliser zsh
comme shell par défaut et sauvegarder vos paramètres de session en session,
consultez le chapitre Sauvegarde des
paramètres. Juste après l'installation, vous pourriez penser que
zsh n'est qu'un shell de base et limité sur le plan fonctionnel. Nous
allons changer cette impression grâce à quelques éléments à configurer.
Auto-complétion avancée
Pour activer le célèbre système d'auto-complétion de zsh, vous devrez
lancer les commandes suivantes :
Exemple de code 2.1 : Activation de l'auto-complétion |
% autoload -U compinit
% compinit
|
Le style de complétion par défaut est plutôt moche et simple. Si vous
souhaitez améliorer son apparence, lancez les commandes suivantes :
Exemple de code 2.2 : Amélioration de l'apparence de l'auto-complétion |
% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
|
Correction de commandes
L'auto-correction de commandes est également une fonctionnalité qui vaut la
peine d'être activée :
Exemple de code 2.3 : Activation de la correction |
% setopt correctall
|
Invites de commandes
L'invite de commande par défaut est plutôt classique, mais il suffit de quelques
manipulations pour l'améliorer. Commençons par activer le support des invites de
commande avancées :
Exemple de code 2.4 : Activation des invites de commandes avancées |
% autoload -U promptinit
% promptinit
|
Un aperçu des invites de commande disponibles peut être affiché grâce à la
commande prompt -p. Vous pouvez ensuite activer celle que vous
préférez :
Exemple de code 2.5 : Activation de l'invite de commande personnalisée |
% prompt gentoo
|
Note :
Vous pouvez également lister les identifiants de chaque invite de commande
disponible sans afficher un aperçu de chacune d'entre elles, en utilisant la
commande prompt -l.
|
Une autre possibilité consiste à créer son propre prompt. Pour cela, vous devrez
utiliser la variable d'environnement PS1.
Exemple de code 2.6 : Une invite personnalisée simple |
% export PS1="[Invite de Test] > "
[Invite de Test] >
|
En plus de la possibilité d'insérer des textes statiques dans votre invite
personnalisée, zsh fournit de nombreuses séquences d'échappement qui permettent
d'afficher des informations systèmes dans l'invite. Voici quelques-unes de ces
séquences :
| Séquence |
Affichage |
| %T |
Heure système (HH:MM) |
| %* |
Heure système (HH:MM:SS) |
| %D |
Date système (YY-MM-DD) |
| %n |
Nom d'utilisateur |
| %B - %b |
Balises de début - fin de l'affichage en gras |
| %U - %u |
Balises de début - fin de l'affichage souligné |
| %d |
Répertoire de travail courant |
| %~ |
Répertoire de travail courant, relatif à ~ |
| %M |
Nom d'hôte de l'ordinateur |
| %m |
Nom d'hôte de l'ordinateur (jusqu'au premier . uniquement) |
| %l |
Terminal courant |
Ces séquences d'échappement peuvent être insérées dans la variable
d'environnement PS1 ; zsh se chargera de les identifier et de les
remplacer automatiquement.
Exemple de code 2.7 : Une invite personnalisée plus complexe |
% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/nom_utilisateur %
|
Historique
Malheureusement, la configuration par défaut de zsh dans Gentoo n'inclut pas le
support de l'historique des commandes. Pour l'activer, vous devrez entrer les
commandes suivantes :
Exemple de code 2.8 : Configuration simple de l'historique des commandes |
% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"
% export SAVEHIST=$HISTSIZE
|
Pour éviter que l'historique n'enregistre des commandes entrées plusieurs fois
(comme plusieurs lignes ls -l tapées au cours de la même session de
terminal), vous pouvez activer l'option hist_ignore_all_dups :
Exemple de code 2.9 : Activation de l'anti-doublon dans l'historique |
% setopt hist_ignore_all_dups
|
Une astuce utile qui permet d'éviter d'enregistrer certaines commandes dans
l'historique consiste à les faire précéder par au moins une espace. Pour que
cela fonctionne, vous devrez auparavant activer l'option
hist_ignore_space :
Exemple de code 2.10 : Activation de l'historique sélectif |
% setopt hist_ignore_space
% cat /proc/cpuinfo
|
Paramètres divers
Vous pouvez activer l'option autocd si vous souhaitez éviter d'avoir à
taper la commande cd lorsque vous changez de répertoire. Avec cette
option, taper simplement /etc est équivalent à taper cd /etc.
Exemple de code 2.11 : Activation de l'option autocd |
% setopt autocd
|
Si les jokers de type bash (les caractères spéciaux comme « * » ou
« ? ») ne vous suffisent pas, vous pouvez activer l'option
extendedglob pour activer les jokers étendus (qui se rapprochent des
expressions rationnelles).
Exemple de code 2.12 : Activation des jokers étendus |
% setopt extendedglob
|
Une fois cette option activée, vous pouvez utiliser des jokers tels que cp
^*.(tar|bz2|gz).
3.
Sauvegarde des paramètres
Sauvegarde des paramètres de zsh
Une fois zsh configuré comme vous l'aimez, vous pouvez enregistrer ces
paramètres pour les utiliser par défaut pour toutes les sessions zsh. Une façon
de faire consiste à écrire votre configuration dans le script
/etc/zsh/zshrc. Sinon, vous pouvez aussi enregistrer ces paramètres
pour votre compte uniquement en éditant le fichier ~/.zshrc.
Exemple de code 3.1 : Un exemple de fichier zshrc |
#!/bin/zsh
# completion
autoload -U compinit
compinit
# correction
setopt correctall
# prompt
autoload -U promptinit
promptinit
prompt gentoo
|
4.
Faire de zsh votre shell par défaut
Si vous avez les droits root
Vous pouvez changer le shell par défaut pour un utilisateur donné en utilisant
la commande usermod.
Exemple de code 4.1 : Utilisation de usermod pour choisir zsh par défaut |
# usermod -s /bin/zsh utilisateur
|
Si vous n'avez pas les droits root
Si votre administrateur système (malgré vos requêtes courtoises) refuse de vous
donner un shell zsh, vous pouvez configurer bash pour exécuter zsh
au démarrage. Pour cela, vous devrez simplement modifier votre fichier
~/.bashrc.
Exemple de code 4.2 : Exemple de ~/.bashrc |
exec zsh
|
Une autre méthode pour changer le shell consiste à utiliser la commande
chsh (un utilitaire utilisé pour changer le shell par défaut pour un
utilisateur). Un utilisateur normal ne peut changer le shell que pour son
propre compte. En tant que root, vous pouvez changer le shell pour tous les
utilisateurs.
Exemple de code 4.3 : Utilisation de chsh pour choisir zsh par défaut |
$ chsh -s /bin/zsh utilisateur
|
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|