3Sep

Comment modifier rapidement le premier mot dans une commande Bash?

Si votre flux de travail est rempli de nombreuses actions répétitives, il ne fait jamais de mal de chercher des moyens d'améliorer et de rationaliser votre flux de travail. Le SuperUser Q & A d'aujourd'hui a quelques suggestions utiles pour un lecteur cherchant à améliorer son flux de travail.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

Image reproduite avec l'aimable autorisation de Matt Joyce( Flickr).

La question

SuperUser lecteur pièce veut savoir comment changer rapidement le premier mot dans une commande bash:

Je voudrais améliorer mon flux de travail dans bash et réalisé que je veux souvent exécuter la même commande à un autre exécutable.

Quelques exemples

1.) Git

2.) Bash

Je sais que je peux frapper Ctrl + un puis Del pour enlever le premier mot, mais je me demande s'il y a une manière plus rapide de le faire.

Y a-t-il un moyen plus rapide de changer le premier mot dans les commandes bash?

La réponse

SuperUser contributeurs Spiff, Hastur, jjlin.et Gustavo Giraldez ont la réponse pour nous. Tout d'abord, Spiff:

! $ Se développe jusqu'au dernier mot de votre commande précédente. Donc, vous pourriez faire:

ou

Vos exemples sont arrivés à répéter seulement le dernier mot, alors! $ A bien fonctionné.Si vous aviez en fait beaucoup d'arguments que vous vouliez répéter, et que vous vouliez juste changer le premier mot, vous pouvez utiliser! *, Qui s'étend à tous les mots de la commande précédente, sauf le zéro.

Voir la section "EXPANSION D'HISTORIQUE" de la page de manuel 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 complet de la ligne que vous utilisez. Les résultats peuvent être dangereux parfois, surtout si vous encourez une erreur d'impression. Il prend ce dont il a besoin de l'histoire pour se développer.

Donc, si vous écrivez la dernière commande avec un espace vide au début, alors cette commande ne finira 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 seulement de la dernière partie de l'historique.

Voici d'autres mots et commandes utiles.

Alors la réponse de jjlin:

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

Et notre réponse finale de Gustavo Giraldez:

Le raccourci de mot de suppression est réellement Meta + , et Meta est habituellement mappé à Alt sur des machines de Linux. Sur les plateformes où ce n'est pas le cas, une alternative pour obtenir le modificateur Meta est d'utiliser Esc comme préfixe. Vous pouvez en savoir plus sur le Meta Key ici.

Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.