Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
zsh [Le 11/09/2022, 11:56]
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
zsh [Le 18/11/2023, 17:47] (Version actuelle)
moths-art [Complétion pour la commande killall] Le correctif est très vieux. Le tips ne sert plus
Ligne 11: Ligne 11:
  
 ===== Installation ===== ===== Installation =====
 +
 [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​zsh|zsh]]**. [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​zsh|zsh]]**.
  
Ligne 22: Ligne 23:
  
 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>​Vérifiez bien votre saisie avant de valider, sinon vous risquez d'​avoir un terminal non fonctionnel.</​note>​ +<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'​avoir un terminal non fonctionnel. 
 +</​note>​ 
 + 
 +Puis déconnectez-vous et reconnectez-vous. Et voilà, vous êtes sur zsh !
  
 Si vous ne possédez pas les droits d'​administration sur l'​ordinateur que vous utilisez, il vous suffit d'​inscrire ceci dans votre fichier **~/​.bashrc** Si vous ne possédez pas les droits d'​administration sur l'​ordinateur que vous utilisez, il vous suffit d'​inscrire ceci dans votre fichier **~/​.bashrc**
Ligne 30: 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 ​"Exécuter une commande personnalisée de mon shell" ​dans l'​onglet ​"Titre et Commande". Mettre zsh comme commande personnalisée.+Cocher ​Exécuter une commande personnalisée de mon shell” dans l'​onglet ​Titre et Commande. Mettre zsh comme commande personnalisée.
 </​note>​ </​note>​
 +
 ===== Les fichiers de configuration ===== ===== Les fichiers de configuration =====
  
Ligne 40: Ligne 45:
  
 Il est possible que les distributions fournissent un ''/​etc/​zshrc''​ donc je vous conseille d'​aller voir ce qu'il y a dans ce fichier. Il est possible que les distributions fournissent un ''/​etc/​zshrc''​ donc je vous conseille d'​aller voir ce qu'il y a dans ce fichier.
-Pour toutes les modifications que vous ferez dans les fichiers de configuration,​ il faut lancer la commande ​"source" ​sur les fichiers que vous avez modifiés pour que ça prenne effet, par exemple :+Pour toutes les modifications que vous ferez dans les fichiers de configuration,​ il faut lancer la commande ​source” sur les fichiers que vous avez modifiés pour que ça prenne effet, par exemple :
   source ~/.zshrc   source ~/.zshrc
  
 Toutes les commandes qui vont être données peuvent être tapées directement dans le shell, mais pour qu'​elles prennent effet lors de la connexion au shell il faut les écrire dans un des fichiers de configuration (''/​etc/​zsh/​zshrc''​ ou ''​~/​.zshrc''​) Toutes les commandes qui vont être données peuvent être tapées directement dans le shell, mais pour qu'​elles prennent effet lors de la connexion au shell il faut les écrire dans un des fichiers de configuration (''/​etc/​zsh/​zshrc''​ ou ''​~/​.zshrc''​)
  
-Pour les feignants, il y a un fichier de configuration tout prêt en fin de page. LOL+Pour les feignants, il y a un fichier de configuration tout prêt en fin de page. 
 ==== Complétion ==== ==== Complétion ====
  
Ligne 58: Ligne 64:
   * Complétion sur les pages de manuel   * Complétion sur les pages de manuel
  
-  * ... et bien d'​autres+  * … et bien d'​autres
  
 Ajoutons que cette complétion est entièrement configurable : Ajoutons que cette complétion est entièrement configurable :
Ligne 81: Ligne 87:
   zstyle ':​completion:​*:​sudo:​*'​ command-path /​usr/​local/​sbin /​usr/​local/​bin \   zstyle ':​completion:​*:​sudo:​*'​ command-path /​usr/​local/​sbin /​usr/​local/​bin \
                              /​usr/​sbin /usr/bin /sbin /bin /​usr/​X11R6/​bin                              /​usr/​sbin /usr/bin /sbin /bin /​usr/​X11R6/​bin
- 
  
 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 "​sourcer"​ les fichiers de configuration de bash. (''/​etc/​profile'' ​ ou ''​~/​.bashrc''​) Ensuite il suffit de "​sourcer"​ les fichiers de configuration de bash. (''/​etc/​profile'' ​ ou ''​~/​.bashrc''​)
Ligne 92: Ligne 96:
 Zsh peut aussi vous corriger si vous tapez ''​sl''​ à la place de ''​ls''​ (sauf si vous avez installé sl LOL ) Zsh peut aussi vous corriger si vous tapez ''​sl''​ à la place de ''​ls''​ (sauf si vous avez installé sl LOL )
   setopt correctall   setopt correctall
- 
- 
  
 ==== Le prompt ==== ==== Le prompt ====
Ligne 102: Ligne 104:
 Ce prompt est contenu dans une (ou plusieurs) variables d'​environnements. La plus utilisée est certainement $PS1 Ce prompt est contenu dans une (ou plusieurs) variables d'​environnements. La plus utilisée est certainement $PS1
  
-Zsh fournit des prompts ​prêt à l'​emploi dans /​usr/​share/​zsh/​functions/​Prompts.+Zsh fournit des prompts ​prêts ​à l'​emploi dans /​usr/​share/​zsh/​functions/​Prompts.
 Pour les activer : Pour les activer :
   autoload -U promptinit   autoload -U promptinit
   promptinit   promptinit
 +
 Vous pouvez avoir une liste des thèmes comme ceci : Vous pouvez avoir une liste des thèmes comme ceci :
   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 131: Ligne 135:
   * <​Echap>​h va appeler la page de manuel du premier mot que vous êtes en train de taper   * <​Echap>​h va appeler la page de manuel du premier mot que vous êtes en train de taper
   * <​Echap>​q va copier la ligne que vous étiez en train de taper en mémoire, pour vous laisser devant une ligne vide. Vous pouvez alors rentrer une nouvelle commande, lorsque celle-ci sera terminée, zsh vous affichera la ligne en mémoire.   * <​Echap>​q va copier la ligne que vous étiez en train de taper en mémoire, pour vous laisser devant une ligne vide. Vous pouvez alors rentrer une nouvelle commande, lorsque celle-ci sera terminée, zsh vous affichera la ligne en mémoire.
- 
  
 ==== Alias ==== ==== Alias ====
  
-ZSH permet, comme bash, de définir des "alias", c'est à dire des commandes définies à partir d'​autres commandes, par exemple :+ZSH permet, comme bash, de définir des alias, cest-à-dire des commandes définies à partir d'​autres commandes, par exemple :
  
   alias la="ls -a"   alias la="ls -a"
Ligne 158: 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'​alias ​:
-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'​alias+
  
 <​code>​ alias -g G=' | grep '</​code>​ <​code>​ alias -g G=' | grep '</​code>​
  
-la commande +la commande ​:
-  +
- <​code>​ ls /bin G zsh</​code>​+
  
-remplacera+<​code>​ ls /bin G zsh</​code>​
  
- <​code>​ ls /bin | grep zsh</​code>​+remplacera : 
 + 
 +<​code>​ ls /bin | grep zsh</​code>​
  
 ===== Un exemple de fichier zshrc ===== ===== Un exemple de fichier zshrc =====
Ligne 229: 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 :
 <​code>​ for pkg in zshrc zshenv zlogin zlogout dir_colors ;do sudo wget -cO /​etc/​zsh/​$pkg https://​formation-debian.viarezo.fr/​fichiers-config/​$pkg ;done <​code>​ for pkg in zshrc zshenv zlogin zlogout dir_colors ;do sudo wget -cO /​etc/​zsh/​$pkg https://​formation-debian.viarezo.fr/​fichiers-config/​$pkg ;done
Ligne 234: Ligne 237:
  
 Vous aurez un prompt en couleur, des raccourcis clavier similaires à ceux d'​[[:​Emacs]],​ ainsi qu'à ceux de [[:Vim]], et de nombreuses autres possibilités. Vous aurez un prompt en couleur, des raccourcis clavier similaires à ceux d'​[[:​Emacs]],​ ainsi qu'à ceux de [[:Vim]], et de nombreuses autres possibilités.
 +
 +===== 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 =====
 +
   * Les touches home, fin, ctrl+[aerl] et autres ne fonctionnent pas correctement,​ affichent des caractères bizarre : \\ peut-être en pensant bien faire, vous avez sélectionné,​ lors de la configuration initiale, les raccourcis type vi, et trouverez donc certainement dans votre ~/.zshrc la directive bindkey -v. Dans ce cas, essayez de remplacer cette directive par bindkey -e qui correspond aux raccourcis de type [[:Emacs]] et qui devraient restaurer le comportement attendu.   * Les touches home, fin, ctrl+[aerl] et autres ne fonctionnent pas correctement,​ affichent des caractères bizarre : \\ peut-être en pensant bien faire, vous avez sélectionné,​ lors de la configuration initiale, les raccourcis type vi, et trouverez donc certainement dans votre ~/.zshrc la directive bindkey -v. Dans ce cas, essayez de remplacer cette directive par bindkey -e qui correspond aux raccourcis de type [[:Emacs]] et qui devraient restaurer le comportement attendu.
 +
 ==== 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 "​\e[H"​ beginning-of-line # Début bindkey "​\e[H"​ beginning-of-line # Début
 bindkey "​\e[F"​ end-of-line # Fin bindkey "​\e[F"​ end-of-line # Fin
 bindkey "​\e[3~"​ delete-char bindkey "​\e[3~"​ delete-char
-bindkey "​^R"​ history-incremental-search-backward # Rechercher</​code>​+bindkey "​^R"​ history-incremental-search-backward # Rechercher 
 +</​code>​ 
 <note tip>​Astuce,​ pour connaître les raccourcis clavier de votre terminal, taper la commande : <note tip>​Astuce,​ pour connaître les raccourcis clavier de votre terminal, taper la commande :
-<code bash>cat -v</​code>​ 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</​code>​+<code bash> 
 +cat -v 
 +</​code>​ 
 + 
 +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 
 +</​code>​ 
 À noter, que vous pouvez directement connaître le bindkey via Vim : passer en mode insertion et taper Ctrl V</​note>​ À noter, que vous pouvez directement connaître le bindkey via Vim : passer en mode insertion et taper Ctrl V</​note>​
-==== 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,​ ce bogue a été corrigé :  [[https://​bugs.launchpad.net/​ubuntu/​+source/​zsh/​+bug/​204234|zsh'​s killall process tab completion should match bash's ]] 
  
-Pour faire simple, il suffit de rajouter dans le fichier /​etc/​zsh/​zshrc ​ les lignes suivantes : +
-<code bash>​zstyle ':​completion:​*:​processes'​ command 'ps -ax' +
-zstyle ':​completion:​*:​processes-names'​ command 'ps -aeo comm='​ +
-zstyle ':​completion:​*:​*:​kill:​*:​processes'​ list-colors '=(#b) #​([0-9]#​)*=0=01;​31'​ +
-zstyle ':​completion:​*:​*:​kill:​*'​ menu yes select +
-zstyle ':​completion:​*:​*:​killall:​*:​processes-names'​ list-colors '=(#b) #​([0-9]#​)*=0=01;​31'​ +
-zstyle ':​completion:​*:​*:​killall:​*'​ menu yes select</​code>​+
 ===== Voir aussi ===== ===== Voir aussi =====
  
 +  * [[Oh-my-zsh|Oh my zsh]]
   * **(en)** [[https://​wiki.gentoo.org/​wiki/​Zsh|Guide sur l'​installation et la configuration de zsh]] sur Gentoo.org   * **(en)** [[https://​wiki.gentoo.org/​wiki/​Zsh|Guide sur l'​installation et la configuration de zsh]] sur Gentoo.org
   * **(en)** [[https://​zshwiki.org/​home/​]]   * **(en)** [[https://​zshwiki.org/​home/​]]
Ligne 268: Ligne 284:
  
 //​Contributeurs : [[:​utilisateurs/​yannick_lm|yannick_lm]],​ [[:​utilisateurs/​philpep-tlse|philpep-tlse]],​ [[:​utilisateurs/​geenux|geenux]],​ [[:​utilisateurs/​malko25|malko25]],​ [[:​utilisateurs:​david96|david96]].//​ //​Contributeurs : [[:​utilisateurs/​yannick_lm|yannick_lm]],​ [[:​utilisateurs/​philpep-tlse|philpep-tlse]],​ [[:​utilisateurs/​geenux|geenux]],​ [[:​utilisateurs/​malko25|malko25]],​ [[:​utilisateurs:​david96|david96]].//​
 +
  • zsh.1662890168.txt.gz
  • Dernière modification: Le 11/09/2022, 11:56
  • par moths-art