Étiquette : history

17 septembre 2020 /
Lorsque vous essayez d'annuler une transaction yum via yum history undo <id> ou yum history rollback qui inclut systemd dans la liste des paquet, yum va échouer avec cette erreur:
Error: Trying to remove "systemd", which is protected
Pour pouvoir faire la transaction yum , on peut renommer ou supprimer(le fichier sera normalement recréer) /etc/yum/protected.d/systemd.conf et puis de relancer la commande. 

Remarque: ces rétrogradations ne sont pas officiellement prises en charge par Redhat. Pensez aux sauvegardes.
9 mai 2018 /
1. Ignorer certaines commandes dans l’historique
echo 'HISTIGNORE="&:[ ]*:[ls]:*:exit:pwd:clear:history"' >> ~/.bashrc

Amélioration :

  • Utilise ~/.bashrc au lieu de ~/.profile (plus adapté pour les variables Bash interactives).
  • Ajoute [ ]* pour ignorer aussi les commandes commençant par des espaces (redondant avec ignorespace, mais explicite).
  • Guillemets simples pour éviter les problèmes d’échappement.
  • Le signe « & » permet d’éviter d’enregistrer deux commandes successives identiques.
Résultat : ne sauvegarde jamais ls, ps aux, exit, pwd, clear, history, ni les doublons consécutifs (&).
2. Ignorer les commandes commençant par espace + supprimer tous les doublons
echo 'HISTCONTROL=ignorespace:ignoredups:erasedups' >> ~/.bashrc

Explication et amélioration :

  • ignorespace : commande précédée d’un espace ne sera pas enregistrée.
  • ignoredups : ignore les doublons consécutifs.
  • erasedups : supprime tous les doublons dans l’historique (même non consécutifs) pour un historique ultra-propre.

Les trois combinés sont parfaits pour un historique clair et confidentiel.

3. Afficher la date et l’heure avec history:
echo 'HISTTIMEFORMAT="[%a %d %b %Y %T] "' >> ~/.bashrc
 1001  [mar 16 déc 2025 14:32:10] ls -la
 1002  [mar 16 déc 2025 14:35:22] sudo apt update
Très lisible : jour de la semaine, date, mois, année, heure complète.
4. Augmenter fortement la taille de l’historique:
echo 'HISTSIZE=100000' >> ~/.bashrc
echo 'HISTFILESIZE=100000' >> ~/.bashrc

Recommandation raisonnable :

  • 500 000 est énorme (fichier ~/.bash_history de plusieurs Mo).
  • 100 000 est déjà excellent pour un usage intensif (plusieurs années de commandes).
  • Si tu veux vraiment tout garder : 500000 reste acceptable sur un disque moderne.

Bonus très utile, forcer la synchronisation immédiate de l’historique (pour ne rien perdre en cas de crash ou plusieurs sessions) :

echo 'shopt -s histappend' >> ~/.bashrc
echo 'PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"' >> ~/.bashrc
  • histappend : ajoute à la fin du fichier au lieu d’écraser.
  • PROMPT_COMMAND : écrit immédiatement chaque commande dans le fichier et recharge l’historique partagé entre toutes les sessions.
Ajoute ce bloc unique pour tout faire d’un coup :
vi ~/.bashrc
# Historique Bash amélioré
HISTCONTROL=ignorespace:ignoredups:erasedups
HISTIGNORE="&:[ ]*:[ls]:*:exit:pwd:clear:history"
HISTTIMEFORMAT="[%a %d %b %Y %T] "
HISTSIZE=100000
HISTFILESIZE=100000
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

Appliquer immédiatement:

source ~/.bashrc
9 février 2018 /

Pour l’historique les 20 dernières transactions dans l’historique:

yum history list

Modules complémentaires chargés : fastestmirror
ID | Ligne de commande | Date et heure | Action | Modifié
-------------------------------------------------------------------------------
51 | update --skip-broken | 2018-02-09 09:52 | E, I, O, U | 472 EE
50 | -y -q update | 2017-07-24 07:50 | E, I, U | 22 EE
49 | -y -q update | 2017-07-03 07:24 | E, I, U | 73
48 | -y -q update | 2017-06-26 07:41 | E, I, U | 11
47 | -y -q update | 2017-06-19 06:28 | Update | 6
46 | -y -q update | 2017-06-06 07:22 | Update | 4
45 | -y -q update | 2017-05-29 07:24 | E, I, U | 55
44 | -y -q update | 2017-05-24 10:24 | Update | 12
43 | -y -q update | 2017-04-24 06:07 | Update | 18
42 | -y -q update | 2017-04-17 06:09 | E, I, U | 34
41 | -y -q update | 2017-03-30 06:16 | Update | 4
40 | -y -q update | 2017-03-09 07:12 | E, I, U | 60
39 | -y -q update | 2017-02-27 07:10 | E, I, U | 9
38 | -y -q update | 2017-02-20 06:30 | Update | 7
37 | -y -q update | 2017-02-06 06:13 | Update | 1
36 | -y -q update | 2017-01-23 06:20 | E, I, U | 69
35 | -y -q update | 2017-01-16 07:48 | Update | 2
34 | -y -q update | 2017-01-09 06:14 | Update | 51
33 | -y -q update | 2016-12-26 06:32 | E, I, U | 341 EE
32 | -y -q update | 2016-11-03 08:57 | E, I, U | 6

Pour l’historique de toutes les transactions dans l’historique:

yum history list all

Modules complémentaires chargés : fastestmirror
ID | Identifiant utilisateur | Date et heure | Action | Modifié
-------------------------------------------------------------------------------
51 | root | 2018-02-09 09:52 | E, I, O, U | 472 EE
50 | root | 2017-07-24 07:50 | E, I, U | 22 EE
49 | root | 2017-07-03 07:24 | E, I, U | 73
48 | root | 2017-06-26 07:41 | E, I, U | 11
47 | root | 2017-06-19 06:28 | Update | 6
46 | root | 2017-06-06 07:22 | Update | 4
45 | root | 2017-05-29 07:24 | E, I, U | 55
44 | root | 2017-05-24 10:24 | Update | 12
43 | root | 2017-04-24 06:07 | Update | 18
42 | root | 2017-04-17 06:09 | E, I, U | 34
41 | root | 2017-03-30 06:16 | Update | 4
40 | root | 2017-03-09 07:12 | E, I, U | 60
39 | root | 2017-02-27 07:10 | E, I, U | 9
38 | root | 2017-02-20 06:30 | Update | 7
37 | root | 2017-02-06 06:13 | Update | 1
36 | root | 2017-01-23 06:20 | E, I, U | 69
35 | root | 2017-01-16 07:48 | Update | 2
34 | root | 2017-01-09 06:14 | Update | 51
33 | root | 2016-12-26 06:32 | E, I, U | 341 EE
32 | root | 2016-11-03 08:57 | E, I, U | 6
31 | root | 2016-10-25 10:07 | Update | 1
30 | root | 2016-10-13 12:53 | E, I, U | 6
29 | root | 2016-10-10 09:25 | Update | 7
28 | root | 2016-09-26 10:32 | E, I, U | 6
27 | root | 2016-09-19 11:48 | Update | 21
26 | root | 2016-08-29 12:39 | Install | 1
25 | root | 2016-08-29 12:28 | E, I, U | 14
24 | root | 2016-08-04 10:13 | I, U | 85
23 | root | 2016-05-31 09:23 | I, U | 48
22 | root | 2016-04-21 12:03 | Update | 21
21 | root | 2016-04-13 15:19 | Install | 1
20 | root | 2016-04-11 10:06 | Update | 5
19 | root | 2016-04-01 16:42 | I, U | 58
18 | root | 2016-03-21 11:00 | Update | 8
17 | root | 2016-03-17 14:36 | Install | 2
16 | root | 2016-03-17 14:35 | Install | 73
15 | root | 2016-03-17 14:23 | I, U | 356 EE
14 | root | 2015-11-24 10:10 | Install | 1
13 | root | 2015-11-23 17:24 | Install | 34
12 | root | 2015-11-23 16:50 | Erase | 34
11 | root | 2015-11-23 16:45 | Install | 34
10 | root | 2015-11-23 16:44 | Erase | 1
9 | root | 2015-11-23 16:44 | Install | 1
8 | root | 2015-11-23 14:19 | I, U | 7
7 | root | 2015-11-20 16:40 | Install | 1
6 | root | 2015-11-13 10:48 | I, U | 9 EE
5 | root | 2015-11-13 10:47 | Install | 1
4 | root | 2015-11-13 10:17 | I, U | 112 EE
3 | root | 2015-11-13 10:17 | Install | 2
2 | root | 2015-11-13 10:16 | Install | 1
1 | Système <indéfini> | 2015-11-13 09:53 | Install | 490
history list

Valeurs possibles de la colonne « Action »

Action Abbréviation Description
Downgrade D Un paquet au moins a été mis à niveau à une version antérieure.
Erase E Un paquet au moins a été supprimé.
Install I Un nouveau paquet au moins a été installé.
Obsoleting O Un paquet au mons a été marqué comme obsolète.
Reinstall R Un paquet au moins a été réinstallé.
Update U Un paquet au moins a été mis à jour à une version plus récente.

 

Pour afficher les informations sur une transaction en particulier, ici celle ayant pour ID 45:

yum history info 45

Modules complémentaires chargés : fastestmirror
ID de transaction : 45
Temps de début : Mon May 29 07:24:21 2017
Début de RPMDB : 748:54e74ce1d17f254636f404c98638980f9ebd1c71
Temps de fin : 07:27:20 2017 (179 secondes)
Fin de RPMDB : 748:ebcb654b4396ec5735f4dc2f3268a7c7875911c1
Utilisateur : root
Code retour : Réussi
Ligne de commande : -y -q update
Transaction effectuée avec :
Mis à jour  rpm-4.11.3-21.el7.x86_64 @base
Mis à jour  yum-3.4.3-150.el7.centos.noarch @base
Mis à jour  yum-plugin-fastestmirror-1.1.31-40.el7.noarch @base
Paquets modifiés :
Mis à jour  NetworkManager-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  NetworkManager-libnm-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  NetworkManager-team-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  NetworkManager-tui-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  dracut-033-463.el7.x86_64 @base
Mise à jour 033-463.el7_3.1.x86_64 @updates
Mis à jour  dracut-config-rescue-033-463.el7.x86_64 @base
Mise à jour 033-463.el7_3.1.x86_64 @updates
Mis à jour  dracut-network-033-463.el7.x86_64 @base
Mise à jour 033-463.el7_3.1.x86_64 @updates
Mis à jour  firewalld-0.4.3.2-8.1.el7_3.2.noarch @updates
Mise à jour 0.4.3.2-8.1.el7_3.3.noarch @updates
Mis à jour  firewalld-filesystem-0.4.3.2-8.1.el7_3.2.noarch @updates
Mise à jour 0.4.3.2-8.1.el7_3.3.noarch @updates
Mis à jour  glibc-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  glibc-common-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  glibc-devel-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  glibc-headers-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  gtk3-3.14.13-20.el7.x86_64 @base
Mise à jour 3.14.13-20.el7_3.1.x86_64 @updates
Supprimé kernel-3.10.0-514.6.1.el7.x86_64 @updates
Installation kernel-3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kernel-headers-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kernel-tools-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kernel-tools-libs-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kpartx-0.4.9-99.el7_3.1.x86_64 @updates
Mise à jour 0.4.9-99.el7_3.3.x86_64 @updates
Mis à jour  libgudev1-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  libnetfilter_conntrack-1.0.4-2.el7.x86_64 @anaconda
Mise à jour 1.0.6-1.el7_3.x86_64 @updates
Mis à jour  libsmbclient-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  libvirt-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-client-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-config-network-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-config-nwfilter-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-interface-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-lxc-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-network-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-nodedev-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-nwfilter-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-qemu-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-secret-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-storage-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-kvm-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-lock-sanlock-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libwbclient-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  polkit-0.112-11.el7_3.x86_64 @updates
Mise à jour 0.112-12.el7_3.x86_64 @updates
Mis à jour  python-firewall-0.4.3.2-8.1.el7_3.2.noarch @updates
Mise à jour 0.4.3.2-8.1.el7_3.3.noarch @updates
Mis à jour  python-perf-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  rdma-7.3_4.7_rc2-5.el7.noarch @base
Mise à jour 7.3_4.7_rc2-6.el7_3.noarch @updates
Mis à jour  samba-client-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-client-libs-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-common-4.4.4-13.el7_3.noarch @updates
Mise à jour 4.4.4-14.el7_3.noarch @updates
Mis à jour  samba-common-libs-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-common-tools-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-libs-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  seabios-bin-1.9.1-5.el7_3.2.noarch @updates
Mise à jour 1.9.1-5.el7_3.3.noarch @updates
Mis à jour  seavgabios-bin-1.9.1-5.el7_3.2.noarch @updates
Mise à jour 1.9.1-5.el7_3.3.noarch @updates
Mis à jour  systemd-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  systemd-libs-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  systemd-sysv-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  tuned-2.7.1-3.el7_3.1.noarch @updates
Mise à jour 2.7.1-3.el7_3.2.noarch @updates
history info

Pour annuler la dernière transaction:

yum history undo last

Pour annuler une transaction en particulier, ici celle ayant pour ID 51:

yum history undo 51

Pour rejouer une transaction en particulier, ici celle ayant pour ID 51:

yum history redo 51

26 novembre 2015 /

Si vous êtes plusieurs a travailler sur un serveur, et que vous souhaitez connaître les commandes qui ont été exécutées, cela est très simple.

Pour y parvenir, il faut éditer le fichier /etc/bash.bashrc:

vi /etc/bash.bashrc

A la fin du fichier rajouter cela:
PROMPT_COMMAND='history -a >(logger -t "$USER[$PWD] $SSH_CONNECTION")'

Il n’y a plus qu’a soucer pour prendre en compte les modifications:

source /etc/bash.bashrc

Vous pouvez maintenant voir les commandes dans /var/log/messages ou /var/log/syslog (Ubuntu).

2 juillet 2015 /

Comment retrouver une vieille commande passée?

Avec la commande history, tout devient plus facile:

history

Voila le type de retour que vous aurez:


1  umount /mnt
2  cd /var/log
3  ls -lrt
4  cd samba/
5  ls -ltr
6  ls -ltr
7  ls -ltr
8  cat /var/log/messages
9  cat /var/log/messages
10  ls -ltr
11  cat log.x.x.x.x
12  cat log.x.x.x.y
13  yum list | grep cifs
14  cd /c
15  ls -ltr
16  df -k
17  vi /etc/crontab
18  cat /etc/crontab
19  rm /home/starmate/bascule-ok
20  touch /home/starmate/bascule-ok
21  ps -eaf | grep ssh
22  locate ssh
23  hostname
24  cd /usr/local/
25  ls
26  cd Conf/
27  ls -altr
28  cp -p script script.20150331.starmate
29  vi script
30  service sshd restart

Si vous souhaitez rappeler la commande numéro 22 dans la liste, il suffit de faire:

!22

Vous pouvez également vous servir des flèches Haut et Bas pour naviguer dans l’historique des commandes.

Pour répéter la dernière commande il suffit de taper:

!!

ou

!-1

Pour répéter la commande la plus récente avec ssh:

Ssh!

La recherche inversée:

Appuyez sur CTRL+r pour rechercher dans l’historique une commande. Il suffit de taper la première lettre de la commande recherche, comme ssh.

Pour naviguer dans votre recherche il suffit de appuyer de nouveau sur CTRL+r