Page d'accueil » comment » Comment changer rapidement le premier mot d'une commande Bash?

    Comment changer rapidement le premier mot d'une commande Bash?

    Si votre flux de travail contient de nombreuses actions répétitives, il est toujours utile de rechercher des moyens d'améliorer et de rationaliser votre flux de travail. Aujourd'hui, le Q & A SuperUser post contient quelques suggestions utiles pour un lecteur cherchant à améliorer son flux de travail..

    La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..

    Capture d'écran fournie par Matt Joyce (Flickr).

    La question

    SuperUser reader coin veut savoir comment changer rapidement le premier mot d'une commande bash:

    Je voudrais améliorer mon flux de travail dans bash et réalisé que je voulais souvent exécuter la même commande sur un exécutable différent.

    Quelques exemples

    1.) Git

    2.) Bash

    Je sais que je peux frapper Ctrl + a puis Del supprimer le premier mot, mais je me demande s'il existe un moyen plus rapide de le faire.

    Y a-t-il un moyen plus rapide pour que pièce change le premier mot dans les commandes bash?

    La réponse

    Super contributeurs contributeurs Spiff, Hastur, jjlin. et Gustavo Giraldez ont la réponse pour nous. D'abord, Spiff:

    !$ s’agrandit au dernier mot de votre commande précédente. Alors tu pourrais faire:

    Ou

    Il est arrivé que vos exemples ne répètent que le dernier mot, alors! $ A bien fonctionné. Si vous vouliez répéter beaucoup d'arguments et que vous vouliez simplement changer le premier mot, vous pouvez utiliser! *, Qui étend tous les mots de la commande précédente à l'exception du zeroth..

    Voir la section «EXTENSION DE L'HISTORIQUE» de la page de manuel de bash. Il y a beaucoup de flexibilité là-bas.

    Suivi de la réponse de Hastur:

    Je voudrais ajouter un avertissement (voir la réponse de Spiff ci-dessus). Avec! $, Vous n’avez pas le contrôle visuel total de la ligne que vous exécutez. Les résultats peuvent parfois être nocifs, surtout si vous faites une faute d’impression. Il faut ce qu’il faut de l’histoire pour s’étendre sur.

    Donc, si vous écrivez la dernière commande avec un espace vide au début, cette commande ne se terminera probablement pas à partir de l'historique. Lorsque vous exécutez votre nouvelle commande avec! $, Le shell ne prendra pas les paramètres de la dernière ligne de commande tapée, mais uniquement de la dernière partie de l'historique.

    Voici quelques mots et commandes utiles.

    Puis la réponse de jjlin:

    Ctrl + a aller au début de la ligne, puis Alt + d supprimer le premier mot.

    Et notre réponse finale de Gustavo Giraldez:

    Le raccourci du mot supprimer est en fait Meta + d, et Méta est généralement associé à Alt sur des machines Linux. Sur les plateformes où ce n’est pas le cas, une alternative pour obtenir le Méta modificateur est d'utiliser Esc comme préfixe. Vous pouvez en savoir plus sur le Clé méta ici.


    Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.