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 14/08/2012, 23:31] – [Résolution de problèmes] Complétion Killall david96 | 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:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // |