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 e-mail 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.