Estoy leyendo un libro, dice:
Cada proceso tiene al menos tres canales de comunicación disponibles: "entrada estándar" (STDIN), "salida estándar" (STDOUT) y "error estándar" (STDERR).
La mayoría de los comandos aceptan su entrada de STDIN y escriben su salida en STDOUT. Escriben mensajes de error a STDERR. Esta convención le permite encadenar comandos como bloques de construcción para crear tuberías compuestas.
El shell interpreta los símbolos
<
,>
y>>
como instrucciones para redirigir la entrada o salida de un comando hacia o desde un archivo.Para conectar el STDOUT de un comando al STDIN de otro, use el
|
símbolo, comúnmente conocido como una tubería.ps -ef | grep httpd
Básicamente, lo que esto está diciendo es que la entrada estándar es un comando que permite al usuario escribir en un archivo, mientras que la salida estándar es un comando que tiene la salida de escritura del shell bash en el shell, y el error estándar es como la salida pero solo es se invoca cuando hay un error en el sistema de archivos. Luego llegamos a la parte de conectar STDOUT y STDIN y estoy perdido.
standard input is a command that allows user to write to a file
No es un comando, sino una secuencia. Las entradas y salidas estándar son como buzones. Cuando se inicia un programa, se le da un cuadro para recibir y un cuadro para enviar correo. Por lo general, la entrada proviene del teclado y se coloca en la bandeja de entrada, el correo que se coloca en la bandeja de salida termina en la pantalla de su terminal.
standard output is a command that has the bash shell write output to the shell
El programa en realidad no sabe dónde salen los puntos estándar. Cuando canaliza A a B (como en
$ A | B
), cuando A coloca el correo en la bandeja de salida, termina en la bandeja de entrada de B. B procesa la entrada y pone su propio correo en la bandeja de salida, que es lo que ve en el terminal.Para descartar la metáfora, como se mencionó, las entradas / salidas estándar son flujos. El buzón o el descriptor de archivo es un extremo de la secuencia. Conectar es conectar el estándar de A al estándar de B.
fuente