IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

.sh_history effacer


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut .sh_history effacer
    Bonjour,
    En environnement ksh, l'historique des commandes est enregistré dans le fichier .sh_history dans la home directory du compte concerné.
    Il se trouve que ce fichier, même si on arrive à le lire, est un fichier data (genre binaire).
    Pour effacer l'historique la commande "history -c" ne fonctionne pas donc à part l'écraser ( par exemple > .sh_history ) je ne vois pas d'autres solutions. Une fois le fichier écrasé, l'historique est bien vide mais au logon il y a plein de message d'erreur car le ksh détecte un fichier historique vide dans un format qui lui plait pas donc il râle...
    Si on fait un file devant un .sh_history normal on obtient "data" et devant un .sh_history qu'on a écrasé on obtient "empty".
    Je pense que les messages d'erreur viennent du format qui n'est pas bon.
    Quelqu'un aurait-il une idée pour effacer le .sh_history sans que le système se plaigne au logon, ou alors si la seule solution est de l'écraser avec un "> .sh_history" une idée pour passer le .sh_history "empty" en data.
    Si on copie une ligne après l'avoir écrasé il passe en "ascii text" et ça lui plait pas non plus.....
    Merci pour vos lumières

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    Bonjour,

    Une fois le fichier écrasé, l'historique est bien vide mais au logon il y a plein de message d'erreur
    pas chez moi. peut-être pas la même version de ksh :
    $ ksh --version
    version sh (AT&T Research) 2020.0.0
    d'ailleurs, quels messages d'erreur, précisément ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut
    Bonjour.

    Version ksh :
    version sh (AT&T Research) 93u+ 2012-08-01

    Commande file du .sh_history :
    .sh_history: data

    Si on le vide :
    > .sh_history

    Un file donne maintenant :
    .sh_history: empty

    On se déconnecte et au logon plein plein de messages de ce type :
    -ksh: hist: 273-272: invalid range

    Merci à toi

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut
    Sans toucher au ksh comment pourrais je éviter ces messages d’erreur ? Quitte à garder une ligne dans l’historique mais comme c’est un «*data*» ... pas simple

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par kevin066 Voir le message
    Sans toucher au ksh comment pourrais je éviter ces messages d’erreur ? Quitte à garder une ligne dans l’historique mais comme c’est un «*data*» ... pas simple
    Ton "garder une ligne dans l'historique" m'inspire une solution, mais elle est un peu "bidouille" sur les bords...
    (Je demande donc aux puristes de ne pas lire ce qui suit... ou alors avec beaucoup d'indulgence!)

    • À faire une seule fois:
      1. Tu effaces le fichier
      2. Tu mets dedans une commande bidon (en demandant gentiment au shell de le faire pour toi (n'est-il pas ton esclave?))
      3. Tu conserves soigneusement une copie du fichier dans cet état (si besoin, depuis un autre shell)
    • À faire à chaque fois que tu veux "remettre à zéro" l'historique:
      • Tu remplaces le fichier par la copie soigneusement conservée


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # Une fois:
    > .sh_history
    # déconnexion / reconnexion (avec plein de messages)
    date
    cp .sh_history .sh_history_date
    Voilà, maintenant tu as une fois pour toutes un ".sh_history_date" minimal.

    Du coup, lorsque tu veux "remettre à zéro" l'historique, il te suffit de l'écraser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp .sh_history_date .sh_history
    Je n'ai pas testé, mais j'imagine qu'à la prochaine connexion, il ne devrait pas y avoir de message d'erreur, non ?

    Bien sûr, il faut l'écraser avec un "cp" et non un "mv", pour pouvoir le refaire autant de fois que tu le souhaites.

    Si jamais la commande cp .sh_history .sh_history_date se retrouve intégrée au ".sh_history" AVANT que la copie ne soit effectivement effectuée et que cela te gêne, tu peux envisager de faire la copie depuis un autre shell, voire un autre compte.

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut
    Hello, merci pour ta réponse précieuse. Je vais tester ça et te dis :-)
    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effacer historique Compte Session utilisateurs
    Par Lekno dans le forum Linux
    Réponses: 4
    Dernier message: 27/11/2015, 09h49
  2. [WD12] Effacer historique saisie d'un champ par programmation
    Par zouzoukha dans le forum WinDev
    Réponses: 2
    Dernier message: 17/04/2010, 16h39
  3. fontion pour effacer l'historique d'IE
    Par foxewizardeur dans le forum Windows
    Réponses: 10
    Dernier message: 09/12/2004, 19h37
  4. [xp]effacer l'historique msn
    Par Dnx dans le forum Messagerie instantanée
    Réponses: 2
    Dernier message: 06/11/2004, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo