Installer et configurer zsh sur debian 8

Shell

Salut à tous, aujourd’hui j’en ai eu ma claque de mon shell bash par défaut dans debian. Je veux dire quand on s’est habitué à Powershell pendant quelques années revenir au mode texte brut c’est dur. Du coup j’ai cherché un shell un peu plus conviviale pour linux, et après 2 minutes sur Google , il semble que ZSH soit la référence actuel, d’où ce TP : « Installer et configurer zsh sur debian 8 ».

Installer et configurer zsh sur debian 8
ZSH est arrivé-hé-hé

ZSH ? mais il a quoi de mieux que mon bon vieux bash ?

  • Complétion des commandes
  • Partage de l’historique des commandes entre tous les shells zsh
  • Personnalisable
  • Utilisation améliorée des variables
  • Complétion interactives des commandes à la saisie

La liste en détail sur wikipédia. Mais pour faire simple

Essayer ce truc c’est l’adopter…

Et comme un bon TP vaut mieux qu’un long discours, on y va.

Installation

Toujours très complexe sous debian :

apt-get install zsh

C’est fait.

Pour lancer le shell, taper dans votre interface en ligne de commande actuelle :

zsh

Si vous souhaitez utiliser zsh en Shell par défaut :

chsh #et saisir /bin/zsh

Configuration

De base ZSH n’est pas beaucoup plus convivial que bash, même si on sent bien qu’il en a sous le capot, il faut activer les modules et configurer la bête pour vraiment l’exploiter à fond. Le fichier de configuration de zsh pour le système se trouve dans :

/etc/zsh/zshrc

Ensuite chaque utilisateur peut configurer son shell dans :

vim ~/.zshrc

Donc on va ajouter quelques fonctionnalités dans notre config :

#Autocomplétion

#############################
#avancée :
autoload -U compinit
compinit

#ou support bash classique
#autoload -U bashcompinit
#bashcompinit

#auto-correction
setopt correctall

#Thème du prompts

Agnoster-Theme
Agnoster-Theme via oh-my-zsh

Charger les prompts par défaut :

autoload -U promptinit
promptinit

ensuite pour lister les prompts disponibles :

prompt -l
prompt -p #pour afficher un aperçu

et pour choisir le votre :

prompt <THEME> [OPTION(S)]

Exemple, j’en ai mis un volontairement kitsch mais vous en trouverez plein à vos goûts sur le net (et sinon faites le votre vous même)  :

> prompt elite2 green yellow
(user@computer)(12/pts/0)(03:12:03/24/16)-
(%:~)-

#Alias

#Définition de vos alias préférés
alias la="ls -a"
alias ll="ls -l"

#Et plus si affinités

Déjà vous devriez commencer à avoir un prompt sympa. Pour ceux à qui ça ne suffit pas, quelques pointeurs vers de la doc supplémentaire :

https://doc.ubuntu-fr.org/zsh
https://wiki.archlinux.org/index.php/zsh

Fonctionnalités sympa de ZSH

Zsh en action
Zsh en action

 Globbing

Un exemple qui déchire : comment trouver tous les fichiers « .conf » sur le système :

ls **/*conf*

Et rien que ça c’est trop bien.

Man :

Taper une commande type pwd et faites « <Echap>-h » -> : le manuel s’affiche en interactif.

Auto-complétion de commande avec l’aide :

Exemple Saisir « nmap – » et appuyer sur tabulation :

nmap -
Completing option
--append_output -- append results to any log files
--data_length -- add random data to packets
[...]

en fait vous pouvez presque tout tabuler : zsh pioche dans les man, votre historique, les fichiers de conf ou les infos système (hosts par exemple) pour vous proposer des paramètres pertinents.

Personnaliser le à votre sauce :

ZSH est personnalisable presque autant que vous voulez (à partir du moment ou vous êtes prêt à vous pencher un peu dessus) : donc démerdez vous à partir de là !

Oh-My…ZSH

Bon et pour ceux à qui ça ne suffit toujours pas, il existe un framework sous acide pour ZSH : Oh-My-ZSH… qui permet d’ajouter encore une volée de plugins et de thèmes. Il suffit d’installer oh-my-ZSH (attention ça écrase la conf réalisé jusqu’ici et la sauvegarde), comme ça :

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Attention : Pour certains thèmes dans oh-my ZSH il vous faudra les powerline-font, ça se passe bien sous linux mais si vous vous connectez au travers de PuTTY ça peut devenir un vite galère à configurer correctement avec les fonts Windows.

Pour ma part j’aime bien le thème « ys » dans oh-my-zsh.

Problèmes divers avec oh-my-zsh ou ZSH

Avant de finir, je vous donne ici quelques astuces de config pour des souçis de touche pas reconnues après les passage à zsh :

autoload -U compinit
compinit
#ou support bash classique
#autoload -U bashcompinit
#bashcompinit

autoload -U promptinit
promptinit
prompt walters

#auto-correction
setopt correctall

alias la="ls -a"
alias ll="ls -l"
alias l='ls -CF'
alias python='/usr/bin/python3'

# Si vous avez Perdu le pavé numérique (Keypad)
# Pour trouver les key-code spécifique à votre système, taper "Ctrl-v" puis faites votre combinaison de touche 
# exemple pour le zéro ci dessous :
# bindkey -s "<Ctrl-V> puis <0-numpad>" "0"
# 0-9 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[OM" "^M"
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + - * /
bindkey -s "^[Ol" "+"
bindkey -s "^[OS" "-"
bindkey -s "^[OR" "*"
bindkey -s "^[OQ" "/"
# Si vous avez Perdu les touches début et fin
bindkey '^[[1~' beginning-of-line
bindkey '^[[4~' end-of-line

# Ctrl-Gauche/Droite
bindkey '^[[C' forward-word
bindkey '^[[D' backward-word

Conclusion

On va faire simple : ZSH ça arrache, et vous pourrez vous la péter devant vos potes linuxien après l’avoir installé et configuré correctement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.