Metacaracteres de caparazón
Los metacaracteres de shell son caracteres específicos, generalmente símbolos, que tienen un significado especial dentro del shell. Los metacaracteres admitidos en bash se enumeran a continuación:
| :envía la salida del comando a la izquierda como entrada al comando a la derecha del símbolo - & :ejecuta el proceso en segundo plano, lo que le permite continuar trabajando en la línea de comando
; :Le permite enumerar varios comandos en una sola línea, separados por este carácter () :Agrupa los comandos y envía su salida al mismo lugar< :Obtiene la entrada para el comando a la izquierda del archivo que aparece a la derecha de este símbolo- > :envía la salida del comando de la izquierda al archivo nombrado a la derecha de este símbolo
- pestaña de espacio
Metacaracteres de redirección
La redirección de comandos está habilitada por los siguientes metacaracteres de shell:
- Redireccionamiento de entrada estándar (<)
- Redireccionamiento de salida estándar (>)
- Redireccionamiento del error estándar (2>)
- El carácter de barra vertical (|)
Los descriptores de archivos
Cada proceso trabaja con descriptores de archivo. Los descriptores de archivos determinan dónde se origina la entrada del comando y hacia dónde se dirigen los mensajes de salida y de error. La tabla explica los descriptores de archivos.
Número de descriptor de archivo | Abreviatura del descriptor de archivo | Definición |
---|---|---|
0 | entrada estándar | Entrada de comando estándar |
1 | salida estándar | Salida de comando estándar |
2 | stderr | Error de comando estándar |
Redirección de comandos
De manera predeterminada, el shell recibe o lee la entrada de la entrada estándar, el teclado, y muestra los mensajes de salida y de error en la salida estándar, la pantalla. La redirección de entrada obliga a un comando a leer la entrada desde un archivo en lugar de desde el teclado. La redirección de salida envía la salida de un comando a un archivo en lugar de enviar la salida a la pantalla.
Redireccionamiento de entrada estándar
El menor que (< ) el metacarácter procesa un archivo como la entrada estándar en lugar de leer la entrada desde el teclado.
# command < filename
o
# command 0< filename
Por ejemplo, use el archivo data.txt como entrada para el comando mailx.
# mailx -s test [email protected] < data.txt
Redireccionamiento de salida estándar
El mayor que (> ) el metacarácter dirige la salida estándar a un archivo en lugar de imprimir la salida en la pantalla.
# command > filename
o
# command 1> filename
Si el archivo no existe, el sistema lo crea. Cuando utiliza un solo metacarácter mayor que (>), el comando sobrescribe el contenido original del archivo, si el archivo ya existe. Cuando usa dos caracteres mayores que (>>), el comando agrega la salida al contenido original del archivo.
$ command >> filename
Error estándar de redireccionamiento
Un comando que utiliza el número de descriptor de archivo (2) y el signo mayor que (>) redirige cualquier mensaje de error estándar al archivo /dev/null.
$ command 2> /dev/null
El siguiente ejemplo muestra la salida estándar y el error estándar redirigido al archivo data.txt.
$ ls /tmp 1> data.txt 2>&1Nota :La sintaxis 2>&1 indica al shell que redirija stderr (2) al mismo archivo que recibe stdout (1).
El personaje de la pipa
El carácter de canalización redirige la salida estándar de un comando a la entrada estándar de otro comando. El primer comando escribe la salida en la salida estándar y el segundo comando lee la salida estándar del comando anterior como entrada estándar.
$ command | command
Por ejemplo, utilice la salida estándar del comando who como entrada estándar para el comando wc -l.
$ who | wc -l 35
Para ver una lista de todos los subdirectorios ubicados en el directorio /etc, ingrese el siguiente comando.
$ ls -F /etc | grep "/" X11/ acct/ apache/ apache2/
Utilice la salida del comando head como entrada para el comando 'xargs ls'.
head -10 data.txt | xargs ls