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:
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
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.
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 commandegrep
pour rechercher l'historique de vos commandes.
Historique | grep your_search
Vous pouvez également le rediriger vers la commandetail
pour 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
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,! - 2
exé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'ajoutersudo
avant 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
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 4
et 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 4
puisping! ^
, 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 ubuntu
plus 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: *
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 ^ goog
et bash exécutera la commandeping google.com
à la place.
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é parHISTSIZE
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 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 = 1000
pour rétablir un certain nombre d'entrées
Bash vous permet d'ignorer les entrées d'historique commençant par un espace si vous définissez la variableHISTCONTROL
surignorespace
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éfinissezHISTCONTROL
surignoredups
HISTCONTROL = ignoredups
Pour utiliser les fonctionsignorespace
etignoredups
, définissezHISTCONTROL
variable à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.
Les meilleures alternatives iTunes pour macOS
ITunes est un gros problème. Gonflé et lourd, iTunes continue la tendance actuelle d'Apple d'avoir perdu son mojo de conception. Mais ne craignez rien: il existe de très bonnes alternatives iTunes pour macOS Sierra. CONNEXION: Les plus grandes erreurs de conception Apple a fait au cours des deux dernières années Nos exigences pour remplacer iTunes sont assez simples: un besoin de remplacement être facile à utiliser et jouer sans douleur notre musique, et il devrait inclure une médiathèque pour tout organiser.
Activation de l'authentification à deux facteurs sur votre compte Nintendo
Nintendo vous permet désormais d'activer la validation en deux étapes, une forme d'authentification à deux facteurs, pour votre compte Nintendo. Chaque fois que vous vous connectez à votre compte depuis un Nintendo Switch, sur le Web ou via une application mobile, vous devez entrer un code généré par une application sur votre smartphone ainsi que votre mot de passe.