{"id":77,"date":"2011-03-01T20:53:39","date_gmt":"2011-03-01T19:53:39","guid":{"rendered":"http:\/\/www.blaess.fr\/christophe\/blog\/?page_id=77"},"modified":"2011-03-01T20:53:39","modified_gmt":"2011-03-01T19:53:39","slug":"shells-linux-unix-pratique","status":"publish","type":"page","link":"https:\/\/www.blaess.fr\/christophe\/livres\/shells-linux-unix-pratique\/","title":{"rendered":"Shells Linux et Unix par la pratique"},"content":{"rendered":"<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2011\/03\/livre-shell.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-78\" title=\"Shell Linux et Unix par la pratique\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2011\/03\/livre-shell.gif\" alt=\"Shell Linux et Unix par la pratique\" width=\"165\" height=\"200\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Ce livre, paru en janvier 2008, pr\u00e9sente la programmation de scripts shell en essayant de l&rsquo;aborder de mani\u00e8re pratique et directement utilisable. On retrouve des exemples et des pr\u00e9sentations provenant de mon pr\u00e9c\u00e9dent livre \u00ab\u00a0Scripts sous Linux\u00a0\u00bb, mais l&rsquo;accent est port\u00e9 ici sur la portabilit\u00e9 des scripts vers d&rsquo;autres syst\u00e8mes Unix.<\/p>\n<h2>Suppl\u00e9ments<\/h2>\n<p style=\"text-align: justify;\">Cette\u00a0<a title=\"Exemples du livres &quot;Shells Linux et Unix par la pratique&quot;\" href=\"http:\/\/www.blaess.fr\/christophe\/files\/scripts_shell.tar.gz\">archive<\/a> au format tar+gz contient l&rsquo;ensemble des scripts fournis en exemple du livre et en tant qu&rsquo;exercices corrig\u00e9s.<\/p>\n<h2>Commander sur Amazon<\/h2>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" style=\"width: 120px; height: 240px;\" src=\"http:\/\/rcm-fr.amazon.fr\/e\/cm?lt1=_blank&amp;bc1=F7F4EB&amp;IS1=1&amp;bg1=F7F4EB&amp;fc1=000000&amp;lc1=5375BA&amp;t=chbl-21&amp;o=8&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;ref=qf_sp_asin_til&amp;asins=221212273X\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" width=\"320\" height=\"240\"><\/iframe><\/p>\n<h2>Commander en PDF sur iziBook<\/h2>\n<p style=\"text-align: center;\"><a href=\"http:\/\/izibook.eyrolles.com\/produit\/176\/9782212851854\/Shells%20Linux%20et%20Unix%20par%20la%20pratique?affiliate_code=christophe_blaess\"><img loading=\"lazy\" decoding=\"async\" alt=\"Shells Linux et Unix par la pratique De Christophe Blaess - Eyrolles\" border=\"0\" height=\"97\" src=\"http:\/\/izibook.eyrolles.com\/images\/thumbnails\/0000\/0709\/9782212122732_small.jpg\" title=\"Shells Linux et Unix par la pratique De Christophe Blaess - Eyrolles\" width=\"80\" \/><\/a><br \/><a href=\"http:\/\/izibook.eyrolles.com\/produit\/176\/9782212851854\/Shells%20Linux%20et%20Unix%20par%20la%20pratique?affiliate_code=christophe_blaess\">Shells Linux et Unix par la pratique<\/a><\/p>\n<h2>Sommaire<\/h2>\n<ul>\n<li><strong>Avant-propos<\/strong><\/li>\n<li><strong>Chapitre 1 &#8211; Principes des scripts Shell<\/strong>\n<ul>\n<li>Le shell Unix\n<ul>\n<li>Pourquoi \u00e9crire un script shell\u00a0?<\/li>\n<li>Outils n\u00e9cessaires<\/li>\n<\/ul>\n<\/li>\n<li>Ex\u00e9cution d&rsquo;un script\n<ul>\n<li>Invocation de l&rsquo;interpr\u00e9teur<\/li>\n<li>Appel direct<\/li>\n<li>Ligne shebang<\/li>\n<\/ul>\n<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 2 &#8211; Programmation Shell<\/strong>\n<ul>\n<li>Premier aper\u00e7u<\/li>\n<li>Premier script, rm_secure<\/li>\n<li>Analyse d\u00e9taill\u00e9e<\/li>\n<li>Performances<\/li>\n<li>Exemple d&rsquo;ex\u00e9cution<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 3 &#8211; \u00c9valuation d&rsquo;expressions<\/strong>\n<ul>\n<li>Variables\n<ul>\n<li>Pr\u00e9cisions sur l&rsquo;op\u00e9rateur $<\/li>\n<\/ul>\n<\/li>\n<li>Calcul arithm\u00e9tique<\/li>\n<li>Invocation de commande<\/li>\n<li>Port\u00e9es et attributs des variables<\/li>\n<li>Param\u00e8tres\n<ul>\n<li>Param\u00e8tres positionnels<\/li>\n<li>Param\u00e8tres sp\u00e9ciaux<\/li>\n<\/ul>\n<\/li>\n<li>Protection des expressions\n<ul>\n<li>Protection par le caract\u00e8re backslash<\/li>\n<li>Protection par apostrophes<\/li>\n<li>Protection par guillemets<\/li>\n<\/ul>\n<\/li>\n<li>Tableaux<\/li>\n<li>\u00c9valuation explicite d&rsquo;une expression<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 4 &#8211; \u00c9l\u00e9ments de programmation shell<\/strong>\n<ul>\n<li>Commandes et code de retour\n<ul>\n<li>Commande simple<\/li>\n<li>Pipelines<\/li>\n<li>Listes de pipelines<\/li>\n<li>Commandes compos\u00e9es<\/li>\n<\/ul>\n<\/li>\n<li>Redirections d&rsquo;entr\u00e9es-sorties\n<ul>\n<li>Entr\u00e9es-sorties standards<\/li>\n<li>Redirection des entr\u00e9es-sorties standards<\/li>\n<li>Redirections avanc\u00e9es<\/li>\n<\/ul>\n<\/li>\n<li>Structures de contr\u00f4le\n<ul>\n<li>S\u00e9lection d&rsquo;instructions<\/li>\n<li>It\u00e9rations d&rsquo;instructions<\/li>\n<li>Fonctions<\/li>\n<\/ul>\n<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 5 &#8211; Commandes, variables et utilitaires syst\u00e8me<\/strong>\n<ul>\n<li>Commandes internes\n<ul>\n<li>Comportement du shell<\/li>\n<li>Ex\u00e9cution des scripts et commandes<\/li>\n<li>Interactions avec le syst\u00e8me<\/li>\n<li>Arguments en ligne de commande<\/li>\n<li>Variables internes<\/li>\n<\/ul>\n<\/li>\n<li>Commandes externes<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 6 &#8211; Programmation shell avanc\u00e9e<\/strong>\n<ul>\n<li>Processus fils, parall\u00e9lisme<\/li>\n<li>Arri\u00e8re-plan et d\u00e9mons<\/li>\n<li>Signaux\n<ul>\n<li>Envoi d&rsquo;un signal<\/li>\n<li>R\u00e9ception d&rsquo;un signal<\/li>\n<li>Attente de signaux<\/li>\n<\/ul>\n<\/li>\n<li>Communication entre processus<\/li>\n<li>Entr\u00e9es-sorties\n<ul>\n<li>tee<\/li>\n<li>xargs<\/li>\n<\/ul>\n<\/li>\n<li>Interface utilisateur\n<ul>\n<li>stty<\/li>\n<li>tput<\/li>\n<li>dialog<\/li>\n<\/ul>\n<\/li>\n<li>D\u00e9boguer un script<\/li>\n<li>Virgule flottante<\/li>\n<li>Conclusion<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 7 &#8211; Expressions r\u00e9guli\u00e8res &#8211; Grep<\/strong>\n<ul>\n<li>Introduction<\/li>\n<li>Expressions r\u00e9guli\u00e8res simples<\/li>\n<li>Expressions rationnelles \u00e9tendues<\/li>\n<li>Outil grep<\/li>\n<li>Recherche r\u00e9cursive avec find<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 8 &#8211; Sed<\/strong>\n<ul>\n<li>Pr\u00e9sentation<\/li>\n<li>Utilisation de Sed\n<ul>\n<li>Principe<\/li>\n<li>Fonctionnement de Sed<\/li>\n<li>Commandes Sed<\/li>\n<\/ul>\n<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 9 &#8211; Awk<\/strong>\n<ul>\n<li>Fonctionnement de Awk\n<ul>\n<li>Les motifs<\/li>\n<li>Les actions<\/li>\n<li>Les variables<\/li>\n<\/ul>\n<\/li>\n<li>Enregistrements et champs\n<ul>\n<li>Les enregistrements<\/li>\n<li>Les champs<\/li>\n<\/ul>\n<\/li>\n<li>Structures de contr\u00f4le<\/li>\n<li>Expressions<\/li>\n<li>Retour sur les affichages<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Chapitre 10 &#8211; Bonne \u00e9criture d&rsquo;un script<\/strong>\n<ul>\n<li>Pr\u00e9sentation g\u00e9n\u00e9rale<\/li>\n<li>Les variables<\/li>\n<li>Gestion des erreurs<\/li>\n<li>Les fonctions<\/li>\n<li>Conclusion<\/li>\n<li>Exercices<\/li>\n<\/ul>\n<\/li>\n<li><strong>Annexe A &#8211; Solutions des exercices<\/strong>\n<ul>\n<li>Chapitre 1<\/li>\n<li>Chapitre 2<\/li>\n<li>Chapitre 3<\/li>\n<li>Chapitre 4<\/li>\n<li>Chapitre 5<\/li>\n<li>Chapitre 7<\/li>\n<li>Chapitre 8<\/li>\n<\/ul>\n<\/li>\n<li><strong>Annexe B &#8211; Bibliographie<\/strong>\n<ul>\n<li>Livres et articles<\/li>\n<li>Sites de r\u00e9f\u00e9rences<\/li>\n<\/ul>\n<\/li>\n<li><strong>Index<\/strong><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Ce livre, paru en janvier 2008, pr&eacute;sente la programmation de scripts shell en essayant de l&rsquo;aborder de mani&egrave;re pratique et directement utilisable. On retrouve des exemples et des pr&eacute;sentations provenant de mon pr&eacute;c&eacute;dent livre &laquo;&nbsp;Scripts sous Linux&nbsp;&raquo;, mais l&rsquo;accent est port&eacute; ici sur la portabilit&eacute; des scripts vers d&rsquo;autres syst&egrave;mes Unix. Suppl&eacute;ments Cette&nbsp;archive au format [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":15,"menu_order":4,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-77","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":0,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/77\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/15"}],"wp:attachment":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/media?parent=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}