Detener la ejecución automática del terminal al pegar un comando


27

Correcto, esta es una característica un poco molesta porque algo sucede y otras veces no es muy extraño.

Pego un comando en el terminal con el fin de ajustar sus argumentos, y a veces ejecuta el segundo que lo pego. A veces no.

Esto va desde vergonzoso (publicar comentarios sin sentido en un IRC) hasta peligroso.

¿Cómo puedo desactivar esta función para siempre? Nunca, nunca, nunca quiero que el terminal se ejecute automáticamente cuando lo pegue.


puede ser de interés - bbs.archlinux.org/viewtopic.php?id=95548 , también las personas han hecho exploits al ocultar contenido en una copia / pegar reddit.com/r/linux/comments/1bv54e/…
Mateo

1
Wow, una característica debería estar integrada en Ubuntu para detener esto. ¿Cuándo querría pegar un retorno de carro en la terminal?
Starkers

una de las soluciones sería usar algo como oh-my-zsho cualquier otro reemplazo de terminal.
Pramesh Bajracharya

Respuestas:


28

No hay ejecución automática. Probablemente también esté copiando un salto de línea (o más) después del comando.

Si pega un comando con un salto, el shell (línea de comando) piensa que usted mismo presiona el botón de descanso (Entrar, Volver).


Esta respuesta solo explica por qué OP está obteniendo el comportamiento no deseado. Sin embargo, en otra respuesta, hay una solución real al problema del OP.


55
Es cierto, pero la pregunta es cómo detenerlo si es posible :)
Pawel Cioch

1
Una solución para Putty al menos serverfault.com/questions/731022/…
Pawel Cioch

13

Una solución real es abrir el modo de edición ctrl-x ctrl-ey luego pegar de forma segura su portapapeles en el editor de su elección (comúnmente emacs o vim). Una vez que haya terminado de editar el comando, guarde y salga y se ejecutará en la línea de comando. Este es un buen hábito para comandos largos o complejos, especialmente al pegar hashes de confirmación en comandos git, y puede ayudarlo a evitar algunos resultados a largo plazo.

El editor se puede cambiar configurando las variables VISUAL y EDITOR (estas tienen diferentes significados, ver aquí ).


wow, siempre hay algo que aprender después de décadas de usar Linux :) gracias, esta es la única respuesta que realmente resuelve el problema
törzsmókus

Parece que podría funcionar para un terminal de Linux real, pero desafortunadamente esto no es útil para los usuarios de PuTTY. ¿Alguna otra alternativa?
Codesmith

1
@Codesmith Creo que el comentario de Pawel Chioch sobre la respuesta aceptada puede ser útil para usted: serverfault.com/questions/731022/…
borrascador

1
Buen punto @borrascador! No estoy seguro de cómo me perdí eso. ¡Gracias! :)
Codesmith

5

Antes de pegar, escriba un # y luego pegue su línea. No se ejecutará y puede eliminar el # y presionar enter cuando se hayan completado las modificaciones.


También podría usar trueAKA :, que es básicamente un comando no operativo.
wjandrea

1
@WJAndrea Diría que esto es menos recomendable ya que golpeará el estado de salida ( $?) ... trueno es realmente un nop, devuelve el estado de salida 0. Un comentario, por otro lado, se ignora por completo y, por lo tanto, no lo hará. Alter $?.
brhfl

44
esto solo detendrá la ejecución de la primera línea . Si OP pega un texto con al menos dos saltos de línea, se vuelven a atornillar.
törzsmókus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.