SlideShare ist ein Scribd-Unternehmen logo
1 von 126
Downloaden Sie, um offline zu lesen
zsh : utilisation interactive
                    Bruno Bonfils, <asyd@asyd.net>




mardi 5 mai 2009
Sommaire




mardi 5 mai 2009
Sommaire

                   Introduction




mardi 5 mai 2009
Sommaire

                   Introduction
                   Organisation du shell, outils




mardi 5 mai 2009
Sommaire

                   Introduction
                   Organisation du shell, outils
                   La complétion ZSH




mardi 5 mai 2009
Sommaire

                   Introduction
                   Organisation du shell, outils
                   La complétion ZSH
                   ZLE (zsh line editor)




mardi 5 mai 2009
Sommaire

                   Introduction
                   Organisation du shell, outils
                   La complétion ZSH
                   ZLE (zsh line editor)
                   Quelques astuces




mardi 5 mai 2009
Sommaire

                   Introduction
                   Organisation du shell, outils
                   La complétion ZSH
                   ZLE (zsh line editor)
                   Quelques astuces
                   Les outils zsh


mardi 5 mai 2009
Introduction
                             Ma vision du shell




mardi 5 mai 2009
Introduction
                                             Ma vision du shell

                   Définition : un shell est un programme
                   fournissant une interface avec les
                   utilisateurs




mardi 5 mai 2009
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
Organisation / Outils




mardi 5 mai 2009
Organisation / Outils
                   Respecter une hiérarchie dans votre
                   répertoire utilisateur




mardi 5 mai 2009
Organisation / Outils
                   Respecter une hiérarchie dans votre
                   répertoire utilisateur
                    Un nombre fini de répertoire




mardi 5 mai 2009
Organisation / Outils
                   Respecter une hiérarchie dans votre
                   répertoire utilisateur
                    Un nombre fini de répertoire
                    Des noms explicites




mardi 5 mai 2009
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
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
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
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
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
Un mot sur dict




mardi 5 mai 2009
Un mot sur dict

                   dict est un outil client/serveur permettant
                   d’interroger un ensemble de dictionnaires




mardi 5 mai 2009
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
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
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
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
Un mot sur screen




mardi 5 mai 2009
Un mot sur screen

                   Multiplexage de terminaux




mardi 5 mai 2009
Un mot sur screen

                   Multiplexage de terminaux
                   Découpage (split) des vues




mardi 5 mai 2009
Un mot sur screen

                   Multiplexage de terminaux
                   Découpage (split) des vues
                   Enregistrement, recherche




mardi 5 mai 2009
Un mot sur screen

                   Multiplexage de terminaux
                   Découpage (split) des vues
                   Enregistrement, recherche
                   Copier/Coller sans souris




mardi 5 mai 2009
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
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
Un mot sur screen




                         Title bar

                         Hardstatus bar




mardi 5 mai 2009
Un mot sur screen




                                            RPS1
                                          Dynamique

                         Title bar

                         Hardstatus bar




mardi 5 mai 2009
Un mot sur screen




mardi 5 mai 2009
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
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
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
La complétion zsh




mardi 5 mai 2009
La complétion zsh

                   Les concepts




mardi 5 mai 2009
La complétion zsh

                   Les concepts
                   Les widgets




mardi 5 mai 2009
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
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
Les concepts




mardi 5 mai 2009
Les concepts


                   Écrire des fonctions de complétion très
                   avancées, tout en pensant à la réutilisation




mardi 5 mai 2009
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
La complétion




mardi 5 mai 2009
La complétion

                   Tout le monde connais la complétion sur
                   les commandes




mardi 5 mai 2009
La complétion

                   Tout le monde connais la complétion sur
                   les commandes
                   Mais zsh propose bien plus :




mardi 5 mai 2009
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
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
Quelques exemples : apt-get




mardi 5 mai 2009
Quelques exemples : apt-get

                     complétion des sous commandes (install,
                     update, etc.)




mardi 5 mai 2009
Quelques exemples : apt-get

                     complétion des sous commandes (install,
                     update, etc.)
                     complétion de la liste des paquets




mardi 5 mai 2009
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
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
Quelques exemples :
                        configure




mardi 5 mai 2009
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
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
Autres exemples




mardi 5 mai 2009
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
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
Les widgets




mardi 5 mai 2009
Les widgets

                   Quelques exemples de fonctions
                   réutilisables




mardi 5 mai 2009
Les widgets

                   Quelques exemples de fonctions
                   réutilisables
                    _users _groups




mardi 5 mai 2009
Les widgets

                   Quelques exemples de fonctions
                   réutilisables
                    _users _groups
                    _hosts




mardi 5 mai 2009
Les widgets

                   Quelques exemples de fonctions
                   réutilisables
                    _users _groups
                    _hosts
                    _services



mardi 5 mai 2009
approximate / correct




mardi 5 mai 2009
approximate / correct

                   zsh dispose de fonctionnalités pour
                   corriger automatiquement des erreurs de
                   frappe




mardi 5 mai 2009
approximate / correct

                   zsh dispose de fonctionnalités pour
                   corriger automatiquement des erreurs de
                   frappe
                    Erreur de casse (cd /Etc)




mardi 5 mai 2009
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
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
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
Exemples de zstyle




mardi 5 mai 2009
Exemples de zstyle                Commande
                                                      pour obtenir la liste
                                                        des processus


                   zstyle ':completion:*:processes' command
                   'ps -au$USER'




mardi 5 mai 2009
Exemples de zstyle

                   zstyle ':completion:*:processes' command
                   'ps -au$USER'                        Active le cache


                   zstyle ':completion:*' use-cache on




mardi 5 mai 2009
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
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
Étendre la complétion




mardi 5 mai 2009
Étendre la complétion


                   Comportement par défaut




mardi 5 mai 2009
Étendre la complétion


                   Comportement par défaut
                   compdef




mardi 5 mai 2009
Étendre la complétion


                   Comportement par défaut
                   compdef
                   zstyle




mardi 5 mai 2009
La complétion




mardi 5 mai 2009
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
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
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
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
La complétion




mardi 5 mai 2009
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
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
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
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
ZLE, zsh line editor




mardi 5 mai 2009
ZLE, zsh line editor


                   Plusieurs modes possibles




mardi 5 mai 2009
ZLE, zsh line editor


                   Plusieurs modes possibles
                    emacs




mardi 5 mai 2009
ZLE, zsh line editor


                   Plusieurs modes possibles
                    emacs
                    vi (mode commande, mode insert)




mardi 5 mai 2009
ZLE, zsh line editor


                   Plusieurs modes possibles
                     emacs
                     vi (mode commande, mode insert)
                   Extensible en écrivant ses propres widgets




mardi 5 mai 2009
Quelques bindkeys utiles




mardi 5 mai 2009
Quelques bindkeys utiles

                                                     Permet de parcourir
                                                   les anciens appels à une
                                                     commande donnée

                   history-search-{back|for}ward




mardi 5 mai 2009
Quelques bindkeys utiles


                   history-search-{back|for}ward   Insère le dernier
                                                   mot de la saisie

                   insert-last-word




mardi 5 mai 2009
Quelques bindkeys utiles


                   history-search-{back|for}ward
                   insert-last-word                   Temporise la
                                                   commande en cours
                   push-line




mardi 5 mai 2009
Étendre les bindkeys




mardi 5 mai 2009
Étendre les bindkeys


                   Création d’un bindkey (vi):




mardi 5 mai 2009
Étendre les bindkeys


                   Création d’un bindkey (vi):   bindkey -s '((' '()ei'




mardi 5 mai 2009
É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
D’autres fonctionnalités




mardi 5 mai 2009
D’autres fonctionnalités


                   autopushd




mardi 5 mai 2009
D’autres fonctionnalités


                   autopushd
                   zmv




mardi 5 mai 2009
D’autres fonctionnalités


                   autopushd
                   zmv
                   alias




mardi 5 mai 2009
D’autres fonctionnalités


                   autopushd
                   zmv
                   alias
                   historique partagé




mardi 5 mai 2009
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
zmv




mardi 5 mai 2009
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
zmv
                   Lorsque que vous devez renommer
                   plusieurs fichiers, la manière classique est
                   d’utiliser une boucle




mardi 5 mai 2009
zmv
                   Lorsque que vous devez renommer
                   plusieurs fichiers, la manière classique est
                   d’utiliser une boucle




mardi 5 mai 2009
zmv
                   Lorsque que vous devez renommer
                   plusieurs fichiers, la manière classique est
                   d’utiliser une boucle




mardi 5 mai 2009
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
Les alias




mardi 5 mai 2009
Les alias

                   Alias de suffixe




mardi 5 mai 2009
Les alias

                   Alias de suffixe
                     alias -s pem=”openssl x509 -noout -text -
                     in”




mardi 5 mai 2009
Les alias

                   Alias de suffixe
                     alias -s pem=”openssl x509 -noout -text -
                     in”
                     alias -s log=”tail -f”




mardi 5 mai 2009
Les alias

                   Alias de suffixe
                     alias -s pem=”openssl x509 -noout -text -
                     in”
                     alias -s log=”tail -f”
                   Alias globaux




mardi 5 mai 2009
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
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
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

Weitere ähnliche Inhalte

Andere mochten auch

workshop initiation ssh
workshop initiation sshworkshop initiation ssh
workshop initiation sshZakaria SMAHI
 
cours NAT (traduction d'adresse réseau)
cours NAT (traduction d'adresse réseau)cours NAT (traduction d'adresse réseau)
cours NAT (traduction d'adresse réseau)EL AMRI El Hassan
 
Réseaux locaux sans fil wlan
Réseaux locaux sans fil  wlanRéseaux locaux sans fil  wlan
Réseaux locaux sans fil wlanEL AMRI El Hassan
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro javaAmel Morchdi
 
Configuration et mise en œuvre d'un réseau WAN (World Area Network)
Configuration et mise en œuvre  d'un réseau  WAN (World Area Network)Configuration et mise en œuvre  d'un réseau  WAN (World Area Network)
Configuration et mise en œuvre d'un réseau WAN (World Area Network)Abderrahmane Benyoub
 
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WANMise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WANGhassen Chaieb
 
Travaux pratiques configuration du routage entre réseaux locaux virtuels
Travaux pratiques   configuration du routage entre réseaux locaux virtuelsTravaux pratiques   configuration du routage entre réseaux locaux virtuels
Travaux pratiques configuration du routage entre réseaux locaux virtuelsMohamed Keita
 
Résumé ccna 1chapitre 1 v5.0
Résumé ccna 1chapitre 1 v5.0Résumé ccna 1chapitre 1 v5.0
Résumé ccna 1chapitre 1 v5.0EL AMRI El Hassan
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013Romain Linsolas
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training Patrick Schroeder
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 

Andere mochten auch (17)

Cours VTP
Cours VTPCours VTP
Cours VTP
 
Cours SNMP
Cours SNMPCours SNMP
Cours SNMP
 
workshop initiation ssh
workshop initiation sshworkshop initiation ssh
workshop initiation ssh
 
cours DHCP IPv4 et IPv6
cours DHCP IPv4 et IPv6cours DHCP IPv4 et IPv6
cours DHCP IPv4 et IPv6
 
cours NAT (traduction d'adresse réseau)
cours NAT (traduction d'adresse réseau)cours NAT (traduction d'adresse réseau)
cours NAT (traduction d'adresse réseau)
 
Cours les technologies WAN
Cours les technologies WANCours les technologies WAN
Cours les technologies WAN
 
Cours syslog
Cours syslogCours syslog
Cours syslog
 
Réseaux locaux sans fil wlan
Réseaux locaux sans fil  wlanRéseaux locaux sans fil  wlan
Réseaux locaux sans fil wlan
 
Cours frame relay
Cours frame relayCours frame relay
Cours frame relay
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro java
 
Configuration et mise en œuvre d'un réseau WAN (World Area Network)
Configuration et mise en œuvre  d'un réseau  WAN (World Area Network)Configuration et mise en œuvre  d'un réseau  WAN (World Area Network)
Configuration et mise en œuvre d'un réseau WAN (World Area Network)
 
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WANMise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
 
Travaux pratiques configuration du routage entre réseaux locaux virtuels
Travaux pratiques   configuration du routage entre réseaux locaux virtuelsTravaux pratiques   configuration du routage entre réseaux locaux virtuels
Travaux pratiques configuration du routage entre réseaux locaux virtuels
 
Résumé ccna 1chapitre 1 v5.0
Résumé ccna 1chapitre 1 v5.0Résumé ccna 1chapitre 1 v5.0
Résumé ccna 1chapitre 1 v5.0
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Mehr von Bruno Bonfils

Mehr von Bruno Bonfils (12)

Drupal sso
Drupal ssoDrupal sso
Drupal sso
 
Vue d'ensemble du SSO
Vue d'ensemble du SSOVue d'ensemble du SSO
Vue d'ensemble du SSO
 
Splunk
SplunkSplunk
Splunk
 
iTop
iTopiTop
iTop
 
RunDeck
RunDeckRunDeck
RunDeck
 
Présentation de l'association GUSES
Présentation de l'association GUSESPrésentation de l'association GUSES
Présentation de l'association GUSES
 
Métrologie des IOs
Métrologie des IOsMétrologie des IOs
Métrologie des IOs
 
Introduction à OpenSolaris
Introduction à OpenSolarisIntroduction à OpenSolaris
Introduction à OpenSolaris
 
Ldap
LdapLdap
Ldap
 
Shell
ShellShell
Shell
 
La signature numérique
La signature numériqueLa signature numérique
La signature numérique
 
(Open)Solaris : Introduction aux zones et à ZFS
(Open)Solaris : Introduction aux zones et à ZFS(Open)Solaris : Introduction aux zones et à ZFS
(Open)Solaris : Introduction aux zones et à ZFS
 

Zsh Rmll

  • 1. zsh : utilisation interactive Bruno Bonfils, <asyd@asyd.net> 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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