5 votos

La diferencia entre el comando de secuencia de comandos y copia manual de la terminal de archivo externo?

Tenía curiosidad en saber si hay alguna diferencia en mantener el registro de la terminal de comandos usando script filename y manualmente copiando desde la terminal. Por favor, dígame si existe un poco de diferencias. Lo que sé es que el uso de la secuencia de comandos trae innecesarias las pulsaciones de teclado en un archivo.

6voto

DevRobot Puntos 2580

El script comando crea una secuencia de comandos que contiene todas sus interacciones con el terminal para la sesión actual. Se trata básicamente de crear un volcado de pantalla en vivo y pegar el contenido en un archivo.
Incluye todas las entradas y salidas visibles en el terminal.

El history comando le da todos los comandos introducidos en la terminal desde la primera vez que se utiliza.
Solo se muestran las entradas, ya sea para la sesión actual o para todas las sesiones.

4voto

Tim Puntos 11195

Hay una diferencia, pero no como se podría pensar.

El terminal puede apoyar caracteres ASCII - de 0 a 127. Esto incluye el Western, el Alfabeto latino, incluyendo algunos detalles como el acento grave " y de los signos de puntuación como { y ~.

Así que cuando usted copiar y pegar desde un emulador de terminal que va a copiar los caracteres ASCII en un archivo UTF-8 (lo más probable). Por supuesto, UTF-8 y ASCII son compatibles. Los caracteres del 0 al 127 en UTF-8 son los mismos que los de ASCII.

Cuando la salida a un archivo, será ASCII de forma predeterminada, sin embargo, que puede ser cambiado.

Así que ¿por qué iba alguien a utilizar la redirección a un archivo si es una menos buena codificación? Automatización o de Incompatibilidad.

El terminal que está utilizando (probablemente el Terminal de Gnome o X-Término) es un emulador de terminal - terminal dentro de una ventana gráfica.

Pero algunos terminales no son como este - que son completamente no gráfica, CLI sólo - como el TTY terminales, que se accede con la tecla Ctrl + Alt + FX donde X es un número de 1 a 6. E. g. para acceder a TTY2, utilice Ctrl + Alt + F2.

Estos terminales no tienen ningún ratón - así que usted no puede copiar el resultado, o incluso de desplazamiento.

Si está ejecutando un comando con un montón de salida puede la salida a un archivo y usar nano o vi a la vista, o puede utilizar la less comando, de manera que permita la tecla de flecha de desplazamiento.

Y si tengo un código para el monitor de mi terrible velocidades de internet de lo que puedo conseguir un descuento en el costo de la internet que desee guardar automáticamente la velocidad de un archivo, por ejemplo redirigir la salida de wget a un archivo.

Este es el principal caso de uso - un ordenador puede hacerlo sin ningún humanos de entrada, y sin una interfaz gráfica de usuario. En estos casos, la falta de personajes como

1voto

Serg Puntos 17677

En resumen, script comando capta más que el texto, y en un nivel diferente.

Por ejemplo ls comando. Para producir color de salida, ls añade caracteres especiales para cada entrada(leer más sobre esto aquí). Si usted fuera a llamar a ls mientras script es capturar la salida, los caracteres especiales serán capturados. También la captura de los caracteres de escape que puede haber pulsado con el teclado.

script también captura todo lo que invisible, inferior, a nivel de sistema.

Con el manual de selección de texto y copia, usted está haciendo qué ? La selección de texto en el interior de la gráfica de X server, haga ? Entonces, ¿dónde el texto vienen y van ? Se trata ya prestados, ya de post procesado,coloreada, por lo que no necesariamente contienen los caracteres especiales. También entra en el portapapeles ( que por cierto es uno de los 3 en X server system ), luego al pegar se libera desde el portapapeles.

script es bueno para cuando desea grabar largo de la sesión, y pasa a alguien. Los caracteres especiales no son un problema cuando usted acaba de ejecutar comandos predeterminados, no coloreada (por defecto ls es un alias a ls --color=auto ). Así que usted puede utilizar la barra invertida para escapar de alias\ls o el uso de esta solución de stackoverflow sitio.

Como para copiar-pegar método, es bueno para el cortocircuito de salida que desea transmitir y olvidarse de

Adiciones

También he notado que están más interesados en history vs script para la recodificación de la lista de comandos que entrar en la terminal. La diferencia entre ellos es que la historia sólo mantiene los registros de lo que usted le diga a la terminal para ejecutar. script es como la grabación de su terminal, donde todo es capturado.

Que se van a almacenar los datos de manera diferente también. Mientras que para bash el .bash_history es de texto, shell puede elegir un archivo de datos. Por ejemplo, aquí está la comparación de mi mksh archivo de historial, vs .bash_history, vs typescript

xieerqi@eagle:~$ file MKSHHISTFILE 
MKSHHISTFILE: data
xieerqi@eagle:~$ file .bash_history
.bash_history: UTF-8 Unicode text
xieerqi@eagle:~$ file typescript
typescript: ASCII text, with CRLF, LF line terminators

Con history, es diferente de la concha de shell. bash por defecto mantiene todo en .bash_history, mientras que con conchas como ksh o mksh y dash, el historial de archivos tiene que ser establecido por el usuario. script,por defecto almacena todo en typescript archivo, pero el usuario puede especificar otro archivo.

Finalmente, la historia es una de builtins a una shell, que siempre estarán presentes, pero puede o no puede necesitar para ser configurado. script es una utilidad, que puede o no puede estar presente, pero no necesita ninguna configuración.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: