Arrêter l'exécution automatique du terminal lors du collage d'une commande


27

À droite, c'est une fonctionnalité légèrement ennuyeuse car quelque chose se produit, et d'autres fois, ce n'est pas très étrange.

Je colle une commande dans le terminal en vue de peaufiner ses arguments, et parfois elle exécute le second je la colle. Parfois non.

Cela va de gênant (poster des commentaires absurdes sur un IRC) à dangereux.

Comment puis-je désactiver définitivement cette fonctionnalité? Je ne veux jamais, jamais, jamais que le terminal s'exécute automatiquement lorsque je le colle.


peut être intéressant - bbs.archlinux.org/viewtopic.php?id=95548 , les gens ont également fait des exploits en cachant le contenu dans un copier / coller reddit.com/r/linux/comments/1bv54e/…
Mateo

1
Wow, une fonctionnalité devrait être intégrée à Ubuntu pour arrêter cela. Quand voudriez-vous jamais coller un retour chariot dans le terminal?
Starkers

l'un des correctifs consisterait à utiliser quelque chose comme oh-my-zshou tout autre remplacement de terminal.
Pramesh Bajracharya

Réponses:


28

Il n'y a pas d'exécution automatique. Vous copiez probablement également un saut de ligne (ou plus) après la commande.

Si vous collez une commande avec une pause, le shell (ligne de commande) pense que vous avez appuyé sur le bouton pause (Entrée, Retour) par vous-même.


Cette réponse explique uniquement pourquoi OP obtient le comportement indésirable. Cependant, dans une autre réponse, il existe une vraie solution au problème du PO.


5
C'est vrai, mais la question est de savoir comment l'arrêter si possible :)
Pawel Cioch

1
Un correctif pour Putty au moins serverfault.com/questions/731022/…
Pawel Cioch

13

Une vraie solution consiste à ouvrir le mode d'édition avec ctrl-x ctrl-epuis à coller en toute sécurité votre presse-papiers dans l'éditeur de votre choix (généralement emacs ou vim). Une fois que vous avez terminé de modifier la commande, enregistrez et quittez et elle s'exécutera sur la ligne de commande. C'est une bonne habitude pour les commandes longues ou complexes, en particulier lorsque vous collez des hachages de validation dans des commandes git, et peut vous aider à éviter des résultats effrayants à long terme.

L'éditeur peut être modifié en définissant les variables VISUAL et EDITOR (celles-ci ont des significations différentes, voir ici ).


wow, il y a toujours quelque chose à apprendre après des décennies d'utilisation de linux :) merci, c'est la seule réponse qui résout réellement le problème
törzsmókus

On dirait que cela pourrait fonctionner pour un vrai terminal Linux, mais malheureusement, cela n'est pas utile pour les utilisateurs de PuTTY. D'autres alternatives?
Codeur

1
@Codesmith Je pense que le commentaire de Pawel Chioch sur la réponse acceptée peut vous être utile: serverfault.com/questions/731022/…
borrascador

1
Bon point @borrascador! Je ne sais pas comment j'ai raté ça. Merci! :)
Codemith

5

Avant de coller, tapez un # puis collez votre ligne. Il ne s'exécutera pas et vous pouvez supprimer le # et appuyer sur Entrée une fois les modifications terminées.


Vous pouvez également utiliser trueAKA :, qui est essentiellement une commande sans opération.
wjandrea

1
@WJAndrea Je dirais que c'est moins conseillé car cela va assommer l'état de sortie ( $?) ... truen'est pas vraiment un nop, il renvoie l'état de sortie 0. Un commentaire, en revanche, est entièrement ignoré et ne le sera donc pas modifier $?.
brhfl

4
cela ne fera qu'exécuter la première ligne . si OP colle un texte avec au moins deux sauts de ligne, ils sont à nouveau vissés.
törzsmókus
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.