Un terminal Linux exécutant Bash a un historique intégré que vous pouvez utiliser pour suivre ce que vous avez fait récemment. Pour afficher un historique de votre session Bash, utilisez la commande intégrée history
:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
L'history
La commande n'est pas un fichier exécutable sur votre système de fichiers, comme la plupart des commandes, mais une fonction de Bash. Vous pouvez le vérifier en utilisant le type
commande :
$ type history
history is a shell builtin
Contrôle de l'historique
La limite supérieure de lignes dans l'historique de votre shell est définie par le HISTSIZE
variable. Vous pouvez définir cette variable dans votre .bashrc
dossier. Ce qui suit définit votre historique sur 3 000 lignes, après quoi la ligne la plus ancienne est supprimée pour faire place à la commande la plus récente, placée en bas de la liste :
export HISTSIZE=3000
Il existe également d'autres variables liées à l'histoire. Le HISTCONTROL
La variable contrôle l'historique stocké. Vous pouvez forcer Bash à exclure les commandes commençant par un espace vide en plaçant ceci dans votre .bashrc
fichier :
export HISTCONTROL=$HISTCONTROL:ignorespace
Désormais, si vous tapez une commande commençant par un espace, cette commande ne sera pas enregistrée dans l'historique :
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
Vous pouvez également éviter les entrées en double :
export HISTCONTROL=$HISTCONTROL:ignoredups
Maintenant, si vous tapez deux commandes l'une après l'autre, une seule apparaît dans l'historique :
$ ls
$ ls
$ ls
$ history
1 ls
2 history
Si vous aimez ces deux ignores, vous pouvez simplement utiliser ignoreboth
:
export HISTCONTROL=$HISTCONTROL:ignoreboth
Supprimer une commande de l'historique
Parfois, vous faites une erreur et tapez quelque chose de sensible dans votre shell, ou peut-être voulez-vous simplement nettoyer votre historique afin qu'il représente plus précisément les étapes que vous avez suivies pour que quelque chose fonctionne correctement. Si vous souhaitez supprimer une commande de votre historique dans Bash, utilisez le -d
option avec le numéro de ligne de l'élément que vous souhaitez supprimer :
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
Pour arrêter d'ajouter l'history
entrées, vous pouvez placer un space
avant la commande, tant que vous avez ignorespace
dans votre HISTCONTROL
variable d'environnement :
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
Vous pouvez effacer tout l'historique de vos sessions avec le -c
choix :
$ history -c
$ history
$
Leçons d'histoire
En savoir plus sur Bash
- Aide-mémoire de Bash
- Une introduction à la programmation avec Bash
- Guide de l'administrateur système sur les scripts Bash
- Derniers articles sur Bash
Manipuler l'histoire est généralement moins dangereux qu'il n'y paraît, surtout lorsque vous la conservez avec un objectif en tête. Par exemple, si vous documentez un problème complexe, il est souvent préférable d'utiliser votre historique de session pour enregistrer vos commandes car, en les insérant dans votre historique, vous les exécutez et testez ainsi le processus. Très souvent, documenter sans faire conduit à négliger de petites étapes ou à mal écrire des détails mineurs.
Utilisez vos sessions d'histoire au besoin et exercez votre pouvoir sur l'histoire avec sagesse. Bonne piratage de l'histoire !