Historique des commandes sous Linux avec l'heure
Table des matières:
- Utilisation de la commande
history
et des extensions d'historique - Enregistrement de la liste d'historique
- Effacer l'historique
- Modification du comportement de l'historique
- Conclusion
, 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.
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:
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 foisignorespace
etignoredups
.
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.
Comment exécuter Bash sous Ubuntu sous Windows 10

L`activation de Windows Subsystem pour Linux vous permettra d`exécuter Bash sur Ubuntu sous Windows 10, scripts Bash , Outils de ligne de commande Linux, premiers outils Linux
Commande chmod sous linux (autorisations de fichiers)

Sous Linux, l'accès aux fichiers est géré via les autorisations, les attributs et la propriété des fichiers. Ce didacticiel explique comment utiliser la commande chmod pour modifier les autorisations d'accès aux fichiers et aux répertoires.
Comment utiliser la commande linux sleep pour suspendre un script bash

Sleep est un utilitaire de ligne de commande qui vous permet de suspendre le processus d'appel pendant une durée spécifiée. Dans ce tutoriel, nous allons vous montrer comment utiliser la commande Linux sleep.