History .bashrc

Résolu
Bonsoir,
est-ce que quelqu'un pourrait m'expliquer simplement le contenu de mon fichier .bashrc ?
uniquement :

export HISTCONTROL=ignoreboth

export HISTCONTROL=ignoredups

export HISTCONTROL=erasedups

export HISTCONTROL=ignoreboth:erasedups

supprimer les doublons de mon historique par exemple avec
export HISTCONTROL=ignoredups n'a aucun effet...
donc je ne comprends pas les différences.
merci de vos précisions

5 réponses

  1. Modérateur
    Ca peut dépendre de ta version de bash.

    man bash


    ... donne chez moi :

           HISTCONTROL  
                  A  colon-separated  list  of values controlling  
                  how commands are saved on the history list.  If  
                  the  list of values includes ignorespace, lines  
                  which begin with  a  space  character  are  not  
                  saved   in   the  history  list.   A  value  of  
                  ignoredups causes lines matching  the  previous  
                  history  entry  to  not  be  saved.  A value of  
                  ignoreboth is  shorthand  for  ignorespace  and  
                  ignoredups.   A  value  of erasedups causes all  
                  previous lines matching the current line to  be  
                  removed  from the history list before that line  
                  is saved.  Any value not in the above  list  is  
                  ignored.   If HISTCONTROL is unset, or does not  
                  include a valid value, all lines  read  by  the  
                  shell  parser  are  saved  on the history list,  
                  subject to the value of HISTIGNORE.  The second  
                  and  subsequent  lines of a multi-line compound  
                  command are not tested, and are  added  to  the  
                  history regardless of the value of HISTCONTROL.


    Bonne chance
    1. Contributeur
      hello
      HISTCONTROL
      ...
      Si elle contient la valeur ignoredups, une ligne correspondant exactement à la ligne de commande précédente ne sera pas dupliquée dans l'historique.

      ce ne sont pas tous les doublons, mais les lignes identiques qui se suivent qui sont ignorées
      http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/bash.1.html
      1. Bonjour à vous deux et merci!
        effectivement Mamiemando, mon bash indique ça et il vaudrait mieux que je prenne le condensé, c'est à dire ignoreboth et erasedups :
        export HISTCONTROL=ignoreboth:erasedups est déjà dans mon fichier .bashrc
        mais j'ai également :
        export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups

        sauf que la valeur erasedups "devraient" prendre en considération toutes les lignes qui précèdent ma ligne courante, donc retirer les anciennes identiques?
        et c'est là que ça pose problème chez moi, parce que cette ligne, je l'ai ajoutée depuis longtemps et j'obtiens toujours des doublons depuis...et même encore actuellement, les commandes identiques que j'ajoute ne sont pas ignorées. Est-ce qu'il y a quelquechose que je n'ai pas compris?
        merci de votre aide
        1. Contributeur
          il faut séparer les éléments par : et non pas ,
          export HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups
          1. oh super!
            c'est corrigé et cette fois tout fonctionne!
            merci beaucoup
            résolu!