Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| zsh [Le 17/09/2014, 18:52] – [Alias] 82.235.207.197 | zsh [Le 15/12/2020, 21:52] (Version actuelle) – ajout de lien vers d'autres page de doc, suppression d'un lien invalide amiralgaby | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | |||
| + | ====== ZSH ====== | ||
| + | |||
| + | **Zsh** est un interpréteur de commandes ([[shell]]), | ||
| + | Il fournit une interface entre l' | ||
| + | Le shell par défaut dans Ubuntu est [[bash]], c'est un shell qui a bien des avantages (notamment pour les scripts), mais il est assez limité dans certaines fonctionnalités comme l' | ||
| + | Zsh est plutôt orienté pour l' | ||
| + | |||
| + | ===== Installation ===== | ||
| + | [[: | ||
| + | |||
| + | ===== Utilisation ===== | ||
| + | |||
| + | Vous pouvez le lancer comme ceci : | ||
| + | zsh | ||
| + | |||
| + | Pour définir zsh comme shell par défaut (lorsque vous vous connectez dans un [[terminal]] (ou un émulateur de terminal), on peut utiliser l' | ||
| + | chsh | ||
| + | |||
| + | On vous demande quel shell utiliser, répondez /bin/zsh (en toutes lettres). | ||
| + | <note important> | ||
| + | Puis déconnectez vous et reconnectez vous. Et voilà, vous êtes sur zsh ! | ||
| + | |||
| + | Si vous ne possédez pas les droits d' | ||
| + | |||
| + | exec zsh | ||
| + | | ||
| + | <note tip> | ||
| + | Si gnome-terminal ne se lance pas avec zsh et continue de fonctionner avec bash alors il faut aller dans les préférences du profil dans le menu " | ||
| + | Cocher " | ||
| + | </ | ||
| + | ===== Les fichiers de configuration ===== | ||
| + | |||
| + | Les fichiers utilisés pour la configuration sont les suivants : | ||
| + | / | ||
| + | ~/.zshrc ## Ce fichier s' | ||
| + | |||
| + | Il est possible que les distributions fournissent un ''/ | ||
| + | Pour toutes les modifications que vous ferez dans les fichiers de configuration, | ||
| + | source ~/.zshrc | ||
| + | |||
| + | Toutes les commandes qui vont être données peuvent être tapées directement dans le shell, mais pour qu' | ||
| + | |||
| + | Pour les feignants, il y a un fichier de configuration tout prêt en fin de page. LOL | ||
| + | ==== Complétion ==== | ||
| + | |||
| + | La complétion sous Zsh est très avancée. Par défaut, vous avez par exemple : | ||
| + | |||
| + | * Complétion sur les noms de domaines. Par exemple, après '' | ||
| + | |||
| + | * Complétion après '' | ||
| + | |||
| + | * Complétion sur les options des programmes, avec la description de celles-ci. Essayez par exemple '' | ||
| + | |||
| + | * Complétion sur les pages de manuel | ||
| + | |||
| + | * ... et bien d' | ||
| + | |||
| + | Ajoutons que cette complétion est entièrement configurable : | ||
| + | |||
| + | Pour activer la complétion : | ||
| + | autoload -U compinit | ||
| + | compinit | ||
| + | |||
| + | La complétion est très modifiable. | ||
| + | Pour améliorer l' | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | Pour éviter de proposer un élément déjà présent lors d'un cp, mv ou rm : | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | |||
| + | Sur Ubuntu, on utilise souvent '' | ||
| + | zstyle ': | ||
| + | / | ||
| + | |||
| + | |||
| + | Zsh supporte aussi les fonctions de complétion de bash, pour les utiliser : | ||
| + | autoload -U bashcompinit | ||
| + | bashcompinit | ||
| + | |||
| + | |||
| + | Ensuite il suffit de " | ||
| + | |||
| + | Zsh peut aussi vous corriger si vous tapez '' | ||
| + | setopt correctall | ||
| + | |||
| + | |||
| + | |||
| + | ==== Le prompt ==== | ||
| + | |||
| + | Le prompt est ce que vous voyez, par exemple : | ||
| + | vous@machine ~/src % | ||
| + | |||
| + | Ce prompt est contenu dans une (ou plusieurs) variables d' | ||
| + | |||
| + | Zsh fournit des prompts prêt à l' | ||
| + | Pour les activer : | ||
| + | autoload -U promptinit | ||
| + | promptinit | ||
| + | Vous pouvez avoir une liste des themes comme ceci : | ||
| + | prompt -l | ||
| + | Mais aussi un aperçu de tous les prompts disponibles : | ||
| + | prompt -p | ||
| + | |||
| + | Vous pouvez choisir un prompt comme ceci : | ||
| + | prompt NOM_DU_THEME | ||
| + | |||
| + | Si vous voulez faire votre prompt vous mêmes, voyez cette page : [[https:// | ||
| + | |||
| + | ==== Globbing ==== | ||
| + | |||
| + | La fonctionnalité qui vous fera oublier [[tutoriel/ | ||
| + | |||
| + | Un exemple : < | ||
| + | |||
| + | Il y a toute une syntaxe pour faire d' | ||
| + | |||
| + | ==== ZLE ==== | ||
| + | |||
| + | ZLE désigne la zone dans laquelle vous tapez vos commandes. Vous pouvez utiliser les raccourcis claviers de vi ou d' | ||
| + | En vrac, quelques raccourcis par défaut : | ||
| + | |||
| + | * < | ||
| + | * < | ||
| + | |||
| + | |||
| + | ==== Alias ==== | ||
| + | |||
| + | ZSH permet, comme bash, de définir des " | ||
| + | |||
| + | alias la="ls -a" | ||
| + | |||
| + | Permet de définir une commande ' | ||
| + | |||
| + | Pour pouvoir se servir en permanence de ces alias, il faut qu'ils soient inscrits dans le fichier ~/.zshrc. | ||
| + | |||
| + | === Alias suffixe === | ||
| + | |||
| + | Mais zsh va plus loin en permettant des alias sur les suffixes. L' | ||
| + | |||
| + | alias -s pdf=" | ||
| + | |||
| + | Voici la création de l' | ||
| + | Ensuite il suffit de l' | ||
| + | |||
| + | ./ | ||
| + | |||
| + | Cela va lancer evince pour ouvrir votre fichier PDF. | ||
| + | |||
| + | === Alias globaux === | ||
| + | |||
| + | |||
| + | Zsh permet également de définir des alias " | ||
| + | |||
| + | < | ||
| + | |||
| + | la commande | ||
| + | |||
| + | < | ||
| + | |||
| + | remplacera | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Un exemple de fichier zshrc ===== | ||
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | # | ||
| + | # |__ / ___|| | | | _ \ / ___| | ||
| + | # / /\___ \| |_| | |_) | | | ||
| + | # _ / /_ ___) | _ | _ <| |___ | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # Complétion | ||
| + | autoload -U compinit | ||
| + | compinit | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | / | ||
| + | # Crée un cache des complétion possibles | ||
| + | # très utile pour les complétion qui demandent beaucoup de temps | ||
| + | # comme la recherche d'un paquet aptitude install moz< | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | # des couleurs pour la complétion | ||
| + | # faites un kill -9 < | ||
| + | zmodload zsh/ | ||
| + | setopt extendedglob | ||
| + | zstyle ': | ||
| + | |||
| + | # Correction des commandes | ||
| + | setopt correctall | ||
| + | |||
| + | # Un petit prompt sympa | ||
| + | autoload -U promptinit | ||
| + | promptinit | ||
| + | prompt adam2 | ||
| + | |||
| + | # Les alias marchent comme sous bash | ||
| + | alias ls='ls --color=auto' | ||
| + | alias ll='ls --color=auto -lh' | ||
| + | alias lll=' | ||
| + | # marre de se faire corriger par zsh ;) | ||
| + | alias xs=' | ||
| + | alias sl=' | ||
| + | # mplayer en plein framme buffer ;) | ||
| + | alias mplayerfb=' | ||
| + | # Un grep avec des couleurs : | ||
| + | export GREP_COLOR=31 | ||
| + | alias grep=' | ||
| + | alias xte=' | ||
| + | # Pareil pour les variables d' | ||
| + | #export http_proxy=" | ||
| + | #export HTTP_PROXY=$http_proxy | ||
| + | # un VRAI éditeur de texte ;) | ||
| + | export EDITOR=/ | ||
| + | </ | ||
| + | |||
| + | ===== Une configuration avancée ===== | ||
| + | Pour ceux qui ne souhaitent pas se plonger dans les fichiers de configurations de zsh, mais qui souhaitent tout de même avoir une configuration agréable à utiliser, je vous propose la configuration suivante : | ||
| + | < | ||
| + | sudo cp / | ||
| + | |||
| + | Vous aurez un prompt en couleur, des raccourcis clavier similaires à ceux d' | ||
| + | |||
| + | ===== Résolution de problèmes ===== | ||
| + | * Les touches home, fin, ctrl+[aerl] et autres ne fonctionnent pas correctement, | ||
| + | ==== Raccourcis clavier du terminal ==== | ||
| + | Si ça ne résout pas le bug (cf « résolution de problèmes »), insérer les lignes suivantes dans ~/.zshrc : | ||
| + | <code bash># Touche de commande | ||
| + | bindkey " | ||
| + | bindkey " | ||
| + | bindkey " | ||
| + | bindkey " | ||
| + | <note tip> | ||
| + | <code bash>cat -v</ | ||
| + | <code bash> | ||
| + | À noter, que vous pouvez directement connaître le bindkey via Vim : passer en mode insertion et taper Ctrl V</ | ||
| + | ==== Complétion pour la commande killall ==== | ||
| + | Pour ceux qui viennent de bash ils seront dérouté de voir que la commande killall ne propose pas de complétion, | ||
| + | |||
| + | Pour faire simple, il suffit de rajouter dans le fichier / | ||
| + | <code bash> | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | zstyle ': | ||
| + | ===== Voir aussi ===== | ||
| + | |||
| + | * **(en)** [[https:// | ||
| + | * **(en)** [[http:// | ||
| + | * **(en)** [[https:// | ||
| + | * **(fr)** [[http:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
