Gentoo Logo

Guide sur l'installation et la configuration de zsh

Table des matières :

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

(Remplacez « gentoo » par l'identifiant de votre choix
% 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"

(L'historique ne sera pas sauvegardé sans la commande suivante.)
% 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

(Cette commande ne sera pas enregistrée. Remarquez le caractère espace précédant cette commande.)
%  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

(Ajoutez la ligne suivante à votre ~/.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

(Remplacez « utilisateur » par votre propre nom d'utilisateur.)
$ chsh -s /bin/zsh utilisateur


Imprimer

Dernière mise à jour le 18 octobre 2006

La version originale de cette traduction n'est plus maintenue

Résumé : Ce guide explique comment installer et configurer zsh rapidement. Après avoir lu ce document, vous serez capable d'utiliser la plupart des fonctionnalités de zsh telles que l'auto-complétion avancée, la correction des commandes et la gestion de l'invite de commandes.

Henryk Konsek
Auteur

Andrew Morritt
Auteur

Chris White
Correcteur

Peter Weller
Correcteur

Guillaume Pujol
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.