Bash History: ajouter la dernière commande à un fichier
Résolu
Zyfzyf
Messages postés
4
Statut
Membre
-
Zyfzyf Messages postés 4 Statut Membre -
Zyfzyf Messages postés 4 Statut Membre -
Bonjour :)
Je voudrais créer un script qui récupère la commande passée juste avant pour l'ajouter à un fichier.
Le but est (ou était) de pouvoir écrire "facilement" un script de réinstallation/compilation/configuration(etc.) de mon Raspbian lite.
Je me bat avec la commande history, les variables, les pipes, grep et tail,
mais il me manque pas mal d'expérience de l'ensemble et du détail et un coup de main serait bienvenu!
J'ai ceci qui donne un résultat correct mais je voudrais me débarrasser du nombre d'index et je n'ai pas trouvé de moyen simple:
history | tail -n 2 | head -n 1
j'essaie ceci qui ne donne rien et je ne vois pas pourquoi,
j'ai des difficultés à trouver le bon document explicatif...
VAR=&(history | tail -n 2 | head -n 1)
Salutations !
PS :
Suite de mon travail
pi@raspberrypi:~ $ history | tail -n 2 | head -n 1 | sed --debug -e '/^\s/d'
SED PROGRAM:
/^\\s/ d
INPUT: 'STDIN' line 1
PATTERN: 167 history | tail -n 2 | head -n 1 | sed --debug -e '/^\\z/d'
COMMAND: /^\\s/ d
END-OF-CYCLE:
> toujours rien de concluant
Je voudrais créer un script qui récupère la commande passée juste avant pour l'ajouter à un fichier.
Le but est (ou était) de pouvoir écrire "facilement" un script de réinstallation/compilation/configuration(etc.) de mon Raspbian lite.
Je me bat avec la commande history, les variables, les pipes, grep et tail,
mais il me manque pas mal d'expérience de l'ensemble et du détail et un coup de main serait bienvenu!
J'ai ceci qui donne un résultat correct mais je voudrais me débarrasser du nombre d'index et je n'ai pas trouvé de moyen simple:
history | tail -n 2 | head -n 1
j'essaie ceci qui ne donne rien et je ne vois pas pourquoi,
j'ai des difficultés à trouver le bon document explicatif...
VAR=&(history | tail -n 2 | head -n 1)
Salutations !
PS :
Suite de mon travail
pi@raspberrypi:~ $ history | tail -n 2 | head -n 1 | sed --debug -e '/^\s/d'
SED PROGRAM:
/^\\s/ d
INPUT: 'STDIN' line 1
PATTERN: 167 history | tail -n 2 | head -n 1 | sed --debug -e '/^\\z/d'
COMMAND: /^\\s/ d
END-OF-CYCLE:
> toujours rien de concluant
4 réponses
-
c'est résolu:
history | tail -n 2 | head -n 1 | sed -e 's/^..[0-9]*//' -
Salut,
Un bon tuto sur l'historique du shell ici
Je t'invite aussi à jeter un œil auman history
plein de bons conseils, notamment sur le rappel des commandes.
-
Un autre tuto encore plus détaillé ici
-
-
Merci Zipe !!
J'ai galéré avec le man history, je crois qu'il faut que je me familiarise avec le bash avant de pouvoir comprendre ça en détail, tes tutos vont m'aider :) -
après avoir lu un des tutos, j'ai constaté que :
!! >> fichier
est équivalent à
history | tail -n 2 | head -n 1 | sed -e 's/^\s*[0-9]*..//' >> fichier
mais je suis content d'avoir réviser mes regex ....