Android

Commande History sous Linux (bash history)

Historique des commandes sous Linux avec l'heure

Historique des commandes sous Linux avec l'heure

Table des matières:

Anonim

, nous parlerons de la commande d' history , qui vous permet d'afficher une liste des commandes précédemment exécutées, de parcourir la liste et de manipuler le fichier d'historique.

Utilisation de la commande history et des extensions d'historique

history est un shell intégré, et son comportement peut légèrement différer d'un shell à l'autre. Nous couvrirons la version Bash intégrée de l' history .

Dans sa forme la plus simple, lorsqu'elle est invoquée sans option ni argument, la commande history affiche la liste d'historique entière avec des numéros de ligne.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Taper !n exécute la n-ème commande de la liste d'historique, et !-n la commande n en arrière. Dans l'exemple suivant, nous exécutons la commande sur la ligne 467 :

!467

Une autre façon d'exécuter une commande est d'utiliser l'extension !word . word fait référence à la commande la plus récente commençant par «mot».

En règle générale, l' history affiche de nombreuses lignes de sortie qui ne tiennent pas à l'écran. Pour afficher la sortie une page à la fois, dirigez-la vers un programme de pagination comme less commande more ou less :

history | less

Pour afficher les n dernières lignes, passez le nombre en argument à la commande. Par exemple, pour afficher uniquement les cinq dernières lignes de la liste d'historique, vous devez taper:

history -5

Utilisez les touches fléchées up et down pour parcourir les entrées de la liste. Lorsque la commande que vous avez recherchée s'affiche, appuyez sur Enter pour l'exécuter.

Tapez !! pour exécuter la commande précédente:

!!

C'est particulièrement utile lorsque vous oubliez de perpendiculer une commande avec sudo , et au lieu de retaper la commande, vous pouvez taper:

sudo !!

!-1 est identique à !! et exécute la dernière commande de la liste d'historique !-2 avant-dernière, etc.

^word1^word2^ vous permet de réexécuter la dernière commande en remplaçant "word1" par "word2". Si vous avez accidentellement tapé la sduo command au lieu de la sudo command vous pouvez répéter la commande en utilisant le mot correct avec:

^sduo^sudo^

Utilisez la commande grep pour filtrer la sortie. Par exemple, pour afficher toutes les commandes, y compris «nano», vous devez exécuter:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Maintenant, si vous souhaitez réexécuter la commande nano setup.py tapez simplement:

!356

Une autre façon de rechercher dans l'historique des commandes consiste à appuyer sur Ctrl-R . L'invite changera comme suit et vous pourrez commencer à rechercher une commande précédemment exécutée.

(reverse-i-search)`':

Le shell affichera une ligne correspondante. Pour passer à la suggestion correspondante suivante, appuyez à nouveau sur Ctrl-R .

Consultez le manuel de Bash pour plus d'informations sur l'extension de l'historique, les modificateurs et les désignateurs.

Enregistrement de la liste d'historique

Par défaut, lors du démarrage d'une nouvelle session, Bash lit la liste d'historique à partir du fichier .bash_history . La liste des commandes exécutées dans la session en cours est conservée en mémoire et enregistrée dans le fichier à la fermeture de la session.

L'option -a vous permet d'enregistrer la liste actuelle de l'historique des sessions dans le fichier .bash_history :

history -a

L'option -w écrit la liste complète de l'historique dans le fichier historique.

history -w

Effacer l'historique

La commande d' history vous permet d'effacer la liste d'historique complète ou de supprimer certaines parties.

Pour effacer la liste d'historique, utilisez l'option -c :

history -c

Pour supprimer une ou des lignes spécifiques entre une position de départ et une position de fin de la liste d'historique, utilisez l'option -d .

Par exemple, pour supprimer les lignes entre 365 et 375 (y compris ces lignes), vous devez taper:

history -d 365 375

Lorsqu'un entier négatif est utilisé, les lignes sont décomptées à partir de la fin de la liste d'historique.

Les commandes ci-dessus effacent la liste d'historique, qui est conservée en mémoire, mais ne supprime pas les entrées du fichier .bash_history sur le disque. Pour effacer le fichier, vous devez écrire la liste d'historique dans le fichier:

history -c history -w

Modification du comportement de l'historique

Le comportement de l'historique Bash peut être défini à l'aide de plusieurs variables d'environnement différentes. Lorsque vous modifiez le comportement de l'historique, définissez les variables dans ~/.bashrc ou tout autre fichier de configuration qui est chargé lorsque l'utilisateur se connecte.

Par défaut, Bash conserve 500 lignes dans la liste de l'historique des commandes. La variable HISTSIZE vous permet de modifier cette valeur. Pour le définir sur 10000, ajoutez la ligne suivante à votre fichier .bashrc :

HISTSIZE=10000

La variable HISTCONTROL accepte une liste de valeurs séparées par deux-points qui définissent comment les commandes sont enregistrées dans la liste d'historique:

  • ignorespace - les commandes commençant par l'espace ne sont pas enregistrées dans la liste d'historique. ignoredups - les commandes en double ne sont pas enregistrées. ignoreboth - est un raccourci, comprenant à la fois ignorespace et ignoredups .

HISTCONTROL=ignoreboth

Lorsque la variable HISTTIMEFORMAT est définie, Bash ajoute un horodatage d'exécution pour la commande sur chaque ligne.

Par exemple, si vous définissez:

HISTTIMEFORMAT="%F %T: "

L'historique sera affiché au format suivant:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Conclusion

La commande d' history affiche une liste des commandes précédemment exécutées. Par exemple, vous pouvez utiliser l'historique pour afficher une longue commande que vous avez utilisée auparavant et dont vous ne vous souvenez pas.

terminal historique