La puissance de Linux «History Command» dans Bash Shell

La puissance de Linux «History Command» dans Bash Shell

Nous utilisons histoire Commande fréquemment dans nos travaux de routine quotidiens pour vérifier l'historique de la commande ou pour obtenir des informations sur la commande exécutée par l'utilisateur. Dans cet article, nous verrons comment nous pouvons utiliser efficacement la commande historique pour extraire la commande qui a été exécutée par les utilisateurs dans Bash Shell. Cela peut être utile à des fins d'audit ou pour savoir quelle commande est exécutée à quoi date et temps.

Par défaut date et horodatage ne sera pas vu lors de l'exécution histoire commande. Cependant, Bash Shell fournit CLI Outils pour modifier l'historique des commandes de l'utilisateur. Voyons des conseils et des astuces pratiques et du pouvoir de histoire commande.

Exemples de commande d'histoire

1. Liste des commandes Last / toutes les commandes exécutées dans Linux

Exécuter simple histoire La commande de Terminal vous affichera une liste complète des dernières commandes exécutées avec des numéros de ligne.

[[e-mail protégé] ~] $ History 1 ps1 = '\ e [1; 35m [\ [e-mail protégé] \ h \ w] $ \ e [m' 2 ps1 = "\ e [0; 32m [\ [e-mail protégé] \ h \ w] $ \ e [m "3 ps1 =" \ [e-mail protégé] \ h: \ w [\ j] $ "4 ping google.com 5 echo $ ps1 6 tail -f / var / log / messages 7 tail -f / var / log / messages 8 sortir 9 clear 10 historique 11 clear 12 historique

2. Répertoriez toutes les commandes avec la date et l'horodatage

Comment trouver date et horodatage contre commandement? Avec 'exporter' La commande avec la variable affichera l'historique Commande avec un horodat correspondant lorsque la commande a été exécutée.

[[e-mail protégé] ~] $ Export HistTimeFormat = "% F% T" 1 2013-06-09 10:40:12 Cat / etc / Issue 2 2013-06-09 10:40:12 Clear 3 2013-06- 09 10:40:12 Find / etc -Name *.Conf 4 2013-06-09 10:40:12 Clear 5 2013-06-09 10:40:12 History 6 2013-06-09 10:40:12 PS1 = '\ e [1; 35m [\ [e-mail protégé ] \ h \ w] $ \ e [m '7 2013-06-09 10:40:12 ps1 = "\ e [0; 32m [\ [e-mail protégé] \ h \ w] $ \ e [m" 8 2013-06-09 10:40:12 PS1 = "\ [Email Protected] \ H: \ W [\ J] $" 9 2013-06-09 10:40:12 Ping Google.com 10 2013-06-09 10:40:12 Echo $ PS1
Signification des variables HistTimeFormat
% F Équivalent à% y -% m -% d% t remplacé par le temps (% h:% m:% s)

3. Commandes de filtre dans l'histoire

Comme nous pouvons le voir, la même commande est répétée le nombre de fois dans la sortie ci-dessus. Comment filtrer les commandes simples ou non destructrices de l'histoire?. Utilisez le suivant 'exporter'Commande en spécifiant la commande dans HistIgnore = 'ls -l: PWD: Date:' ne sera pas enregistré par le système et ne sera pas montré dans la commande historique.

[[e-mail protégé] ~] $ Export HistIgnore = "LS -L: PWD: Date:"

4. Ignorez les commandes en double de l'histoire

Avec la commande ci-dessous nous aidera à ignorer l'entrée des commandes en double faite par l'utilisateur. Une seule entrée unique sera affichée dans l'histoire, si un utilisateur exécute une même commande plusieurs fois dans une invite bash.

[[Protégé par e-mail] ~] $ Export HistControl = ignoré

5. Commande d'exportation non définie

Une commande d'exportation non à la volée. Exécuter Exportation non définie commande avec variable un par un quelles que soient les commandes exportées par exporter commande.

[[Protégé par e-mail] ~] $ UNSET EXPORT HISTONTROL

6. Enregistrer la commande d'exportation en permanence

Faire une entrée comme suit .bash_profile sauver exporter commandement en permanence.

[[Protégé par e-mail] ~] $ VI .bash_profile # .bash_profile # Obtenez les alias et les fonctions si [-f ~ /.Bashrc]; alors . ~ /.bashrc fi # Environnement et programmes de démarrage spécifiques aux utilisateurs Export HistControl = ignoré Path = $ chemin: $ Home / Bin Export Path

7. Réservez les commandes exécutées de l'utilisateur spécifique

Comment voir l'historique des commandes exécutée par un utilisateur spécifique. Bash garde des registres de l'histoire dans un '~ /.bash_history ' déposer. Nous pouvons afficher ou ouvrir un fichier pour voir l'historique des commandes.

[[Protégé par e-mail] ~] $ VI .bash_history cd / tmp / cd logstalgia-1.0.3 / ./ Configurer Sudo Passwd Root apt-get install libsdl1.2-DEV LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev faire gcc ./ Configurer Faire APT-Get Installer LiBSDL1.2-DEV LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev faire gcc ++ apt-get install libsdl1.2-DEV LIBSDL-IMAGE1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install masql -u root -p apt-get install grync apt-get install unison unison unison

8. Désactiver le stockage de l'histoire des commandes

Certaines organisations ne gardent pas l'historique des commandes en raison de la politique de sécurité de l'organisation. Dans ce cas, nous pouvons modifier .bash_profile fichier (c'est un fichier caché) des utilisateurs et faire une entrée comme ci-dessous.

[[Protégé par e-mail] ~] $ VI .bash_profile # .bash_profile # Obtenez les alias et les fonctions si [-f ~ /.Bashrc]; alors . ~ /.Bashrc fi # Environnement spécifique à l'utilisateur et programmes de démarrage Path = $ Path: $ home / bin Histsize = 0 Export Path .BASH_PROFILE (fin)

Enregistrer le fichier et charger les modifications avec la commande ci-dessous.

[[Protégé par e-mail] ~] $ Source .bash_profile

Note: Si vous ne voulez pas que le système se souvienne des commandes que vous avez tapées, exécutez simplement la commande ci-dessous qui désactivera ou cessera d'enregistrer l'historique à la volée.

[[Protégé par e-mail] ~] $ Export Histsize = 0

Conseils: Recherche 'Historique'Et modifier dans'/ etc / profil ' dossier avec SuperUser. Le changement de fichier affectera à l'échelle mondiale.

9. Supprimer ou claire l'histoire des commandes

Avec en haut et bas Arrow, nous pouvons voir la commande précédemment utilisée qui peut être utile ou peut vous en colère. Supprimer ou effacer toutes les entrées de la liste d'historique de bash avec '-c'Options.

[[e-mail protégé] ~] $ History -C

dix. Commandes de recherche dans l'histoire en utilisant la commande grep

Rechercher la commande via '.bash_history«En tuant votre fichier d'historique dans»grep'Comme ci-dessous. Par exemple, la commande ci-dessous recherchera et trouvera 'PWD'Commande de la liste d'historique.

[[Protégé par e-mail] ~] $ Historique | Grep PWD 113 2013-06-09 10:40:12 PWD 141 2013-06-09 10:40:12 PWD 198 2013-06-09 15:46:23 Histoire | Grep PWD 202 2013-06-09 15:47:39 HISTOIRE | pwd grep

11. Recherchez la commande exécutée enfin

Rechercher la commande précédemment exécutée avec 'Ctrl + R' commande. Une fois que vous avez trouvé la commande que vous recherchez, appuyez surEntrer'Pour exécuter le même appuyez surEsc'Pour l'annuler.

(inverse-i-search) 'source': source .bash_profile

12. Rappeler la dernière commande exécutée

Rappeler une commande spécifique précédemment utilisée. Combinaison de Claquer et 8 (!8) La commande rappellera le numéro 8 Commande que vous avez exécutée.

[[e-mail protégé] ~] $ !8

13. Rappel Enfin Exécuté Spécifique Commande

Rappel Commande utilisée précédemment (netstat -np | grep 22) avec '!'Et suivi de quelques lettres de cette commande particulière.

[[e-mail protégé] ~] $ !net netstat -np | grep 22 (aucune information ne pourrait être lue pour "-p": getEUID () = 501 mais vous devriez être root.) TCP 0 68 192.168.50.2:22 192.168.50.1: 1857 établi - TCP 0 0 192.168.50.2:22 192.168.50.1: 2516 établi - UNIX 2 [] DGRAM 12284 - @ / org / freedesktop / hal / udev_event Unix 3 [] Stream Connected 14522 - UNIX 2 [] DGRAM 13622 - UNIX 3 [] Stream Connected 12250 - @ / var / run / HALD / DBUS-UJAJOMNA0G UNIX 3 [] Stream Connected 12249 - UNIX 3 [] Stream Connected 12228 - / var / run / dbus / system_bus_socket UNIX 3 [] Stream Connected 12227 -

Nous avons essayé de mettre en évidence la commande Power of History. Cependant, ce n'est pas fin. Veuillez partager votre expérience d'histoire avec nous via notre boîte de commentaires ci-dessous.