Sistemas operativos modernos
guido del nombre de archivo de entrada. De forma similar, la salida estándar se redirige em pleando un signo mayor que (>). Está permitido redirigir tanto la entrada como la salida en el mismo comando. Por ejemplo, el comando sort <entra >sale hace que sort tome sus entradas del archivo entra y envíe su salida al archivo sale. Puesto que no se ha redirigido el error estándar, los mensajes de error se exhibirán en la pantalla. Un pro grama que toma sus entradas de la entrada estándar, realiza algún procesamiento con ellas y es cribe sus salidas en la salida estándar se denomina filtro. Consideremos la línea de comandos siguiente, que consta de tres comandos distintos: sort <entra >temp; head - 3 0 <temp: rm temp Primero se ejecuta sort, que toma sus entradas de entra y escribe sus salidas en temp. Una vez que se ha terminado de hacer eso, ei shell ejecuta head, indicándole que imprima las primeras 30 líneas de temp en la salida estándar, que de manera predeterminada es la terminal. Por últi mo, se elimina el archivo temporal. Es común que el primer programa de una línea de comandos produzca salidas que se uti lizan como entradas del siguiente programa. En el ejemplo anterior, utilizamos el archivo temp para guardar las salidas en forma temporal. Sin embargo, UNIX ofrece una construcción más sencilla para hacer lo mismo. En sort <entra |head -3 0 la barra vertical, llamada símbolo de canalización, indica que debe tomarse la salida de sort y utilizarla como entrada de head, con lo que se elimina la necesidad de crear, usar y eliminar el archivo temporal. Una colección de comandos conectados por símbolos de canalización puede contener un número arbitrario de comandos. Por ejemplo, lo que sigue es una canalización de cuatro componentes: grep ter *.t |sort |head - 2 0 |tail - 5 >algo Aquí, todas las líneas que contienen la cadena “ter” de todos los archivos que terminan en .t se escriben en la salida estándar y se ordenan ahí. Head selecciona las primeras 20 líneas ordena das y se las pasa a tail, que escribe las últimas cinco (es decir, las líneas 16 a 20 de la lista or denada) en algo. Éste es un ejemplo del uso en UNIX de bloques de construcción básicos (numerosos filtros), cada uno de los cuales realiza una tarea, junto con un mecanismo para en samblarlos en configuraciones casi infinitas. UNIX es un sistema de muitiprogramación de uso general. Un solo usuario puede ejecutar varios programas a la vez, cada uno como proceso aparte. La sintaxis del shell para ejecutar un proceso en segundo plano es colocar un signo & (y) después del comando. Así, wc -| <a >b & ejecuta el programa de conteo de palabras, wc, para contar el número de líneas (indicador -/) que tiene su entrada, a, escribiendo el resultado en b, pero todo esto lo hace en segundo plano.
RkJQdWJsaXNoZXIy MjI4NDcx