phhsnews.com


phhsnews.com / Comment utiliser votre historique Bash dans le terminal Linux ou macOS

Comment utiliser votre historique Bash dans le terminal Linux ou macOS


Le shell bash est l'environnement terminal standard inclus avec la plupart des distributions Linux, inclus avec macOS, et disponible pour installation sur Windows 10. Il se souvient des commandes que vous tapez et les stocke dans un fichier historique. Vous connaissez probablement quelques bases de l'histoire de bash, mais c'est beaucoup plus puissant que vous ne le pensez:

Raccourcis clavier

ASSOCIÉS: Les meilleurs raccourcis clavier pour Bash (alias Linux et macOS)

Pour faire défiler 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 déjà utilisées apparaîtront à l'invite

  • Flèche vers le haut ou Ctrl + P : Accédez à la commande précédente de votre historique. Appuyez plusieurs fois sur la touche pour reculer dans les commandes que vous avez utilisées
  • Flèche vers le bas ou Ctrl + N : Passez à la commande suivante de votre historique. Appuyez sur la touche plusieurs fois pour avancer dans les commandes que vous avez utilisées
  • Alt + R : rétablir les modifications apportées à une commande que vous avez tirée 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 précédemment exécutées, plutôt que de les faire défiler une par une.

  • Ctrl + R : Rappelez la dernière commande correspondant caractères que vous fournissez. Appuyez sur ce raccourci et commencez à taper pour rechercher dans votre historique bash une commande
  • Ctrl + O : Exécutez la commande que vous avez trouvée avec Ctrl + R.
  • Ctrl + G : Quittez le mode de recherche historique

Afficher votre historique de bash

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

history

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

CONNEXION: Devenez un utilisateur Linux avec ces 8 astuces

Vous pouvez faire ce que vous voulez avec la sortie. Par exemple, vous pouvez le rediriger vers la commandegreppour rechercher l'historique de vos commandes.

Historique | grep your_search

Vous pouvez également le rediriger vers la commandetailpour afficher seulement 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.

historique | tail -5

Exécuter les commandes de votre historique

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, connu sous le nom de "bang". Tapez les simplement à l'invite et appuyez sur Entrée pour les exécuter comme si vous lanciez une autre commande

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

! #

Par exemple, disons que vous vouliez exécuter la 12ème commande à partir de votre historique de bash. C'est la commande avec un "12" à gauche lorsque vous exécutez la commandehistory. Vous tapez la commande suivante.

! 12

Pour relancer 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 Haut pour afficher la commande précédente et d'appuyer sur Entrée.

!!

Vous pouvez également renvoyer à une commande un certain nombre de lignes en arrière. Par exemple,! - 2exécute l'avant-dernière commande exécutée.!!signifie la même chose que! - 1.

Cette extension fonctionne n'importe où sur la ligne. Vous pouvez ajouter ce que vous voulez avant ou après!!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éesudo, en lui donnant les privilèges root. Ceci est particulièrement utile si vous oubliez d'ajoutersudoavant d'exécuter une commande

sudo !!

Ou, par exemple, vous pouvez relancer la commande précédente et rediriger 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. Cela exécutera la dernière commande qui correspond au texte que vous spécifiez:

! text

Donc, si vous avez récemment lancé une commande commençant parping, vous pouvez lancer la commande suivante pour la rechercher. Cela va chercher en arrière dans votre historique, localiser la commande la plus récente commençant par "pi", et l'exécuter immédiatement:

! Pi

Vous pouvez ajouter un: pà l'une des expansions ci-dessus et bash imprime 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

Réutiliser les arguments de votre historique

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

commande! $

Par exemple, disons que vous avez exécuté la commandetouch / home / chris / some_long_file_name_you_dont_want_to_type_again. Vous voulez maintenant exécuter la commandenano / 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! $permet à bash de remplir automatiquement le dernier argument de votre commande précédente.

Ceci seulement remplit le dernier argument. Donc, si vous exécutezping google.com -c 4et que vous exécutezping! $, cela deviendra simplement "ping 4".

Pour corriger cette situation, vous pouvez utiliser l'astuce suivante pour développer le premier argument sur la ligne, plutôt que la dernière:

commande! ^

Donc, si vous avezping google.com -c 4puisping! ^, bash étendra ceci à "ping google.com".

Pour remplir tous les arguments utilisés dans la commande précédente au lieu de simplement un seul argument, vous utiliseriez la commande suivante:

! *

Donc, si vous avez exécutéping! *à la place, bash remplirait automatiquement tous les arguments que vous avez utilisés dans la commande précédente .

Vous pouvez utiliser la même astuce que vous utilisez pour exécuter des commandes de votre historique afin d'obtenir des arguments: utilisez la commande suivante:

commande abc: #

Par exemple, nous avons exécuté la commandesudo hostname ubuntuplus tôt Si nous lançons la commande suivante, bash cherchera en arrière dans l'historique pour trouver la dernière commande beginni ng avec les lettres que nous tapons et remplissons l'argument que nous spécifions. Donc, si nous lançonsecho! Su: 2, bash cherchera la dernière commande commençant par "su" et remplira son deuxième argument, qui est "ubuntu".

D'autres astuces fonctionnent comme vous pouvez vous y attendre. Par exemple, remplacer le nombre par un astérisque, connu sous le nom de caractère générique, oblige bash à remplir tous les arguments de la commande:

commande! Abc: *

Réexécute la commande précédente et la modifie

Bash permet également réexécutez la commande précédente et spécifiez un élément qui doit être modifié. Cela peut être utile pour corriger une faute de frappe dans une commande. Par exemple, la commande suivante réexécutera la commande précédente en remplaçant le texte "abc" par le texte "xyz".

^ abc ^ xyz

Par exemple, si vous avez accidentellementping gogle.com, vous pouvez alors exécuter^ gog ^ googet bash exécutera la commandeping google.comà la place.

Où votre historique est stocké et comment l'effacer

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

Parce que 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 historique prêt à être visualisé et utilisé. 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:

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 d'historique que bash se souvient est contrôlé parHISTSIZEvariable. 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 mettre votre historique à zéro, exécutez la commande suivante:

HISTSIZE = 0

session en cours, bash ne stocke aucune entrée de l'historique à moins que vous exécutiez une commande commeHISTSIZE = 1000pour rétablir un certain nombre d'entrées

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 la variableHISTCONTROLsurignorespace

HISTCONTROL = ignorespace

Tapez un espace avant une commande avant de l'exécuter dans le bash shell et la commande s'exécuteront normalement, mais n'apparaîtront 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éfinissezHISTCONTROLsurignoredups

HISTCONTROL = ignoredups

Pour utiliser les fonctionsignorespaceetignoredups, définissezHISTCONTROLvariable àignoreboth.

HISTCONTROL = ignoreboth

Notez que les variables bash que vous avez définies persisteront uniquement pour la session en cours. Vous aurez besoin de les ajouter au fichier .bashrc de votre compte pour que ces valeurs soient automatiquement définies dans chaque session bash que vous démarrerez, si vous préférez cela.

Le shell bash est un outil complexe avec beaucoup plus d'options que celles-ci. Consultez les sections Bash History Builtins et History Expansion dans le manuel officiel de bash pour obtenir des informations plus détaillées et d'autres astuces avancées que vous pouvez utiliser.


Comment corriger un bloc de texte en majuscules

Comment corriger un bloc de texte en majuscules

NE LE DÉTESTEZ-VOUS PAS LORSQUE VOUS AVEZ ATTEINT ACCIDENTELLEMENT UN VERROUILLAGE? Ahem . Pardon. Laisse-moi réessayer. Tu ne déteste pas quand tu touches accidentellement Caps Lock? Si vous ne faites pas complètement attention, vous pourriez écrire un paragraphe entier avant de réaliser votre erreur.

(how-top)

Comment utiliser un clavier physique avec votre iPad ou votre iPhone

Comment utiliser un clavier physique avec votre iPad ou votre iPhone

Votre iPad et votre iPhone sont équipés de claviers tactiles à l'écran, mais rien ne vous empêche de connecter un bon clavier physique à l'ancienne et de taper sur ça. Voici comment commencer Ce dont vous aurez besoin Heureusement, vous n'avez pas besoin de beaucoup de choses pour cela - juste un clavier Bluetooth.

(how-top)