L'une des commandes les plus utilisées dans le monde UNIX est la commande history. Chaque variante d'UNIX possède la commande history. Le shell bash stocke un historique des commandes saisies, qui peut être utilisé pour répéter des commandes à l'aide de la commande history. Par défaut, il affichera le précédent 1000 commandes qui ont été utilisées.
Voici un exemple de sortie de l'historique des commandes :
# history 1 uname -a 2 clear 3 ssh [email protected] 4 exit 5 ls 6 clear 7 echo "Hello" ........
Le mécanisme d'historique de bash prend en charge une variété de méthodes avancées de récupération de commandes à partir de la liste d'historique. Vous trouverez ci-dessous quelques-unes des façons d'utiliser la commande bash history :
1. Liste des n dernières commandes utilisées
Par défaut, la commande history affiche les 1000 dernières commandes utilisées. Si vous souhaitez répertorier uniquement les dernières commandes lancées par l'utilisateur, utilisez "history n". Par exemple, pour afficher les 5 dernières commandes lancées :
# history 5 504 uname -a 505 who am i 506 date 507 echo "Hi" 508 history 5
2. Répétition de la dernière commande
Pour répéter la dernière commande exécutée :
# echo "I am history" I am history # !! echo "I am history" I am history
3. Répétez la dernière commande en commençant par un caractère
!char =répète la dernière commande commençant par char. Par exemple :
# !uname uname -a Linux geeklab 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
4. Répéter la dernière commande par son numéro
!num =répète une commande par son numéro dans la sortie de l'historique. Par exemple :
# !1010 ls -lrth total 197M -rw-r--r-- 1 root root 512K May 25 2015 file1 drwxr-xr-x 2 root root 4.0K Jun 1 2016 dir1
5. Répéter la dernière commande contenant un caractère
!?commande =répète la dernière commande qui contient (par opposition à commencée avec [!char]) la commande. Exemple :
# echo "I am legend" I am legend # !?legend echo "I am legend" I am legend
6. Répétez la nième dernière commande
!-n =répète une commande entrée n commandes en arrière
# !-3 uname -a Linux VMAX3Linux 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
7. Rechercher une commande dans l'historique et l'exécuter
Ctrl-r =rechercher une commande dans l'historique des commandes et l'exécuter une fois que vous avez trouvé une correspondance.
# (reverse-i-search)`uname': uname -aSolaris :Comment inclure la date et l'horodatage dans l'historique des commandes du shell bash
CentOS / RHEL :Comment obtenir la date et l'heure de la commande exécutée dans la sortie de la commande d'historique
CentOS / RHEL :Comment désactiver l'historique du shell BASH