Your SlideShare is downloading. ×
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Zsh Rmll
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Zsh Rmll

1,020

Published on

Introduction à ZSH et les bonnes pratiques du shell

Introduction à ZSH et les bonnes pratiques du shell

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,020
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. zsh : utilisation interactive Bruno Bonfils, <asyd@asyd.net> mardi 5 mai 2009
  • 2. Sommaire mardi 5 mai 2009
  • 3. Sommaire Introduction mardi 5 mai 2009
  • 4. Sommaire Introduction Organisation du shell, outils mardi 5 mai 2009
  • 5. Sommaire Introduction Organisation du shell, outils La complétion ZSH mardi 5 mai 2009
  • 6. Sommaire Introduction Organisation du shell, outils La complétion ZSH ZLE (zsh line editor) mardi 5 mai 2009
  • 7. Sommaire Introduction Organisation du shell, outils La complétion ZSH ZLE (zsh line editor) Quelques astuces mardi 5 mai 2009
  • 8. Sommaire Introduction Organisation du shell, outils La complétion ZSH ZLE (zsh line editor) Quelques astuces Les outils zsh mardi 5 mai 2009
  • 9. Introduction Ma vision du shell mardi 5 mai 2009
  • 10. Introduction Ma vision du shell Définition : un shell est un programme fournissant une interface avec les utilisateurs mardi 5 mai 2009
  • 11. Introduction Ma vision du shell Définition : un shell est un programme fournissant une interface avec les utilisateurs La productivité fournie par un outil en ligne de commande n’a jamais été égalée par des applications graphiques (pour une utilisation générique) mardi 5 mai 2009
  • 12. Organisation / Outils mardi 5 mai 2009
  • 13. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur mardi 5 mai 2009
  • 14. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur Un nombre fini de répertoire mardi 5 mai 2009
  • 15. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur Un nombre fini de répertoire Des noms explicites mardi 5 mai 2009
  • 16. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur Un nombre fini de répertoire Des noms explicites Utilisation d’un SCM mardi 5 mai 2009
  • 17. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur Un nombre fini de répertoire Des noms explicites Utilisation d’un SCM Des outils annexes indispensables mardi 5 mai 2009
  • 18. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur Un nombre fini de répertoire Des noms explicites Utilisation d’un SCM Des outils annexes indispensables screen mardi 5 mai 2009
  • 19. Organisation / Outils Respecter une hiérarchie dans votre répertoire utilisateur Un nombre fini de répertoire Des noms explicites Utilisation d’un SCM Des outils annexes indispensables screen dict mardi 5 mai 2009
  • 20. Exemple d’organisation archives bin docs download etc tmp tools work Respecter cette hiérarchie sur l’ensemble de vos comptes/ordinateurs vous permet une plus grande productivité. mardi 5 mai 2009
  • 21. Un mot sur dict mardi 5 mai 2009
  • 22. Un mot sur dict dict est un outil client/serveur permettant d’interroger un ensemble de dictionnaires mardi 5 mai 2009
  • 23. Un mot sur dict dict est un outil client/serveur permettant d’interroger un ensemble de dictionnaires VERA (Virtual Entity of Relevant Acronyms) mardi 5 mai 2009
  • 24. Un mot sur dict dict est un outil client/serveur permettant d’interroger un ensemble de dictionnaires VERA (Virtual Entity of Relevant Acronyms) GCide, dictionnaire anglais mardi 5 mai 2009
  • 25. Un mot sur dict dict est un outil client/serveur permettant d’interroger un ensemble de dictionnaires VERA (Virtual Entity of Relevant Acronyms) GCide, dictionnaire anglais Et de nombreux autres mardi 5 mai 2009
  • 26. Un mot sur dict dict est un outil client/serveur permettant d’interroger un ensemble de dictionnaires VERA (Virtual Entity of Relevant Acronyms) GCide, dictionnaire anglais Et de nombreux autres % dict bgp BGP Border Gateway Protocol (RFC 1267/1771, IP) mardi 5 mai 2009
  • 27. Un mot sur screen mardi 5 mai 2009
  • 28. Un mot sur screen Multiplexage de terminaux mardi 5 mai 2009
  • 29. Un mot sur screen Multiplexage de terminaux Découpage (split) des vues mardi 5 mai 2009
  • 30. Un mot sur screen Multiplexage de terminaux Découpage (split) des vues Enregistrement, recherche mardi 5 mai 2009
  • 31. Un mot sur screen Multiplexage de terminaux Découpage (split) des vues Enregistrement, recherche Copier/Coller sans souris mardi 5 mai 2009
  • 32. Un mot sur screen Multiplexage de terminaux Découpage (split) des vues Enregistrement, recherche Copier/Coller sans souris Hardstatus/title bar mardi 5 mai 2009
  • 33. Un mot sur screen Multiplexage de terminaux Découpage (split) des vues Enregistrement, recherche Copier/Coller sans souris Hardstatus/title bar Très utile en relation avec zsh ! mardi 5 mai 2009
  • 34. Un mot sur screen Title bar Hardstatus bar mardi 5 mai 2009
  • 35. Un mot sur screen RPS1 Dynamique Title bar Hardstatus bar mardi 5 mai 2009
  • 36. Un mot sur screen mardi 5 mai 2009
  • 37. Un mot sur screen Grâce à des fonctions, il est possible de rendre dynamique le contenu des barres de titre et de statut mardi 5 mai 2009
  • 38. Un mot sur screen Grâce à des fonctions, il est possible de rendre dynamique le contenu des barres de titre et de statut ssh, telnet vont définir le nom d’hôte dans la barre de statut mardi 5 mai 2009
  • 39. Un mot sur screen Grâce à des fonctions, il est possible de rendre dynamique le contenu des barres de titre et de statut ssh, telnet vont définir le nom d’hôte dans la barre de statut heure, commande et chemin en cours dans la barre de titre mardi 5 mai 2009
  • 40. La complétion zsh mardi 5 mai 2009
  • 41. La complétion zsh Les concepts mardi 5 mai 2009
  • 42. La complétion zsh Les concepts Les widgets mardi 5 mai 2009
  • 43. La complétion zsh Les concepts Les widgets les zstyles, où comment configurer la complétion en fonction de ses envies mardi 5 mai 2009
  • 44. La complétion zsh Les concepts Les widgets les zstyles, où comment configurer la complétion en fonction de ses envies Définir/étendre la complétion mardi 5 mai 2009
  • 45. Les concepts mardi 5 mai 2009
  • 46. Les concepts Écrire des fonctions de complétion très avancées, tout en pensant à la réutilisation mardi 5 mai 2009
  • 47. Les concepts Écrire des fonctions de complétion très avancées, tout en pensant à la réutilisation Une configuration très fine, pouvant contrôler le comportement de la complétion mardi 5 mai 2009
  • 48. La complétion mardi 5 mai 2009
  • 49. La complétion Tout le monde connais la complétion sur les commandes mardi 5 mai 2009
  • 50. La complétion Tout le monde connais la complétion sur les commandes Mais zsh propose bien plus : mardi 5 mai 2009
  • 51. La complétion Tout le monde connais la complétion sur les commandes Mais zsh propose bien plus : Une complétion sur les arguments mardi 5 mai 2009
  • 52. La complétion Tout le monde connais la complétion sur les commandes Mais zsh propose bien plus : Une complétion sur les arguments Une complétion contextuelle (différente en fonction de l’argument précédent par exemple) mardi 5 mai 2009
  • 53. Quelques exemples : apt-get mardi 5 mai 2009
  • 54. Quelques exemples : apt-get complétion des sous commandes (install, update, etc.) mardi 5 mai 2009
  • 55. Quelques exemples : apt-get complétion des sous commandes (install, update, etc.) complétion de la liste des paquets mardi 5 mai 2009
  • 56. Quelques exemples : apt-get complétion des sous commandes (install, update, etc.) complétion de la liste des paquets Gestion du statut du paquet (installé, disponible) mardi 5 mai 2009
  • 57. Quelques exemples : apt-get complétion des sous commandes (install, update, etc.) complétion de la liste des paquets Gestion du statut du paquet (installé, disponible) Utilisation d’un cache mardi 5 mai 2009
  • 58. Quelques exemples : configure mardi 5 mai 2009
  • 59. Quelques exemples : configure Lorsque l’on compile un logiciel à partir des sources, s’il utilise les autotools, cela commence généralement par un ./configure --help | less pour connaître la liste des options disponibles (surtout celles spécifiques) mardi 5 mai 2009
  • 60. Quelques exemples : configure Lorsque l’on compile un logiciel à partir des sources, s’il utilise les autotools, cela commence généralement par un ./configure --help | less pour connaître la liste des options disponibles (surtout celles spécifiques) Avec zsh, passez vous de cette étape, utiliser juste ./configure --<tab> mardi 5 mai 2009
  • 61. Autres exemples mardi 5 mai 2009
  • 62. Autres exemples pour la commande man, zsh complète non seulement la liste des pages de manuels, mais aussi la liste des modules perl (documentation en pod) mardi 5 mai 2009
  • 63. Autres exemples pour la commande man, zsh complète non seulement la liste des pages de manuels, mais aussi la liste des modules perl (documentation en pod) pour les options ao/vo de mplayer, la définition de la liste est dynamique mardi 5 mai 2009
  • 64. Les widgets mardi 5 mai 2009
  • 65. Les widgets Quelques exemples de fonctions réutilisables mardi 5 mai 2009
  • 66. Les widgets Quelques exemples de fonctions réutilisables _users _groups mardi 5 mai 2009
  • 67. Les widgets Quelques exemples de fonctions réutilisables _users _groups _hosts mardi 5 mai 2009
  • 68. Les widgets Quelques exemples de fonctions réutilisables _users _groups _hosts _services mardi 5 mai 2009
  • 69. approximate / correct mardi 5 mai 2009
  • 70. approximate / correct zsh dispose de fonctionnalités pour corriger automatiquement des erreurs de frappe mardi 5 mai 2009
  • 71. approximate / correct zsh dispose de fonctionnalités pour corriger automatiquement des erreurs de frappe Erreur de casse (cd /Etc) mardi 5 mai 2009
  • 72. approximate / correct zsh dispose de fonctionnalités pour corriger automatiquement des erreurs de frappe Erreur de casse (cd /Etc) L’inversion de caractères (banane, abnane) mardi 5 mai 2009
  • 73. approximate / correct zsh dispose de fonctionnalités pour corriger automatiquement des erreurs de frappe Erreur de casse (cd /Etc) L’inversion de caractères (banane, abnane) Des caractères manquant, en trop (ricard, richard) mardi 5 mai 2009
  • 74. les zstyle Les zstyle permettent de contrôler de manière très fine le comportement de la complétion Permet de définir des comportements à plusieurs niveaux global par commande par argument mardi 5 mai 2009
  • 75. Exemples de zstyle mardi 5 mai 2009
  • 76. Exemples de zstyle Commande pour obtenir la liste des processus zstyle ':completion:*:processes' command 'ps -au$USER' mardi 5 mai 2009
  • 77. Exemples de zstyle zstyle ':completion:*:processes' command 'ps -au$USER' Active le cache zstyle ':completion:*' use-cache on mardi 5 mai 2009
  • 78. Exemples de zstyle zstyle ':completion:*:processes' command 'ps -au$USER' Ignore le zstyle ':completion:*' use-cache on répertoire parent zstyle ':completion:*' ignore-parents parent pwd mardi 5 mai 2009
  • 79. Exemples de zstyle zstyle ':completion:*:processes' command 'ps -au$USER' zstyle ':completion:*' use-cache on zstyle ':completion:*' ignore-parents parent de Utilise l’heure pwd modification comme critère de tri pour vi zstyle ':completion:*:*:vi*:*' file-sort modification Dans ce dernier cas, le comportement est surchargé pour une commande ! mardi 5 mai 2009
  • 80. Étendre la complétion mardi 5 mai 2009
  • 81. Étendre la complétion Comportement par défaut mardi 5 mai 2009
  • 82. Étendre la complétion Comportement par défaut compdef mardi 5 mai 2009
  • 83. Étendre la complétion Comportement par défaut compdef zstyle mardi 5 mai 2009
  • 84. La complétion mardi 5 mai 2009
  • 85. La complétion Pour une application dont il n’existe pas de fonction de complétion, le widget _files est utilisé mardi 5 mai 2009
  • 86. La complétion Pour une application dont il n’existe pas de fonction de complétion, le widget _files est utilisé Mais il est possible de surcharger ce comportement mardi 5 mai 2009
  • 87. La complétion Pour une application dont il n’existe pas de fonction de complétion, le widget _files est utilisé Mais il est possible de surcharger ce comportement Un script maison attendant un nom d’hôte en argument mardi 5 mai 2009
  • 88. La complétion Pour une application dont il n’existe pas de fonction de complétion, le widget _files est utilisé Mais il est possible de surcharger ce comportement Un script maison attendant un nom d’hôte en argument % compdef _hosts myscript mardi 5 mai 2009
  • 89. La complétion mardi 5 mai 2009
  • 90. La complétion Il est également possible de spécifier un pattern matching afin de limiter la complétion sur les fichiers mardi 5 mai 2009
  • 91. La complétion Il est également possible de spécifier un pattern matching afin de limiter la complétion sur les fichiers zstyle ':completion:*:*:lintian:*' file-patterns '*(-/):directories *.deb' mardi 5 mai 2009
  • 92. La complétion Il est également possible de spécifier un pattern matching afin de limiter la complétion sur les fichiers zstyle ':completion:*:*:lintian:*' file-patterns '*(-/):directories *.deb' zstyle ':completion:*:*:gqview:*' file-patterns '*(-/):directories :(#i)*.(png|jpeg|jpg):all-files' mardi 5 mai 2009
  • 93. La complétion Il est également possible de spécifier un pattern matching afin de limiter la complétion sur les fichiers zstyle ':completion:*:*:lintian:*' file-patterns '*(-/):directories *.deb' zstyle ':completion:*:*:gqview:*' file-patterns '*(-/):directories :(#i)*.(png|jpeg|jpg):all-files' zstyle ':completion:*:cd:*' ignored-patterns '(*/)#CVS' mardi 5 mai 2009
  • 94. ZLE, zsh line editor mardi 5 mai 2009
  • 95. ZLE, zsh line editor Plusieurs modes possibles mardi 5 mai 2009
  • 96. ZLE, zsh line editor Plusieurs modes possibles emacs mardi 5 mai 2009
  • 97. ZLE, zsh line editor Plusieurs modes possibles emacs vi (mode commande, mode insert) mardi 5 mai 2009
  • 98. ZLE, zsh line editor Plusieurs modes possibles emacs vi (mode commande, mode insert) Extensible en écrivant ses propres widgets mardi 5 mai 2009
  • 99. Quelques bindkeys utiles mardi 5 mai 2009
  • 100. Quelques bindkeys utiles Permet de parcourir les anciens appels à une commande donnée history-search-{back|for}ward mardi 5 mai 2009
  • 101. Quelques bindkeys utiles history-search-{back|for}ward Insère le dernier mot de la saisie insert-last-word mardi 5 mai 2009
  • 102. Quelques bindkeys utiles history-search-{back|for}ward insert-last-word Temporise la commande en cours push-line mardi 5 mai 2009
  • 103. Étendre les bindkeys mardi 5 mai 2009
  • 104. Étendre les bindkeys Création d’un bindkey (vi): mardi 5 mai 2009
  • 105. Étendre les bindkeys Création d’un bindkey (vi): bindkey -s '((' '()ei' mardi 5 mai 2009
  • 106. Étendre les bindkeys Création d’un bindkey (vi): bindkey -s '((' '()ei' Permet de rajouter automatiquement la parenthèse fermante et de reculer d’un caractère mardi 5 mai 2009
  • 107. D’autres fonctionnalités mardi 5 mai 2009
  • 108. D’autres fonctionnalités autopushd mardi 5 mai 2009
  • 109. D’autres fonctionnalités autopushd zmv mardi 5 mai 2009
  • 110. D’autres fonctionnalités autopushd zmv alias mardi 5 mai 2009
  • 111. D’autres fonctionnalités autopushd zmv alias historique partagé mardi 5 mai 2009
  • 112. autopushd autopushd est une option permettant la mise en pile (stack) des n derniers répertoires visités dans la session permet de faire cd -<tab/numéro> pour retourner rapidement un ancien répertoire mardi 5 mai 2009
  • 113. zmv mardi 5 mai 2009
  • 114. zmv Lorsque que vous devez renommer plusieurs fichiers, la manière classique est d’utiliser une boucle for file in **/*(#i).ogg ; do mv $file ${(C)$file:r}.ogg ; done Puis autre boucle pour gérer les répertoires mardi 5 mai 2009
  • 115. zmv Lorsque que vous devez renommer plusieurs fichiers, la manière classique est d’utiliser une boucle mardi 5 mai 2009
  • 116. zmv Lorsque que vous devez renommer plusieurs fichiers, la manière classique est d’utiliser une boucle mardi 5 mai 2009
  • 117. zmv Lorsque que vous devez renommer plusieurs fichiers, la manière classique est d’utiliser une boucle mardi 5 mai 2009
  • 118. zmv Lorsque que vous devez renommer plusieurs fichiers, la manière classique est d’utiliser une boucle Maintenant, pensez zmv ! % zmv '(*) - (*) - (*).ogg' '$1/$2/$1 - $2 - $3.ogg' mardi 5 mai 2009
  • 119. Les alias mardi 5 mai 2009
  • 120. Les alias Alias de suffixe mardi 5 mai 2009
  • 121. Les alias Alias de suffixe alias -s pem=”openssl x509 -noout -text - in” mardi 5 mai 2009
  • 122. Les alias Alias de suffixe alias -s pem=”openssl x509 -noout -text - in” alias -s log=”tail -f” mardi 5 mai 2009
  • 123. Les alias Alias de suffixe alias -s pem=”openssl x509 -noout -text - in” alias -s log=”tail -f” Alias globaux mardi 5 mai 2009
  • 124. Les alias Alias de suffixe alias -s pem=”openssl x509 -noout -text - in” alias -s log=”tail -f” Alias globaux alias -g L=”| less” mardi 5 mai 2009
  • 125. Historique partagé Toutes les sessions partagent le même fichier d’historique Très utile pour coupler avec la recherche d’historique ! mardi 5 mai 2009
  • 126. Merci de votre attention ! En savoir plus : http://www.zsh.org/ http://www.zshwiki.org/ http://cli.asyd.net/ mailto:shell-requests@asyd.net?Subject=subscribe irc://#zsh@irc.freenode.net/ irc://#zsh-fr@irc.freenode.net/ mardi 5 mai 2009

×