Comment utiliser votre historique Bash dans un terminal Linux ou macOS

Table des matières:

Comment utiliser votre historique Bash dans un terminal Linux ou macOS
Comment utiliser votre historique Bash dans un terminal Linux ou macOS

Vidéo: Comment utiliser votre historique Bash dans un terminal Linux ou macOS

Vidéo: Comment utiliser votre historique Bash dans un terminal Linux ou macOS
Vidéo: Astuce 14: ECG de l'Apple Watch - YouTube 2024, Avril
Anonim
Le shell bash est l’environnement terminal standard inclus dans la plupart des distributions Linux, inclus dans macOS et disponible pour l’installation sous Windows 10. Il mémorise les commandes que vous tapez et les stocke dans un fichier historique. Vous connaissez probablement quelques bases de l’histoire de la bash, mais celle-ci est beaucoup plus puissante que vous ne le pensez probablement.
Le shell bash est l’environnement terminal standard inclus dans la plupart des distributions Linux, inclus dans macOS et disponible pour l’installation sous Windows 10. Il mémorise les commandes que vous tapez et les stocke dans un fichier historique. Vous connaissez probablement quelques bases de l’histoire de la bash, mais celle-ci est beaucoup plus puissante que vous ne le pensez probablement.

Raccourcis clavier

Pour parcourir l’historique de votre bash, vous pouvez utiliser quelques-uns des nombreux raccourcis clavier utiles de bash. Appuyez sur ces raccourcis et les commandes que vous avez précédemment utilisées apparaîtront à l’invite.

  • Flèche vers le haut ou Ctrl + P: Aller à la commande précédente de votre historique. Appuyez plusieurs fois sur la touche pour revenir en arrière dans les commandes que vous avez utilisées.
  • Flèche vers le bas ou Ctrl + N: Passe à la commande suivante de votre historique. Appuyez plusieurs fois sur la touche pour avancer dans les commandes que vous avez utilisées.
  • Alt + R: Annulez les modifications apportées à une commande extraite de votre historique si vous l’avez modifiée sur la ligne en cours.

Bash dispose également d’un mode spécial de rappel que vous pouvez utiliser pour rechercher les commandes que vous avez exécutées précédemment, plutôt que de les faire défiler une par une.

  • Ctrl + R: Rappelez la dernière commande correspondant aux caractères que vous avez fournis. Appuyez sur ce raccourci et commencez à taper pour rechercher une commande dans votre historique bash.
  • Ctrl + O: Lance la commande trouvée avec Ctrl + R.
  • Ctrl + G: Quitte le mode de recherche historique sans exécuter de commande.
Image
Image

Voir votre histoire Bash

Vous pouvez imprimer tout l'historique de bash à l'écran en exécutant une seule commande:

history

Vous verrez une liste de toutes les commandes de votre historique bash, avec un nombre à gauche de chacune. La commande avec un «1» à côté est la commande la plus ancienne de votre historique bash, tandis que la commande avec le numéro le plus élevé est la plus récente.

Vous pouvez faire ce que vous voulez avec la sortie. Par exemple, vous pouvez le diriger vers le
Vous pouvez faire ce que vous voulez avec la sortie. Par exemple, vous pouvez le diriger vers le

grep

commande pour rechercher l'historique de vos commandes.

history | grep your_search

Vous pouvez également le diriger vers le
Vous pouvez également le diriger vers le

tail

commande pour afficher uniquement un petit nombre des commandes récentes que vous avez exécutées. Par exemple, la commande suivante affichera les 5 dernières entrées de votre historique.

history | tail -5

Image
Image

Exécuter les commandes de votre histoire

Bash peut rapidement «développer» les commandes précédentes, ou les développer et les modifier. Cette fonctionnalité est appelée «expansion de l'historique» et utilise un point d'exclamation, appelé «bang». Il suffit de les taper à l’invite et d’appuyer sur Entrée pour les exécuter comme pour toute autre commande.

Pour exécuter une commande spécifique de votre historique par son numéro, utilisez la commande suivante:

!#

Par exemple, supposons que vous souhaitiez exécuter la 12ème commande à partir de votre historique bash. C’est la commande avec un «12» à gauche de celle-ci lorsque vous exécutez la

history

commander. Vous tapez la commande suivante.

!12

Pour réexécuter la dernière commande que vous avez exécutée, tapez ce qui suit. Cela a le même effet que d'appuyer une fois sur la flèche vers le haut pour afficher la commande précédente, puis d'appuyer sur Entrée.
Pour réexécuter la dernière commande que vous avez exécutée, tapez ce qui suit. Cela a le même effet que d'appuyer une fois sur la flèche vers le haut pour afficher la commande précédente, puis d'appuyer sur Entrée.

!!

Vous pouvez également faire référence à une commande avec un certain nombre de lignes. Par exemple,

!-2

exécuterait la dernière à la dernière commande que vous avez exécutée.

!!

signifie la même chose que

!-1

This expansion works anywhere on the line. You can add anything you like before or after
This expansion works anywhere on the line. You can add anything you like before or after

!!

ou l'une des autres expressions de cette section. Par exemple, vous pouvez taper la commande suivante pour réexécuter la dernière commande exécutée.

sudo

en lui donnant les privilèges root. Ceci est particulièrement utile si vous oubliez d’ajouter

sudo

avant d'exécuter une commande.

sudo !!

Ou, par exemple, vous pouvez réexécuter la commande précédente et diriger sa sortie vers grep pour rechercher du texte.

!! | grep text

Pour rechercher une commande dans votre historique et l'exécuter, tapez ce qui suit. Ceci exécutera la dernière commande qui correspond au texte que vous spécifiez:
Pour rechercher une commande dans votre historique et l'exécuter, tapez ce qui suit. Ceci exécutera la dernière commande qui correspond au texte que vous spécifiez:

!text

Donc, si vous avez récemment exécuté une commande commençant par

ping

vous pouvez exécuter la commande suivante pour le rechercher. Cela effectuera une recherche en arrière dans votre historique, localisez la commande la plus récente commençant par «

pi

“, Et le lancer immédiatement:

!pi

Vous pouvez ajouter un
Vous pouvez ajouter un

:p

sur l'une des extensions ci-dessus et bash imprimera la commande au terminal sans l'exécuter. Ceci est utile si vous voulez confirmer que vous avez sélectionné la bonne commande avant de l’exécuter.

!12:p

!!:p

!text:p

Image
Image

Réutilisez les arguments de votre histoire

Bash vous permet également d'exécuter une nouvelle commande, mais d'utiliser les arguments des commandes précédentes de votre historique. Cela peut vous aider à réutiliser rapidement des arguments longs ou complexes sans avoir à les retaper.

command !$

Par exemple, disons que vous avez exécuté la commande

touch /home/chris/some_long_file_name_you_dont_want_to_type_again

. Vous voulez maintenant exécuter la commande

nano /home/chris/some_long_file_name_you_dont_want_to_type_again

. Plutôt que de taper le tout à partir de zéro, vous pouvez exécuter:

nano !$

le

!$

obligerait bash à remplir automatiquement le dernier argument de votre commande précédente.

Cela ne remplit que le dernier argument. Donc, si vous courez
Cela ne remplit que le dernier argument. Donc, si vous courez

ping google.com -c 4

puis courir

ping !$

cela ne ferait que s’étendre à «

ping 4

“.

Pour remédier à cette situation, vous pouvez utiliser le truc suivant pour développer le premier argument de la ligne plutôt que le dernier:

command !^

Donc, si vous avez couru

ping google.com -c 4

et ensuite couru

ping !^

bash élargirait ceci à “

ping google.com'

Pour renseigner tous les arguments utilisés dans la commande précédente au lieu d’un seul argument, vous devez utiliser les éléments suivants:
Pour renseigner tous les arguments utilisés dans la commande précédente au lieu d’un seul argument, vous devez utiliser les éléments suivants:

command !*

Donc, si vous avez couru

ping !*

Au lieu de cela, bash remplira automatiquement tous les arguments que vous avez utilisés dans la commande précédente.

Vous pouvez utiliser le même truc que vous utilisez pour exécuter des commandes de votre historique afin d’obtenir des arguments à partir de celles-ci. Utilisez simplement le formulaire suivant.
Vous pouvez utiliser le même truc que vous utilisez pour exécuter des commandes de votre historique afin d’obtenir des arguments à partir de celles-ci. Utilisez simplement le formulaire suivant.

command !abc:#

Par exemple, nous avons exécuté la commande

sudo hostname ubuntu

plus tôt. Si nous exécutons la commande suivante, bash effectuera une recherche en arrière dans l’historique pour trouver la dernière commande commençant par les lettres que nous tapons et complétera l’argument spécifié. Donc, si nous courons

echo !su:2

bash cherchera la dernière commande commençant par “

su

"Et remplissez son deuxième argument, qui est"

ubuntu

“.

D'autres astuces fonctionnent comme prévu. Par exemple, si vous remplacez le nombre par un astérisque, appelé caractère générique, bash remplira tous les arguments de la commande:

command !abc:*

Image
Image

Relancez la commande précédente et modifiez-la

Bash vous permet également de réexécuter la commande précédente et de spécifier quelque chose à modifier. Cela peut être utile pour corriger une faute de frappe dans une commande. Par exemple, la commande suivante relance la commande précédente en remplaçant le texte"

abc

"Dedans avec le texte"

xyz

“.

^abc^xyz

Par exemple, si vous avez accidentellement exécuté

ping gogle.com

vous pourriez alors courir

^gog^goog

et bash exécuterait la commande

ping google.com

au lieu.

Image
Image

Où votre histoire est stockée et comment la supprimer

Le shell bash stocke l’historique des commandes que vous avez exécutées dans le fichier d’historique de votre compte utilisateur sous ~ /.bash_history par défaut. Par exemple, si votre nom d’utilisateur est bob, vous trouverez ce fichier dans /home/bob/.bash_history.

Comme votre historique est stocké dans un fichier, il persiste entre les sessions. Vous pouvez exécuter certaines commandes, vous déconnecter, revenir le lendemain, et ces commandes seront toujours dans votre fichier d’historique, prêtes à être visualisées et utilisées. Chaque compte d'utilisateur possède son propre fichier d'historique avec un historique de commandes distinct.

Pour effacer votre historique bash, vous pouvez exécuter la commande suivante. Ceci efface le contenu du fichier.bash_history de votre compte utilisateur:

history -c

Bash ne mémorise qu'un nombre limité de commandes par défaut, ce qui empêche le fichier d'historique de devenir trop volumineux. Le nombre d'entrées dans l'historique que bash se souvient est contrôlé par le
Bash ne mémorise qu'un nombre limité de commandes par défaut, ce qui empêche le fichier d'historique de devenir trop volumineux. Le nombre d'entrées dans l'historique que bash se souvient est contrôlé par le

HISTSIZE

variable. La valeur par défaut est généralement 500 ou 1000 entrées. Vous pouvez exécuter la commande suivante pour afficher la taille de l'historique bash sur votre système.

echo $HISTSIZE

Pour définir votre historique sur zéro, exécutez la commande suivante.

HISTSIZE=0

Pour la session en cours, bash ne stockera aucune entrée d’historique, sauf si vous exécutez une commande telle que

HISTSIZE=1000

pour le remettre à un certain nombre d'entrées.

Image
Image

Comment ignorer les espaces et les doublons

Bash vous permet d’ignorer les entrées d’historique commençant par un espace si vous définissez le paramètre

HISTCONTROL

variable à

ignorespace.

HISTCONTROL=ignorespace

Tapez un espace avant une commande avant de l'exécuter dans le shell bash et la commande s'exécutera normalement, mais n'apparaîtra pas dans votre historique si cette variable est activée. Cela vous permet de garder votre historique un peu plus propre, en choisissant d'exécuter des commandes sans qu'elles n'apparaissent dans votre historique.

Bash vous permet également d'ignorer les commandes en double qui peuvent encombrer votre historique. Pour ce faire, définissez
Bash vous permet également d'ignorer les commandes en double qui peuvent encombrer votre historique. Pour ce faire, définissez

HISTCONTROL

à

ignoredups.

HISTCONTROL=ignoredups

Pour utiliser les deux
Pour utiliser les deux

ignorespace

et

ignoredups

fonction, définissez le

HISTCONTROL

variable à

ignoreboth.

HISTCONTROL=ignoreboth

Notez que les variables bash que vous définissez ne persisteront que pour la session en cours. Vous devrez les ajouter au fichier.bashrc de votre compte utilisateur pour que ces valeurs soient automatiquement définies dans chaque session bash que vous démarrez, si vous préférez.

Conseillé: