<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Divers - Alain ARDITI&#039;s blog</title>
	<atom:link href="https://alain.arditi.fr/category/divers/feed/" rel="self" type="application/rss+xml" />
	<link>https://alain.arditi.fr/category/divers/</link>
	<description>Aide mémoire informatique</description>
	<lastBuildDate>Thu, 20 Nov 2025 21:40:23 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://alain.arditi.fr/wp-content/uploads/2020/04/cropped-ARDITI_Alain_20200326_512x512-32x32.jpg</url>
	<title>Archives des Divers - Alain ARDITI&#039;s blog</title>
	<link>https://alain.arditi.fr/category/divers/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Faut-il supprimer l&#8217;en-tête X-Magento-Cache-Debug ?</title>
		<link>https://alain.arditi.fr/2023/02/24/faut-il-supprimer-len-tete-x-magento-cache-debug/</link>
		
		<dc:creator><![CDATA[Alain ARDITI]]></dc:creator>
		<pubDate>Fri, 24 Feb 2023 11:13:44 +0000</pubDate>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Varnish]]></category>
		<guid isPermaLink="false">https://alain.arditi.fr/?p=1128</guid>

					<description><![CDATA[<p>Comme la documentation Magento l’indiquait, si on était en mode production, alors on ne voyait pas le header X-Magento-Cache-Debug…. C’était vrai avant 2019 ! Maintenant ce header est renvoyé systématiquement, mais on peut revenir à la configuration de 2019 si on le souhaite !</p>
<p>L’article <a href="https://alain.arditi.fr/2023/02/24/faut-il-supprimer-len-tete-x-magento-cache-debug/">Faut-il supprimer l&rsquo;en-tête X-Magento-Cache-Debug ?</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Comme la documentation Magento l&rsquo;indiquait, si on était en mode production, alors on ne voyait pas le header X-Magento-Cache-Debug&#8230;.</p>



<p>C&rsquo;était vrai avant 2019, le code du fichier varnish6.vcl était le suivant :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">sub vcl_deliver {
    if (resp.http.X-Magento-Debug) {
        if (resp.http.x-varnish ~ " ") {
            set resp.http.X-Magento-Cache-Debug = "HIT";
            set resp.http.Grace = req.http.grace;
        } else {
            set resp.http.X-Magento-Cache-Debug = "MISS";
        }
    } else {
...</pre></div>



<p>Depuis, la configuration Varnish fournie par Magento2 est la suivante :</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">sub vcl_deliver {
    if (resp.http.x-varnish ~ " ") {
        set resp.http.X-Magento-Cache-Debug = "HIT";
        set resp.http.Grace = req.http.grace;
    } else {
        set resp.http.X-Magento-Cache-Debug = "MISS";
    }
...</pre></div>



<p>Bref, on reçoit le header X-Magento-Cache-Debug même quand le Magento est en mode production.</p>



<h2 class="wp-block-heading">Est-ce que c&rsquo;est gênant ?</h2>



<p>Certains sites importants laissent l&rsquo;information, d&rsquo;autres non. On peut imaginer que cette information peut faciliter les dénis de service.</p>



<p>Dans tous les cas, il suffit de remettre la condition de l&rsquo;ancienne version pour supprimer l&rsquo;information&#8230; </p>
<p>L’article <a href="https://alain.arditi.fr/2023/02/24/faut-il-supprimer-len-tete-x-magento-cache-debug/">Faut-il supprimer l&rsquo;en-tête X-Magento-Cache-Debug ?</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A propos de Vi</title>
		<link>https://alain.arditi.fr/2020/04/29/a-propos-de-vi/</link>
		
		<dc:creator><![CDATA[Alain ARDITI]]></dc:creator>
		<pubDate>Wed, 29 Apr 2020 21:31:37 +0000</pubDate>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[vim]]></category>
		<guid isPermaLink="false">https://alain.arditi.fr/?p=161</guid>

					<description><![CDATA[<p>Au démarrage de ma carrière, j&#8217;ai eu le choix comme la plupart des utilisateurs d&#8217;Unix de travailler avec les éditeurs de texte Vi et Emacs. Je faisais du développement C sous Emacs, mais je participais aussi aux installations des stations graphiques. Là, il fallait utiliser Vi, car Emacs n&#8217;était jamais installé d&#8217;origine sur les machines&#8230; </p>
<div class="more-link-container"><a class="more-link" href="https://alain.arditi.fr/2020/04/29/a-propos-de-vi/">Poursuivre la lecture <span class="screen-reader-text">A propos de Vi</span></a></div>
<p>L’article <a href="https://alain.arditi.fr/2020/04/29/a-propos-de-vi/">A propos de Vi</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Au démarrage de ma carrière, j&rsquo;ai eu le choix comme la plupart des utilisateurs d&rsquo;Unix de travailler avec les éditeurs de texte Vi et Emacs.</p>



<p>Je faisais du développement C sous Emacs, mais je participais aussi aux installations des stations graphiques. Là, il fallait utiliser Vi, car Emacs n&rsquo;était jamais installé d&rsquo;origine sur les machines contrairement à Vi qui était présent par défaut sur tous les Unix.</p>



<p>C&rsquo;est ainsi que, finalement je n&rsquo;ai plus utilisé que Vi pour faire du développement C comme un bon tiers des développeurs avec qui je travaillais à la fin des années 80.</p>



<p><a href="https://www.vim.org" target="_blank" rel="noreferrer noopener">Vim</a> a pris la place de Vi depuis de nombreuses années et quand je fais le bilan de mon utilisation de Vim, je note que j&rsquo;en suis quasiment resté à la stricte utilisation de Vi ! Et dans Vi, je n&rsquo;utilise pas plus d&rsquo;un vingtaine de commandes !!!</p>



<p><strong>Le bilan, c&rsquo;est qu&rsquo;avec les années, je connais le minimum de commandes qui me permettent de faire le maximum (tout faire ou presque) !</strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>What Vim Is Not?<br>Vim isn&rsquo;t an editor designed to hold its users&rsquo; hands. It is a tool, the use of which must be learned.</p>
</blockquote>



<p>Afin de limiter l&rsquo;effort d&rsquo;apprentissage, voici la liste des commandes que j&rsquo;utilise.</p>



<span id="more-161"></span>



<h3 class="wp-block-heading">Mode commande et mode édition</h3>



<p>Par défaut, on arrive sur un fichier en mode commande. A tout moment, la touche Esc permet de sortir du mode édition et revenir en mode commande. On se déplace dans un fichier en mode commande. On passe en mode édition pour faire Une modification, puis on revient tout de suite en mode commande. On ne reste pas en mode édition, même si on peut se déplacer avec les flèches&#8230; </p>



<h3 class="wp-block-heading">En mode commande pour me déplacer</h3>



<p>Dans cet article, j&rsquo;écris les touches comme elles sont écrites sur le clavier :<br>j minuscule sera écrit <code>J</code> dans le texte qui suit.<br>j majuscule sera écrit <code>Maj+J</code>. S&rsquo;il n&rsquo;y a pas Maj, c&rsquo;est que c&rsquo;est une minuscule.</p>



<p>A noter que les commande ont très souvent une signification qu&rsquo;il faut absolument connaître pour pouvoir les mémoriser « facilement ».</p>



<p>Je me déplace avec les lettres <code>H, J, K, L,</code> ou <code>W</code> (word) et <code>B</code> (backward) et parfois « espace ». Ca permet de conserver les touches naturelles à beaucoup de programmes Unix/Linux, comme le célèbre <a href="https://www.nethack.org" target="_blank" rel="noreferrer noopener">Nethack</a> dans lequel on se déplace avec les mêmes touches.</p>



<figure class="wp-block-gallery has-nested-images columns-2 tw-fixed-cols wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-medium"><img decoding="async" width="300" height="156" data-id="1199" src="https://alain.arditi.fr/wp-content/uploads/2020/04/Screenshot-2025-11-20-at-21.39.31-300x156.png" alt="Nethack" class="wp-image-1199" srcset="https://alain.arditi.fr/wp-content/uploads/2020/04/Screenshot-2025-11-20-at-21.39.31-300x156.png 300w, https://alain.arditi.fr/wp-content/uploads/2020/04/Screenshot-2025-11-20-at-21.39.31.png 642w" sizes="(min-width: 1280px) 1240px, (min-width: 822px) calc(100vw - 120px), (min-width: 482px) calc(100vw - 80px), calc(100vw - 40px)" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="89" height="125" data-id="1200" src="https://alain.arditi.fr/wp-content/uploads/2020/04/Screenshot-2025-11-20-at-21.44.25.png" alt="Touches pour se déplacer dans Nethack" class="wp-image-1200"/></figure>
</figure>



<p></p>



<p>Je n&rsquo;utilise jamais les flèches du pavé numérique. D&rsquo;ailleurs je n&rsquo;utilise jamais le pavé numérique sur les consoles, car lorsque j&rsquo;installais des serveurs Unix dans les années 80, les pavés numériques étaient inexistants ou n&rsquo;était pas reconnus&#8230; Maintenant, ils le sont, mais je suis bien content de ne pas avoir à les utiliser, comme ça sur les portables, je continue à utiliser les mêmes touches.</p>



<p>Pour me déplacer plus vite dans un fichier, j&rsquo;utilise <code>Ctrl+U</code> et <code>Ctrl+D</code> pour défiler par demi écrans, ça permet de conserver un oeil et de faire la liaison avec le texte qu&rsquo;on vient de voir, pour les fichiers de configuration par exemple.</p>



<p>Et <code>Ctrl+F</code> (forward) <code>Ctrl+B</code> (backward) pour défiler par écran, par exemple les fichiers de logs&#8230;</p>



<p><code>G</code> pour aller à la fin de l&rsquo;écran, et <code>1G</code> pour aller au début, ou <code>nG</code> pour aller ligne n. <code>Ctrl+G</code> pour savoir où je suis dans le fichier.</p>



<p>Et <code>/chaîne</code> pour chercher la « chaîne » de caractère et <code>N</code> pour chercher dans l&rsquo;autre sens. J&rsquo;utilise très rarement ?chaîne qui est la recherche vers le haut&#8230; Je fais <code>/</code> puis <code>N</code> pour repartir dans l&rsquo;autre sens.</p>



<h3 class="wp-block-heading">Pour éditer</h3>



<p>Quelques basiques</p>



<p>O ou <code>Maj+</code>O pour Ouvrir (Open) une nouvelle ligne au-dessous ou au-dessus du curseur<br><code>A</code> ou <code>Maj+A</code> pour ajoute (Append) après le curseur ou à la fin de la ligne<br><code>I</code> ou <code>Maj+I</code> pour insérer (Insert) avant le curseur ou au début de la ligne</p>



<p>Suppressions</p>



<p><code>X</code>, <code>2X</code>, <code>nX</code>&#8230;. pour supprimer 1, 2 ou n caractères, <code>DD</code>, <code>2DD</code>, <code>nDD</code> pour supprimer 1, 2 ou n lignes.<br>Mais aussi <code>DW</code>, <code>2DW</code>, <code>NDW</code> (Delete Word) pour supprimer 1, 2 ou 3 mots. <br><code>CW</code> (Change Word) pour remplacer un mot par un autre</p>



<h3 class="wp-block-heading">Les marques</h3>



<p>Les marques permettent de sélectionner des blocs, en mode natif et non pas en mode « visual ». J&rsquo;utilise toujours une seule marque avec la lettre « A ». <br>En mode commande, je tape <code>MA</code>, la ligne sous le curseur correspond à la marque A.<br>Le rappel de la marque, se fait par <code>'A</code>. En mode commande dès qu&rsquo;on tape <code>'A</code>, on indique la ligne qu&rsquo;on avait marquée A. </p>



<p>Donc si on marque une ligne, qu&rsquo;on va 3 lignes plus bas, et qu&rsquo;on saisit <code>D'A</code>, on supprime les trois lignes entre la marque A et le curseur !<br>En cas d&rsquo;erreur, il suffit de taper <code>U</code> pour undo ou <code>Maj+P</code> pour les coller au dessus du curseur. Notre buffer courant contient les 3 lignes, qu&rsquo;on peut recoller à volonté avec <code>P</code> ou <code>Maj+P</code> !</p>



<p>On peut décaler la ligne courante, le shiftwidth en langage Vi, vers la droite ou vers la gauche avec &gt;&gt; et &lt;&lt; . Mais on peut l’appliquer à toutes les lignes entre le curseur et la marque : &gt;<code>'A</code> ou &lt;<code>'A</code></p>



<h3 class="wp-block-heading">L&rsquo;utilisation du buffer</h3>



<p>C&rsquo;est le principe du copier/couper/coller que permettent les buffers. A chaque fois qu&rsquo;on supprime, par <code>X</code>, <code>DD</code>, <code>nX</code>, <code>nDD</code>, on remplit le buffer courant, qui peut être collé avec <code>P</code> ou <code>Maj+P</code>.</p>



<p>Mais on peut aussi mettre dans le buffer sans couper, en copiant :<br><code>YY</code>, <code>Maj+Y</code> pour copier la ligne courante (Yanked), <code>2Maj+Y</code>, <code>nMaj+Y</code> pour copier 2 lignes, n lignes, qu&rsquo;on pourra coller avec <code>P</code> ou <code>Maj+P</code></p>



<p>On peut aussi mettre un bloc dans le buffer, avec une marque.<br>Si j&rsquo;ai mis une marque 3 ligne au-dessus de mon curseur, si je tape <code>Y'A</code>, je mets dans le buffer les lignes qui se trouvent entre mon curseur et la marque A.</p>



<h3 class="wp-block-heading">La répétition de la dernière commande</h3>



<p>On a vu quelques commandes un peu plus complexes, comme par exemple décaler un bloc vers la droite en tapant <code>&gt;'A</code></p>



<p>Taper <code>. </code>exécute à nouveau la commande précédente. Donc si on veut décaler le bloc d&rsquo;un shiftwidth supplémentaire (&gt;&gt;), il suffit de taper <code>.</code></p>



<p>D&rsquo;une manière plus générale, <code>.</code> exécute à nouveau la dernière modification que l&rsquo;on vient d&rsquo;effectuer là où se trouve le curseur. Si on supprime une ligne avec <code>DD</code>, <code>.</code> supprime à nouveau une ligne, <code>.</code> la suivante, etc&#8230;</p>



<p>Si on insère un <code>;</code> à la de la ligne, avec la suite de touches : <code>Maj+A</code> pour ajouter en fin de ligne, <code>;</code> et <code>Esc</code> pour finaliser la saisie, si on se place sur une autre ligne et qu&rsquo;on tape<code> .</code> on ajoute le <code>;</code> à la fin de la ligne courante !</p>



<p>Mais ça marche aussi avec les remplacements, les suppressions, les insertions.</p>



<p>Par exemple, si dans un fichier je dois remplacer www.arditi.fr par alain.arditi.fr, je vais faire la recherche « <code>/www.arditi.fr</code> » puis <code>CWalainEsc</code> qui va remplacer www par alain. Si je me positionne sur le www.arditi.fr suivant, grâce à <code>N</code> (next), <code>.</code> va refaire le remplacement de www par alain. Et je peux continuer ainsi avec <code>N.</code>,<code> N.</code>,<code> N.</code> !!!!</p>



<p><strong>Cette facilité à ré-exécuter des commandes plus ou moins complexes, mais une commande unique malgré tout, va nous contraindre à trouver comment faire des modifications en une seule commande, de manière à pouvoir la répéter avec <code>.</code> !!</strong> </p>



<p>C&rsquo;est avec cet objectif en tête qu&rsquo;on va travailler sous Vi quand on fait des modifications de fichiers de configuration. Activité d&rsquo;édition quasiment majoritaire d&rsquo;un administrateur système à la différence d&rsquo;un développeur qui va écrire du code.</p>



<p>Par exemple, si je veux remplacer www.arditi.fr par alain.arditi.net, si je fais un <code>CW</code> pour alain et un autre <code>CW</code> pour net, le <code>.</code> n&rsquo;exécutera que la dernière des deux commandes&#8230;. Si je veux utiliser <code>.</code> il faut que je trouve commande modifier tout d&rsquo;un coup. Un moyen simple, c&rsquo;est de compter les mots (words) et changer le bon nombre de mots. Ici <code>5CW</code> remplace www.arditi.fr, il faut saisir alain.arditi.net puis <code>Esc.</code> <code>N.</code> fera le même remplacement sur le prochain www.arditi.fr !!!</p>



<p>Petit à petit, on essaie de trouver comment modifier d&rsquo;un seul coup le bloc qu&rsquo;on cherche à remplacer plusieurs fois !</p>



<p>D&rsquo;où l&rsquo;intérêt des commandes :</p>



<p><code>CW</code>, <code>CMajW</code> pour changer jusqu&rsquo;au prochain espace, <code>C$</code> pour changer jusqu&rsquo;à la fin de la ligne ou <code>C/pattern</code> pour changer jusqu&rsquo;à la pattern !!! Mais dans ce dernier cas, le N suivant prend la pattern&#8230;.<br>Il y a quelques tricks à connaître. Mathieu Blanc qui a travaillé quelques années avec moi, utilise <code>7CW</code> pour remplacer une adresse IPV4. Après l&rsquo;avoir fait quelques fois, ça reste à tout jamais ancré dans le cerveau ! </p>



<p>Alors vous me direz, mais pourquoi ne pas utiliser, le mode commande :<br><code>:1,$ s/www.arditi.fr/alain.arditi.net/g</code><br>Parce que dans le mode commande, on remplace tout. Notez le s pour Substitute et le / comme séparateur. A noter que n&rsquo;importe quel caractère peut faire office de séparateur. Ainsi pour remplacer /tmp par /home/aa2, on pourrait utiliser : <br><code>:1,$ s@/tmp@/home/aa2@g</code>. </p>



<p>Dans la pratique, pour un fichier de configuration avec quelques remplacements, j&rsquo;utilise <code>C</code> (Change), car je vois la ligne avant chaque remplacement et quand il y a beaucoup de remplacements, largement plus d&rsquo;une dizaine, j&rsquo;utilise <code>:s</code> (Substitute), car là, il faut souvent travailler plus finement le remplacement&#8230;</p>



<h3 class="wp-block-heading">Commenter un bloc</h3>



<p>Il y a des cas, où il est intéressant de mettre un bloc en commentaire, par exemple mettre des # en début de ligne dans un Shell script.</p>



<p>Alors, on peut faire <code>I#Esc</code> pour insérer le #, puis <code>J</code> pour aller à la ligne suivante et taper <code>.</code>, puis <code>J.</code>, <code>J.</code>, etc&#8230;</p>



<p>Mais on peut, lorsque le bloc est plus grand que quelques lignes, passer en mode visual et insérer le # pour toutes les lignes du bloc : <br><code>Ctrl+V</code> passage en mode bloc<br>Sélectionner le bloc avec les flèches, et laisser le curseur en début de ligne, puis taper<br><code>Maj+I#Esc</code> et tout le bloc va se retrouver avec un # en début de ligne.</p>



<h3 class="wp-block-heading">Effacer ses modifications</h3>



<p>Avec <code>U</code> (Undo) ou <code>Maj+U</code> on peut effacer une modification et revenir en arrière, et ceci autant de fois qu&rsquo;on le souhaite, à la différence de vi. Mais on peut aussi revenir au fichier dans l&rsquo;état de sa dernière sauvegarde avec <code>:e!</code> On relit le fichier en cours depuis le disque.</p>



<h3 class="wp-block-heading">Sauvegarder son travail</h3>



<p>Il y a plusieurs manières de quitter Vi, plus d&rsquo;une dizaine, plus ou moins subtiles. Mais j&rsquo;utilise le set minimal suivant, par ordre d&rsquo;utilisation :</p>



<p><code>:WQ</code> sauvegarde et quitte (Write and Quit)<br><code>:Q!</code> quitter sans sauvegarder<br><code>:W!</code> pour sauvegarder un fichier en lecture seule (mais qui nous appartient r&#8211;r&#8211;r)<br><code>:Q</code> quitter<br><code>:Wnom_de_fichier</code> quand on n&rsquo;a pas réussi à écraser le fichier par la commande précédente. On sauvegarde dans un nouveau fichier.<br><br>D&rsquo;une manière générale, si on ne souhaite pas modifier un fichier, mais uniquement voir son contenu, le mieux est d&rsquo;utiliser les commandes « less » ou « view ».<br>« view » est l&rsquo;équivalent de « Vi » en mode lecture seule. <br>Si une fois dans « less » ou »view » vous souhaitez faire une modification, alors dans « less » taper <code>:v</code> et dans « view » faire les modifications comme dans Vi et terminer par <code>:w!</code> pour sauvegarder en passant outre la contrainte « lecture seule ».</p>
<p>L’article <a href="https://alain.arditi.fr/2020/04/29/a-propos-de-vi/">A propos de Vi</a> est apparu en premier sur <a href="https://alain.arditi.fr">Alain ARDITI&#039;s blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
