{"id":2261,"date":"2016-05-26T11:40:24","date_gmt":"2016-05-26T15:40:24","guid":{"rendered":"http:\/\/bioinfo.iric.ca\/fr\/?p=2261"},"modified":"2017-04-29T22:56:21","modified_gmt":"2017-04-30T02:56:21","slug":"realise-ton-potentiel-bash","status":"publish","type":"post","link":"https:\/\/bioinfo.iric.ca\/fr\/realise-ton-potentiel-bash\/","title":{"rendered":"R\u00e9alise ton potentiel Bash"},"content":{"rendered":"<p>Le meilleur outil du bio-informaticien est sans doute son interpr\u00e9teur. Bien que plusieurs\u00a0l&rsquo;aient\u00a0d\u00e9j\u00e0 dompt\u00e9, il arrive souvent \u00e0\u00a0certains d\u00e9butants de se retrouver \u00e0 r\u00e9p\u00e9ter p\u00e9niblement certaines s\u00e9quences lorsqu&rsquo;il existe une solution plus rapide (il m&rsquo;arrive encore de me retrouver\u00a0dans la m\u00eame situation!). Jetons un coup d&rsquo;oeil aux commandes et raccourcis de l&rsquo;interpr\u00e9teur de commandes Bash les plus utilis\u00e9es. Cette liste ne tente aucunement d&rsquo;\u00e9num\u00e9rer toutes les fonctionalit\u00e9s de Bash mais plut\u00f4t de regrouper certains raccourcis clef qui pourront\u00a0possiblement \u00e9conomiser un peu de temps et pr\u00e9venir certaines frustrations.<\/p>\n<h3>\u00c9dition de commandes<\/h3>\n<p>La Bash shell contient ses propres commandes pour manoeuvrer le curseur. Selon votre choix d&rsquo;\u00e9mulateur de terminal, de votre environnement graphique (s&rsquo;il y a lieu) et de ses\u00a0param\u00e8tres, certaines combinaisons de touches seront\u00a0d\u00e9j\u00e0 configur\u00e9es (p.ex: Ctrl-Gauche et Ctrl-Droit pour sauter entre les\u00a0mots ainsi que\u00a0les touches Home et End pour rapidement passer \u00e0 la fin et au d\u00e9but de la ligne d&rsquo;entr\u00e9e) en plus des combinaisons de Bash. Malheureusement, ces combinaisons ne seront pas n\u00e9cessairement disponibles sous\u00a0diff\u00e9rents environnements. Cependant, les combinaisons de touches qui suivent le seront.<\/p>\n<p><strong>Ctrl-a\u00a0<\/strong>ram\u00e8ne\u00a0le curseur au d\u00e9but de la ligne tandis que\u00a0<strong>Ctrl-e<\/strong>\u00a0le d\u00e9place \u00e0 la fin.<em>.<\/em><\/p>\n<p><strong>Alt-f <\/strong>d\u00e9place\u00a0le curseur vers l&rsquo;avant d&rsquo;un mot tandis que\u00a0<strong>Alt-b<\/strong>\u00a0accomplit l&rsquo;inverse.<\/p>\n<p><strong>Alt-Retour<\/strong>\u00a0efface le dernier mot.<\/p>\n<p><strong>Ctrl-u\u00a0<\/strong>efface tout \u00e0 partir du curseur jusqu&rsquo;au d\u00e9but de la ligne d&rsquo;entr\u00e9e,\u00a0<strong>Ctrl-k\u00a0<\/strong>efface tout \u00e0 partir du curseur jusqu&rsquo;\u00e0 la fin de la ligne d&rsquo;entr\u00e9e et <strong>Ctrl-y<\/strong>\u00a0retourne ce qui vient d&rsquo;\u00eatre effac\u00e9.<\/p>\n<p><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/cutpaste.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2255\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/cutpaste.gif\" alt=\"cutpaste\" width=\"400\" height=\"28\" \/><\/a><\/p>\n<p><strong>Ctrl-e Ctrl-x <\/strong>ouvre un \u00e9diteur texte (tel que sp\u00e9cifi\u00e9 par la variable d&rsquo;environnement $EDITOR) avec le contenu de la ligne de capture\u00a0de commande. Le contenu de l&rsquo;\u00e9diteur est ex\u00e9cut\u00e9 lors de sa fermeture.<\/p>\n<p>Enfin,\u00a0<strong>Ctrl-_<\/strong>\u00a0annule les dernier changements.<\/p>\n<h3>Historique\u00a0de commande<\/h3>\n<p>Aucun utilisateur ne devrait \u00eatre contraint\u00a0\u00e0 explorer\u00a0manuellement l&rsquo;historique de commandes seulement \u00e0\u00a0l&rsquo;aide des\u00a0touches fl\u00e8ches vers le haut ou vers le bas. La combinaison <strong>Ctrl-r<\/strong>, l&rsquo;une des combinaisons les plus utiles de la Bash shell, offre la possibilit\u00e9 de faire une recherche dans l&rsquo;historique de commandes.<\/p>\n<p><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/ctrlr-1.gif\"><img decoding=\"async\" class=\"alignnone wp-image-2250 size-full\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/ctrlr-1.gif\" alt=\"ctrlr\" width=\"400\" height=\"28\" \/><\/a><\/p>\n<p>En fait, Bash offre une panoplie d&rsquo;op\u00e9rations sur l&rsquo;historique de commandes. Plusieurs de ces commandes commencent par un point d&rsquo;exclamation. Par exemple, tout comme la variable d&rsquo;environnement $_ conserve la derni\u00e8re commande, la commande <strong>!!<\/strong> l&rsquo;ex\u00e9cute. Pour retourner tout les\u00a0param\u00e8tres pass\u00e9s \u00e0 la derni\u00e8re commande, <strong>!:*<\/strong> est votre ami.<\/p>\n<p><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/lastargs.gif\"><img decoding=\"async\" class=\"alignnone wp-image-2252 size-full\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/lastargs.gif\" alt=\"lastargs\" width=\"400\" height=\"28\" \/><\/a><\/p>\n<p>Erreur de frappe? Corrigez votre derni\u00e8re commande\u00a0avec une expression de type\u00a0<strong>^exho^echo<\/strong>,\u00a0rempla\u00e7ant ainsi la premi\u00e8re occurence de \u00ab\u00a0exho\u00a0\u00bb dans votre derni\u00e8re commande avec \u00ab\u00a0echo\u00a0\u00bb.<\/p>\n<p><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/replace.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2267\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/replace.gif\" alt=\"replace\" width=\"400\" height=\"28\" \/><\/a><\/p>\n<p>Une autre combinaison int\u00e9ressante:\u00a0<strong>Alt-.\u00a0<\/strong>(ou\u00a0<strong>ESC-.<\/strong>) ajoute le dernier param\u00e8tre\u00a0de la derni\u00e8re commande \u00e0 la ligne d&rsquo;entr\u00e9e de commande (utile avec les longs noms de\u00a0r\u00e9pertoires)<\/p>\n<h3>T\u00e2ches<\/h3>\n<p><strong>Ctrl-z<\/strong> suspend la t\u00e2che courante, la commande\u00a0<strong>jobs<\/strong> retourne les t\u00e2ches arr\u00eat\u00e9es tandis que <strong>fg<\/strong> retourne une t\u00e2che en avant plan (<strong>bg<\/strong>\u00a0le retourne dans l&rsquo;arri\u00e8re plan comme si la t\u00e2che avait \u00e9t\u00e9 roul\u00e9e avec &amp;). Personnellement, je trouve cette option utile lorsque je saute rapidement entre un\u00a0\u00e9diteur et le\u00a0terminal.<\/p>\n<p>Lors de l&rsquo;ex\u00e9cution de commandes qui risquent de rouler longtemps, un\u00a0<strong>disown<\/strong>\u00a0sur\u00a0une t\u00e2che d\u00e9j\u00e0 en arri\u00e8re plan garantira cette t\u00e2che de\u00a0rouler m\u00eame lorsque confront\u00e9 \u00e0 un signal SIGHUP lors d&rsquo;une\u00a0fin de session (le m\u00eame effet peu \u00eatre r\u00e9alis\u00e9 en roulant la commande avec <strong>nohup<\/strong> et <strong>&amp;<\/strong>).<\/p>\n<p><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/jobs.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2288\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/jobs.gif\" alt=\"jobs\" width=\"400\" height=\"28\" \/><\/a><\/p>\n<h3>Accolades<\/h3>\n<p>L&rsquo;expansion d&rsquo;accolades peut aider avec de petites t\u00e2ches telles le d\u00e9placement de fichiers (p.ex.\u00a0<strong>mv somefile{.txt,.bak}<\/strong>) ou la d\u00e9l\u00e9tion d&rsquo;une s\u00e9rie sp\u00e9cifique de fichiers avec des\u00a0noms semblables (p. ex.\u00a0<strong>rm somefile{1,2,3,5,8}.txt<\/strong>).<\/p>\n<h3><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/braces.gif\"><img decoding=\"async\" class=\"alignnone wp-image-2257 size-full\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/braces.gif\" alt=\"braces\" width=\"400\" height=\"28\" \/><\/a><\/h3>\n<h3>Navigation<\/h3>\n<p>La variable d&rsquo;environnement\u00a0\\$OLDPWD contient\u00a0automatiquement le dernier r\u00e9pertoire (\\$PWD contient le r\u00e9pertoire courant). En passant <strong>&#8211;<\/strong> \u00e0 <strong>cd<\/strong>, votre\u00a0r\u00e9pertoire de travail changera \u00e0 ce\u00a0dernier.<\/p>\n<p><a href=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/cdmin.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2269\" src=\"https:\/\/bioinfo.iric.ca\/wpbioinfo\/wp-content\/uploads\/2016\/05\/cdmin.gif\" alt=\"cdmin\" width=\"400\" height=\"28\" \/><\/a><\/p>\n<h3>M\u00e9nage<\/h3>\n<p>Pour mettre de l&rsquo;ordre dans vos id\u00e9es et\/ou passer \u00e0 autre chose,\u00a0<strong>Ctrl-l<\/strong>\u00a0effacera les vieilles commandes de l&rsquo;\u00e9cran tandis que <strong>reset<\/strong> recommencera la\u00a0session.<\/p>\n<h3>Statistiques<\/h3>\n<p>Finalement, cette\u00a0combinaison de commandes vous aidera \u00e0 mieux comprendre l&rsquo;usage de votre interpr\u00e9teur de commandes Bash\u00a0en vous donnant un\u00a0d\u00e9compte de vos\u00a0commandes les plus utilis\u00e9es.<\/p>\n<p><code>history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] \" \" CMD[a]\/count*100 \"% \" a;}' | grep -v \".\/\" | column -c3 -s \" \" -t | sort -nr | nl | head -n10<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le meilleur outil du bio-informaticien est sans doute son interpr\u00e9teur. Bien que plusieurs\u00a0l&rsquo;aient\u00a0d\u00e9j\u00e0 dompt\u00e9, il arrive souvent \u00e0\u00a0certains d\u00e9butants de se retrouver \u00e0 r\u00e9p\u00e9ter p\u00e9niblement certaines s\u00e9quences lorsqu&rsquo;il existe une solution plus rapide (il m&rsquo;arrive encore de me retrouver\u00a0dans la m\u00eame situation!). Jetons un coup d&rsquo;oeil aux commandes et raccourcis de l&rsquo;interpr\u00e9teur de commandes Bash les plus utilis\u00e9es. Cette liste ne tente aucunement d&rsquo;\u00e9num\u00e9rer toutes les fonctionalit\u00e9s de Bash mais plut\u00f4t de regrouper certains raccourcis clef qui pourront\u00a0possiblement \u00e9conomiser un <a href=\"https:\/\/bioinfo.iric.ca\/fr\/realise-ton-potentiel-bash\/\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[88,70],"tags":[],"class_list":["post-2261","post","type-post","status-publish","format-standard","hentry","category-informatique","category-scripts"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/2261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/comments?post=2261"}],"version-history":[{"count":27,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/2261\/revisions"}],"predecessor-version":[{"id":3294,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/2261\/revisions\/3294"}],"wp:attachment":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/media?parent=2261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/categories?post=2261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/tags?post=2261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}