Logo Espacio Linux Paypal - Acepta pagos con tarjeta en tu negocio      
Portada Manuales Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Anuncios



Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Sitios amigos

Blogs de miembros


Directorio de blogs | Registrarse
Los usuario registrados pueden crear su propio blog y escribir comentarios.

Redireccionamiento y tuberias en Linux


Por: bladem
Publicado el: 06-29-2006 @ 05:51 pm


INTRODUCCIÓN
En los sistemas GNU/LINUX y UNIX los dispositivos como los discos duros y sus
particiones, el terminal de pantalla, el teclado, el ratón o incluso la tarjeta de audio
están mapeados en el sistema de archivos. Esta característica permite a los
programas interactuar con los dispositivos de la misma manera que los archivos,
simplificando su interfase de acceso. Los dispositivos que mapean las operaciones
de entrada y salida hacia un archivo poseen un archivo de dispositivo (device file)
que es un objeto especial del sistema de archivos que proporciona la interfase con el
dispositivo. Por ejemplo, un programa que lea el archivo de dispositivo del terminal,
leerá los caracteres introducidos mediante el teclado.
ENTRADA/SALIDA ESTÁNDAR Y LOS DESCRIPTORES DE ARCHIVO
La entrada y salida estándar es la capacidad del intérprete de comandos o shell
para controlar y dirigir la entrada de datos de los programas, la salida de información
útil y la información de errores. Cuando un programa se ejecuta, automáticamente se
le proporcionan tres descriptores de archivo;
ENTRADA ESTÁNDAR (STDIN) o DESCRIPTOR DE ARCHIVO 0
El descriptor de archivo STDIN está asociado a la entrada de texto. Por defecto
está asociado al teclado.
SALIDA ESTÁNDAR (STDOUT) o DESCRIPTOR DE ARCHIVO 1
El descriptor de archivo STDOUT se corresponde con la salida de texto normal de
los programas. Por defecto está asociado al terminal de pantalla.
ERROR ESTÁNDAR (STDERR) o DESCRIPTOR DE ARCHIVO 2
El descriptor de archivo STDERR también es una salida de texto, pero se usa
exclusivamente para mostrar los errores generados por los programas. Por
defecto también está asociado al terminal de pantalla.
TUBERÍAS
Desde el punto de vista de un programa no hay diferencia entre leer texto
guardado en un archivo o introducido mediante el teclado. Igualmente, escribir un
texto en un archivo o en la pantalla del terminal son operaciones equivalentes.
Extendiendo esta idea es también posible enlazar la salida de un programa con la
entrada de otro. Esta operación se puede realizar mediante una tubería (pipe) que
une dos comandos en uno solo. Por ejemplo:
$ls –l | less
La tubería redirecciona la salida del comando ls –l hacia el paginador more,
que permite visualizar la información pantalla a pantalla.
REDIRECCIONAMIENTO
El descriptor stdout de los programas está asociado por defecto a la pantalla
del terminal. Pero de la misma manera que es posible redireccionar la salida de un
comando a la entrada de otro, también es posible redireccionar cualquiera de los
tres descriptores a un archivo. operador descripción
cmd < file El contenido de file se utilizará como entrada de la
orden cmd
cmd 1> file1
cmd > file1
La salida estándar de la orden cmd se guardará en
file. Si el archivo file existe se sobrescribirá.
cmd 1>> file1
cmd >> file1
La salida estándar de la orden cmd se guardará en
file. La información se escribirá al final del archivo.
cmd 2> file2 Los errores de la orden cmd se guardarán en file.
Si el archivo file existe se sobrescribirá.
cmd 2>> file2 Los errores de la orden cmd se guardarán en file.
La información se escribirá al final del archivo.
cmd > file 2>&1
La salida estándar y la de errores de la orden cmd se
guardarán en file. Si el archivo file existe se
sobrescribirá.
cmd >> file 2>&1
La salida estándar y la de errores de la orden cmd se
guardarán en file. La información se escribirá al final
del archivo.
cmd1 | cmd2 Redirecciona la salida del comando cmd1 hacia la
entrada del comando cmd2.
EJEMPLOS
$ls –lR > file
La salida estándar de la orden ls –lR (la lista de los archivos y subdirectorios
que contiene el directorio actual) se guarda en el archive file.
$mkdir directory 2> error
Si al crear el directorio directory se produce algún error (por ejemplo el
directorio ya existe o el usuario no tiene permisos de escritura) el mensaje del
error se guardará en el archivo error.
$cp –vf /root /home/alumno > file 2> error
La lista de todos los archivos copiados (atención a la opción –v de la orden cp)
se guardará en el archivo file. Los errores que se produzcan en la ejecución de
la orden se almacenarán en el archivo error.
$cp –vf /root /home/alumno >> file
La lista de todos los archivos copiados se escribirá en el archivo file. Si el
archivo file ya existe la lista se escribirá al final del archivo, manteniendo la
información previa.
$wc –l < file
Cuenta el número de líneas del archivo file.
$cd /root/setup 2> null
Redirecciona la salida de error hacia el dispositivo nulo. El mensaje de error no
se escribirá en ninguna parte.
$ls –l | grep vmlinux
Redirecciona la salida de la orden ls hacia la orden grep, que mostrará
únicamente las líneas que contienen la palabra vmlinux. more
Sintaxis: more file
El comando more es un paginador de archivos que permite ver el contenido del
archivo file pantalla a pantalla. Al mostrar una pantalla completa la visualización
del documento se detiene hasta que el usuario indica que quiere ver otra pantalla
más con la tecla SPACE. La tecla Q/q permite salir del programa.
less
Sintaxis: less file
El comando less es un paginador de ficheros más potente que la orden more.
Permite desplazarse hacia delante y atrás en los archivos.
Órdenes:
teclas función
B ó b Desplaza una pantalla hacia atrás el contenido del archivo.
RETURN Desplaza una línea hacia delante el contenido del archivo.
SPACE Desplaza una pantalla hacia delante el contenido del archivo.
/pattern Busca hacia delante el pattern dentro del archivo file.
H ó h Muestra un texto de ayuda.
Q ó q Sale del programa.
grep
Sintaxis: grep [options] regex files
Busca en los archivos especificados las líneas que contienen una coincidencia
con la expresión proporcionada en regex. Por defecto mostrará las líneas que
contienen una coincidencia y ocultará las que no tengan ninguna coincidencia.
Opciones:
-c Muestra el número de líneas que contienen la expresión, no muestra el
contenido de las líneas.
-i No hace diferencias entre mayúsculas y minúsculas al comparar la expresión.
-v Muestra todas las líneas que NO tienen ninguna coincidencia y oculta las que
contienen alguna coincidencia.
Ejemplos:
$ls –AlR /* | grep –ic .gif
La tubería redirecciona la salida del comando ls –AlR /* (listar en formato
largo todos los archivos del sistema incluido los ocultos) al comando grep. El
comando grep mostrará el número de coincidencias con la expresión .gif
independientemente si este escrito en minúsculas o mayúsculas.
$ls –AlR /root/* | grep –iv root
El comando grep mostrará todos los archivos del directorio /root que no
pertenecen al usuario o grupo root.


Ultima actualización el 06-29-2006 @ 05:51 pm




Añadir un comentario
Añadir un comentario
Ver más artículos
Ver más artículos
Journal ©
 



Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog