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 23/02/2017, 14:05] – [Alias] 78.122.2.173 | zsh [Le 18/11/2023, 17:47] (Version actuelle) – [Complétion pour la commande killall] Le correctif est très vieux. Le tips ne sert plus moths-art | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| ---- | ---- | ||
| Ligne 5: | Ligne 5: | ||
| ====== ZSH ====== | ====== ZSH ====== | ||
| - | **Zsh** est un interpréteur de commandes (shell), tout comme bash. | + | **Zsh** est un interpréteur de commandes ([[shell]]), tout comme [[bash]]. |
| Il fournit une interface entre l' | 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' | + | 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' | Zsh est plutôt orienté pour l' | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | [[: | ||
| - | ===En mode console | + | [[:tutoriel: |
| - | <code bash> | + | |
| ===== Utilisation ===== | ===== Utilisation ===== | ||
| - | Vous pouvez le lancer comme ceci : | + | Vous pouvez le lancer comme ceci : |
| zsh | 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' | + | 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 | chsh | ||
| On vous demande quel shell utiliser, répondez /bin/zsh (en toutes lettres). | On vous demande quel shell utiliser, répondez /bin/zsh (en toutes lettres). | ||
| - | <note important> | + | <note important> |
| - | Puis déconnectez vous et reconnectez vous. Et voilà, vous êtes sur zsh ! | + | Vérifiez bien votre saisie avant de valider, sinon vous risquez d' |
| + | </ | ||
| + | |||
| + | Puis déconnectez-vous et reconnectez-vous. Et voilà, vous êtes sur zsh ! | ||
| Si vous ne possédez pas les droits d' | Si vous ne possédez pas les droits d' | ||
| Ligne 32: | Ligne 34: | ||
| | | ||
| <note tip> | <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 "Édition". | + | 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 “Édition”. |
| - | Cocher | + | Cocher |
| </ | </ | ||
| + | |||
| ===== Les fichiers de configuration ===== | ===== Les fichiers de configuration ===== | ||
| Ligne 42: | Ligne 45: | ||
| Il est possible que les distributions fournissent un ''/ | Il est possible que les distributions fournissent un ''/ | ||
| - | Pour toutes les modifications que vous ferez dans les fichiers de configuration, | + | Pour toutes les modifications que vous ferez dans les fichiers de configuration, |
| source ~/.zshrc | source ~/.zshrc | ||
| - | Toutes les commandes qui vont être données peuvent être tapées directement dans le shell, mais pour qu' | + | 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. | ||
| - | Pour les feignants, il y a un fichier de configuration tout prêt en fin de page. LOL | ||
| ==== Complétion ==== | ==== Complétion ==== | ||
| Ligne 60: | Ligne 64: | ||
| * Complétion sur les pages de manuel | * Complétion sur les pages de manuel | ||
| - | * ... et bien d' | + | * … et bien d' |
| Ajoutons que cette complétion est entièrement configurable : | Ajoutons que cette complétion est entièrement configurable : | ||
| Ligne 75: | Ligne 79: | ||
| zstyle ': | zstyle ': | ||
| - | Pour éviter de proposer un élément déjà présent lors d'un cp, mv ou rm : | + | Pour éviter de proposer un élément déjà présent lors d' |
| zstyle ': | zstyle ': | ||
| zstyle ': | zstyle ': | ||
| zstyle ': | zstyle ': | ||
| - | Sur Ubuntu, on utilise souvent '' | + | Sur Ubuntu, on utilise souvent '' |
| zstyle ': | zstyle ': | ||
| / | / | ||
| - | |||
| Zsh supporte aussi les fonctions de complétion de bash, pour les utiliser : | Zsh supporte aussi les fonctions de complétion de bash, pour les utiliser : | ||
| autoload -U bashcompinit | autoload -U bashcompinit | ||
| bashcompinit | bashcompinit | ||
| - | |||
| Ensuite il suffit de " | Ensuite il suffit de " | ||
| Ligne 94: | Ligne 96: | ||
| Zsh peut aussi vous corriger si vous tapez '' | Zsh peut aussi vous corriger si vous tapez '' | ||
| setopt correctall | setopt correctall | ||
| - | |||
| - | |||
| ==== Le prompt ==== | ==== Le prompt ==== | ||
| Ligne 104: | Ligne 104: | ||
| Ce prompt est contenu dans une (ou plusieurs) variables d' | Ce prompt est contenu dans une (ou plusieurs) variables d' | ||
| - | Zsh fournit des prompts | + | Zsh fournit des prompts |
| Pour les activer : | Pour les activer : | ||
| autoload -U promptinit | autoload -U promptinit | ||
| promptinit | promptinit | ||
| - | Vous pouvez avoir une liste des themes | + | |
| + | Vous pouvez avoir une liste des thèmes | ||
| prompt -l | prompt -l | ||
| + | |||
| Mais aussi un aperçu de tous les prompts disponibles : | Mais aussi un aperçu de tous les prompts disponibles : | ||
| prompt -p | prompt -p | ||
| Ligne 116: | Ligne 118: | ||
| prompt NOM_DU_THEME | prompt NOM_DU_THEME | ||
| - | Si vous voulez faire votre prompt vous mêmes, voyez cette page : [[http:// | + | Si vous voulez faire votre prompt vous mêmes, voyez cette page : [[https:// |
| - | et cette page : [[https:// | + | |
| ==== Globbing ==== | ==== Globbing ==== | ||
| - | La fonctionnalité qui vous fera oublier find 8-) | + | La fonctionnalité qui vous fera oublier |
| Un exemple : < | Un exemple : < | ||
| Ligne 129: | Ligne 130: | ||
| ==== ZLE ==== | ==== ZLE ==== | ||
| - | ZLE désigne la zone dans laquelle vous tapez vos commandes. Vous pouvez utiliser les raccourcis claviers de vi ou d'emacs, au choix, et définir très facilement vos propres raccourcis. | + | ZLE désigne la zone dans laquelle vous tapez vos commandes. Vous pouvez utiliser les raccourcis claviers de [[: |
| En vrac, quelques raccourcis par défaut : | En vrac, quelques raccourcis par défaut : | ||
| * < | * < | ||
| * < | * < | ||
| - | |||
| ==== Alias ==== | ==== Alias ==== | ||
| - | ZSH permet, comme bash, de définir des "alias", c'est à dire des commandes définies à partir d' | + | ZSH permet, comme bash, de définir des “alias”, c’est-à-dire des commandes définies à partir d' |
| alias la="ls -a" | alias la="ls -a" | ||
| - | Permet de définir une commande ' | + | 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. | Pour pouvoir se servir en permanence de ces alias, il faut qu'ils soient inscrits dans le fichier ~/.zshrc. | ||
| Ligne 161: | Ligne 161: | ||
| === Alias globaux === | === Alias globaux === | ||
| - | + | Zsh permet également de définir des alias “globaux” qui s’exécuteront quelle que soit leur position dans la ligne de commande, ainsi avec l' | |
| - | Zsh permet également de définir des alias "globaux" | + | |
| < | < | ||
| - | remplacera | + | la commande |
| - | + | ||
| - | < | + | |
| - | par | + | < |
| - | < | + | remplacera : |
| + | |||
| + | < | ||
| ===== Un exemple de fichier zshrc ===== | ===== Un exemple de fichier zshrc ===== | ||
| Ligne 232: | Ligne 231: | ||
| ===== Une configuration avancée ===== | ===== 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 : | 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 : | ||
| - | < | + | < |
| - | wget http:// | + | sudo cp /etc/zsh/ |
| - | wget http:// | + | |
| - | wget http:// | + | |
| - | wget http://formation-debian.via.ecp.fr/fichiers-config/ | + | |
| - | sudo mv zshrc zshenv zlogin zlogout | + | |
| Vous aurez un prompt en couleur, des raccourcis clavier similaires à ceux d' | Vous aurez un prompt en couleur, des raccourcis clavier similaires à ceux d' | ||
| + | |||
| + | ===== Rendre ZSH plus sexy ===== | ||
| + | |||
| + | Vous pouvez utiliser des thèmes de terminal avec [[Oh-my-zsh|Oh my zsh]]. | ||
| ===== Résolution de problèmes ===== | ===== Résolution de problèmes ===== | ||
| - | | + | |
| + | | ||
| ==== Raccourcis clavier du terminal ==== | ==== 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 : | 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 | + | |
| + | <code bash> | ||
| + | # Touche de commande | ||
| bindkey " | bindkey " | ||
| bindkey " | bindkey " | ||
| bindkey " | bindkey " | ||
| - | bindkey " | + | bindkey " |
| + | </ | ||
| <note tip> | <note tip> | ||
| - | <code bash>cat -v</ | + | |
| - | <code bash> | + | <code bash> |
| + | cat -v | ||
| + | </ | ||
| + | |||
| + | et taper sur la touche du clavier désirée pour connaître son bindkey, vous verrez que ce dernier ne correspond pas à ceux listés par : | ||
| + | |||
| + | <code bash> | ||
| + | bindkey | ||
| + | </ | ||
| À noter, que vous pouvez directement connaître le bindkey via Vim : passer en mode insertion et taper Ctrl V</ | À 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 ===== | ===== Voir aussi ===== | ||
| - | | + | * [[Oh-my-zsh|Oh my zsh]] |
| - | * **(fr)** [[http://www.gentoo.org/ | + | * **(en)** [[https://wiki.gentoo.org/ |
| - | * **(en)** [[http:// | + | * **(en)** [[https:// |
| + | * **(en)** [[https:// | ||
| * **(fr)** [[http:// | * **(fr)** [[http:// | ||
| Ligne 274: | Ligne 284: | ||
| // | // | ||
| + | |||
