La plupart des distributions utilise bash comme shell par défaut pour les utilisateurs.
Pourtant il existe d’autres shells et nous allons, dans cette article, découvrir le Z-shell aussi appelé zsh.
Installation :
La distribution utilisée ici est LinuxMint 18 mais, hormis l’installation de zsh, le reste devrait être transposable
à n’importe quelle distribution.
Tout d’abord, il faut installer le paquet zsh :
sudo apt-get install zsh zsh-common
Ensuite, pour changer le shell par défaut de l’utilisateur courant :
chsh -s /usr/bin/zsh
Puis créer un fichier de configuration initial en editant ~/.zshrc :
autoload -Uz compinit compinit zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' setopt correctall autoload -U promptinit promptinit bindkey -e zle -N edit-command-line bindkey '^xe' edit-command-line bindkey '^x^e' edit-command-line HISTSIZE=1000000 SAVEHIST=1000000 HISTFILE="$HOME/.history" setopt HIST_VERIFY setopt SHARE_HISTORY setopt APPEND_HISTORY setopt INC_APPEND_HISTORY SHARE_HISTORY setopt HIST_IGNORE_ALL_DUPS setopt HIST_REDUCE_BLANKS
Quelques fonctionnalités :
Parmi les fonctionnalités qu’offre zsh, vous pouvez éditer facilement le contenu de variables d’environnement avec la commande vared. Par exemple :
vared PATH
La complétion est également très poussée. Par exemple, si vous tapez :
cd /v/log/a
et que vous pressez ensuite la touche tab, zsh var compléter la commande en :
cd /var/log/apt
La complétion fonctionne également à partir de sous-chaines. Par exemple, si vous tapez :
cd urea
suivi d’un appui sur TAB, zsh va compléter en :
cd Bureau
La complétion fonctionne également pour certaines commandes. Par exemple si vous tapez :
kill
zsh va vous lister les noms des processus et les PID associés.
A noter que si vous exécutez plusieurs sessions zsh simultanément, l’historique des commandes est partagé entre les sessions. Plus besoin donc de savoir dans quel terminal vous avez tapé telle ou telle commande.
zsh permet également de faire du récursif dans les répertoires à l’aide de **. Par exemple la commande :
ls **/toto
va afficher tous les fichiers toto présents dans le répertoire courant et ses sous-répertoires.
Une autre fonctionnalité intéressante est de pouvoir éditer la ligne de commande en cours dans l’éditeur défini par la variable $EDITOR. Pour ceci, il suffit simplement de presser Ctrl+X suivi de Ctrl+E.
Z-Shell permet de créer des aliases suffixes. Par exemple, en insérant dans le .zshrc la ligne :
alias -s log="less -MN"
Ainsi, sous le shell, lorsque vous taperez le nom d’un fichier .log, zsh l’affichera à l’aide de la commande less -MN
Encore plus de personnalisation !
Nous allons maintenant installer Oh My Zsh qui est un framework permettant d’aller encore plus loin dans la personnalisation de zsh
L’installation se fait de la manière suivante :
sudo apt-get install curl git sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
L’installation de Oh My Zsh remplace votre .zshrc qui sera renommé en .zshrc.pre-oh-my-zsh
Nous allons maintenant installer le thème powerlevel9k.
Nous allons installer la police inconsolota-awesome. Tout d’abord il nous faut la télécharger :
wget https://github.com/gabrielelana/awesome-terminal-fonts/raw/patching-strategy/patched/Inconsolata%2BAwesome.ttf
Pour l’installer, il suffit d’ouvrir un explorateur de fichier et de cliquer sur le fichier .ttf puis de cliquer sur le bouton installer.
Nous pouvons ensuite installer le thème :
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Puis de modifier notre .zshrc :
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon dir vcs) POWERLEVEL9K_MODE='awesome-patched' ZSH_THEME="powerlevel9k/powerlevel9k"
Il faut aussi penser à modifier la police utilisée dans le terminal par l’inconsolata awesome medium installée précédemment :
Pour appliquer les modifications, il suffit soit de fermer et réouvrir le terminal, soit de faire un source .zshrc
Nous avons alors le thème powerlevel9k appliqué à zsh ainsi que les extensions fournies par Oh My Zsh :
Dans cet exemple un double appui sur la touche Tab lors d’une complétion de commande permet de naviguer et de sélectionner de manière visuelle le répertoire mdm.
Autre exemple, si vous tapez cd suivi d’appuis sur la fleche du haut, vous naviguerez dans l’historique de toutes les commandes cd qui auront été tapées auparavant.