Creo que mucha gente sabe qué es un archivo de sistema, pero poca gente sabe qué es el flujo de texto. De hecho, el flujo de texto no es difícil de entender. Las siguientes series pequeñas le darán una introducción detallada al flujo de texto de Linux. Aprendamos juntos.
Secuencias de texto
Los archivos se utilizan para el almacenamiento de datos, que es equivalente a una casa que almacena datos. Dijimos antes que los llamados datos son una secuencia de 0 o 1, pero estrictamente hablando, Linux usa bytes como la unidad de datos, es decir, la secuencia es una unidad por ocho bits (ocho bits). El rango decimal correspondiente es de 0 a 255). Usando la codificación ASCII, puede convertir dicho byte en un carácter. Por lo tanto, en Linux, los datos de los que estamos hablando pueden expresarse en caracteres, es decir, en forma de texto.
De hecho, si procesa caracteres en bits, la máquina será más fácil de leer y transferir, y la eficiencia será mayor. Pero ¿por qué Linux sigue procesando en bytes? La razón es que es más fácil convertir datos en caracteres en unidades de bytes, en lugar de procesar datos en unidades de bits. Los caracteres son más fáciles de leer para los humanos que el aburrido 0 y 1. Sin embargo, no todos los datos están diseñados para ser legibles, por ejemplo, los diversos caracteres contenidos en el ejecutable no tienen sentido para las personas (porque el ejecutable es para que la máquina lo entienda). Pero Linux aún procesa todos los archivos en bytes, para permitir que todos los archivos compartan un sistema de archivos virtual, lo que reduce la complejidad del diseño de Linux.
(&yquo; todo es un archivo y " es una de las filosofías del diseño de UNIX que normalmente circula, pero Linus corrige esto y cambia a "todo es un flujo de bytes".)
Sin embargo, los datos no se resuelven para siempre después de encontrar su propio archivo. A menudo se lee en la memoria (como ir a trabajar en la oficina), se envía a un dispositivo externo (como ir a un hotel de vacaciones) o se muda a otra casa. En tal proceso de reubicación, los datos son como un flujo de personas que caminan en fila, lo llamamos flujo de texto (o flujo de bytes). Sin embargo, los métodos de conexión entre diferentes dispositivos en una computadora varían mucho. La conexión de la memoria al archivo es como escalar una montaña. Desde la memoria a los periféricos, parece que cruza un río. Para este fin, Linux también define las transmisiones como un estándar para construir caminos que se conectan entre sí. La ventaja de Stream es que todas las carreteras son iguales, ya sea desde la memoria a los periféricos o desde la memoria a los archivos (en cuanto a piedras o tierra debajo de la carretera, no tiene que preocuparse por eso).
Revisemos la frase "todo es un flujo de bytes". La información está contenida en el flujo de texto, fluye constantemente entre los diversos componentes de la computadora, acepta constantemente el procesamiento de la computadora y, en última instancia, se convierte en un servicio que el usuario necesita.
(Dicho sea de paso, si has visto The Matrix, que sin duda impresionado por la secuencia de texto.)
entrada estándar, salida estándar, error estándar y redirigir < Br>
Cuando Linux ejecuta un programa, abre automáticamente tres secuencias, entrada estándar, salida estándar y error estándar. Por ejemplo, cuando abre la línea de comandos, de forma predeterminada, la entrada estándar de la línea de comandos se conecta al teclado, y tanto la salida estándar como el error estándar se conectan a la pantalla. Para un programa, aunque siempre abrirá estos tres flujos, se usará según sea necesario, no necesariamente utilizado.
Imagine que escribe un código de
de la siguiente manera:
$ ls
Flujo de texto de los trazos del teclado (" ls \\ n ", \\ n Es el carácter ingresado al regresar, indicando una línea de comando de nueva línea (la línea de comando es en realidad un programa). La línea de comandos luego llama a /bin /ls para obtener el resultado (" a.txt "), y finalmente la secuencia de texto de salida (" a.txt ") fluye a la pantalla y la muestra, por ejemplo:
De la siguiente manera:
a.txt
Supongamos que no queremos que la corriente de texto fluya a la pantalla, pero a otro archivo, podemos usar un mecanismo de redireccionamiento.
El código es el siguiente:
$ ls》 a.txt
Redirige la salida estándar. Aquí es para recordar a la línea de comandos, hágale saber que quiero cambiar la dirección de la secuencia de texto ahora, no permitimos que la salida estándar salga a la pantalla, sino al archivo a.txt (como si se cambiara la vía del tren). En este punto, la computadora creará un nuevo archivo a.txt y señalará la salida estándar de la línea de comandos a este archivo.
Hay otro símbolo:
El código es el siguiente:
$ ls》 a.txt
El rol de "aquí" también es redirigir la salida estándar. Si ya existe un.txt, la secuencia de texto generada por ls se agregará al final de un.txt, en lugar de crear un.txt cada vez como "."
Presentaremos el comando echo:
El código es el siguiente:
$ echo IamVamei
El propósito de echo es dirigir el flujo de texto a la salida estándar. Aquí, la función del eco es generar IamVamei en la pantalla. Si el código de
es el siguiente:
$ echo IamVamei》 a.txt
A.txt tendrá el texto IamVamei.
También podemos usar el "símbolo para cambiar la entrada estándar". Por ejemplo, el comando cat puede leer el flujo de texto de la entrada estándar y enviarlo a la salida estándar:
El código es el siguiente:
$ cat "a.txt
Cataremos La entrada estándar apunta a a.txt, y el texto fluye desde el archivo a cat y luego a la pantalla. Por supuesto, también podemos redirigir la salida estándar al mismo tiempo:
El código es el siguiente:
$ cat "a.txt" b.txt
Por lo tanto, el contenido de a.txt es Copiado a b.txt.
También podemos usar "&" para redirigir la salida estándar y los errores estándar al mismo tiempo. Supongamos que no tenemos un directorio vacío. Luego, el código
es el siguiente:
$ cd void》 a.txt
mostrará un mensaje de error en la pantalla. Porque el error estándar sigue apuntando a la pantalla en este momento. Cuando usamos:
El código es el siguiente:
$ cd void》 &a.txt
El mensaje de error se dirige a a.txt.
Si solo desea redirigir los errores estándar, puede usar 2 ::
El código es el siguiente:
$ cd void 2 a.txt》 b.txt
El error estándar es siempre el número 2, por lo que es el anterior. El error estándar se envía a a.txt y la salida estándar se envía a b.txt.
Tuberías
Después de comprender lo anterior, el concepto de tubería es fácil. Una tubería puede dirigir la salida de un comando a la entrada de otra, permitiendo que dos (o más comandos) funcionen continuamente como una tubería, procesando constantemente el flujo de texto. En la línea de comando, usamos
En los sistemas Linux, a menudo es necesario limpiar algunos de los archivos más grandes para expand
Los permisos adicionales del sistema Linux mencionados aquí se refieren a los permi
Hay un error cuando svn se actualiza automáticamente en el sistema Linux. Indica que el enlace de post-commit falló (código de salida 255) sin
sistema operativo Linux, Logrotate es una herramienta de gestión de registros que se pueden procesar
Error de inicio del disco de Ubuntu U ERROR DE EMBRAGUE cómo hacerlo?
Método de Linux para cambiar la capacidad del disco VirtualBox
Notas sobre el uso del comando kill en Linux
Sistema Linux usando Dockgo para desarrollar proyectos Django
Poco conocido inventario de comandos de Unix
Cómo realizar copias de seguridad de archivos web en Linux
Ubuntu 14.04 Pasos para instalar Wine
Linux compila e instala el método MemcacheQ
La configuración de Ubuntu con OpenDNS paso
Linux solicita [root @ localhost ~] # iptraf al ejecutar comandos?
Cómo habilitar o deshabilitar la cuenta de invitado en el sistema Windows 7
El sistema Windows XP no importa. Tres golpes consiguen
La versión Win7 de IE10 no puede instalarse. Solución
¿Cómo instalar Win8? Unos pasos para conseguirlo
Cómo encontrar la impresora FlashPaper en Win7
Creación de paquetes en el sistema Windows7 (tutorial detallado) (1)
Win10 cómo crear una conexión de banda ancha para acceder a Internet
Cómo establecer la resolución de Win10 Win10 configuración de resolución Preguntas frecuentes
¿Qué debo hacer cuando el sistema Win7 abre la página web lentamente?
Código de error de actualización del sistema Win10 mensaje de error 0x800704c7 ¿Qué debo hacer?