Bienvenido a Computer Facil

Ya somos 40288 miembros registrados, ¡ Únete tu también !
  Crea tu cuenta Computer Facil Inicio     Foros Foros     Descargas Descargas     VideoJuegos VideoJuegos     Tutoriales Tutoriales de Informática Traducción a Inglés    
    


  Personal
 Agregar a Favoritos
 Tu Página de Inicio
 Contacta al Webmaster
 

  Secciones

    Inicio
    Tu cuenta
    Envia hoy tu noticia
    Escríbenos
    Recomiendanos
    Firma hoy el Libro de Visitas!

    Artículos y Manuales
    Trucos Windows
    FAQ

    Foros de Informatica
    Foros de Ocio
    Chat

    Descargas

    Todo MSN


    Tiendas Online, Viajes

    AbandonWare
    Juegos Flash
    Trucos de Juegos
    Ajedrez

    Galería de Fotos
    Famosa del día
    Famoso del día

    Enlaces Web Clasificados
    Ranking de Webs
    Servicios Gratuitos
    Envía Tarjetas o Postales

    Elinks ed2k
    Manual de Emule
    Emule FAQ


    Amor y Amistad

    Todo Móvil
    Todo Móvil 2
    Juegos Móvil

    Humor

    Premios Web
    Enciclopedia Informática
    Temas
    Archivo de Noticias
    Encuestas
    Estadísticas
    Top 10
    Buscador Interno
    Webs Afiliadas

  Recomendados


  Famosa del dí­a
Fotos de Famosas

  Top Sonidos Móvil

  Juegos

  Prensa de Hoy

Selecciona el periódico:

  Radio Online
Selecciona una emisora de radio para escucharla en directo:

  Horóscopo
Selecciona tu signo del zodíaco para ver la predicción de hoy:

  Top Posteadores
      Forista del Mes:
gabyrossi


      dejavi 
    Mensajes: 
    3475 

      agm 
    Mensajes: 
    2552 

      gabyrossi 
    Mensajes: 
    1791 

      arag 
    Mensajes: 
    1778 

      TvK10 
    Mensajes: 
    1398 

Entrega 6. Viva la fontanería
CURSO DESDE 0 DE GNU/LINUX. Versión 2




Entrega 6. Viva la fontanería.

		% !bluemoon

		bluemoon: Event not found.

Entrada y salida estándar.

Normalmente los comandos usan lo que es conocido como entrada y salida estándar (stdin y stdout respectivamente, lo puedes encontrar en /dev/stdin y /dev/stdout) que no son ni más ni menos que el teclado y la pantalla.

Para ver esto usaremos el siguiente comando:

cat [opciones] [lista_de_ficheros]

'Cat' en sí es un concatenador de ficheros que imprime la salida por la salida estándar, las opciones no las veremos puesto que no son muy interesantes. Nos va a servir para visualizar los ficheros y si escribimos 'cat' sin parámetros leerá de la entrada estándar y escribirá en la salida estándar.


[matados2k@fortaleza curso]$ cat

hola

hola

a

a

todos

todos

[matados2k@fortaleza curso]$

Vemos que sale repetido todo como si 'cat' nos vacilara, simplemente repetirá todo lo que escribamos por que es lo que realmente sabe hacer. Para salir de 'cat' debemos mandarle la señal EOT (End-of-text, fin de texto) y para eso tenemos que usar CTRL+D.

Algunos pensaréis “qué estupidez de comando”, pero sólo hasta que sepáis que con 'cat' se hacen cosas tan curiosas como una imagen ISO de CD sin usar ninguna opción, pero eso será mucho más adelante.

Redirección de salida y entrada.

El intérprete de comandos nos permite redireccionar la salida estándar a un fichero usando el símbolo '>'. Para ver cómo funciona qué mejor que un ejemplo:


[matados2k@fortaleza curso]$ cat > hola_holita

hola

holita

vecinitos

soy ned

[matados2k@fortaleza curso]$ cat hola_holita

hola

holita

vecinitos

soy ned

[matados2k@fortaleza curso]$

Podemos ver que usamos 'cat' con una redirección a un fichero llamado 'hola_holita', podemos ver que no nos ha repetido lo que escribimos puesto que la salida está redireccionada y después visualizamos su contenido con el mismo 'cat'.

La redirección de entrada es similar, sólo que se usa el carácter '<'. Veamos un ejemplo:


[matados2k@fortaleza curso]$ cat < hola_holita

hola

holita

vecinitos

soy ned

[matados2k@fortaleza curso]$

En este ejemplo vemos que el resultado es el mismo y es obvio, ya que esta vez hemos cambiado la entrada estándar por un fichero y la ha sacado por la salida estándar, con lo que ha repetido lo que había en el fichero como si lo tecleásemos y ha terminado ya que los ficheros contienen el carácter EOT o EOF (End of File).

Hay que destacar que la redirección de salida es una redirección destructiva, con esto quiero decir que si no existe el fichero lo crea y si existe lo sobrescribe, y esto puede ser algo que no deseemos.

Redirección de salida no destructiva.

Imaginemos que vamos a hacer una lista de la compra para un piso que tenemos de estudiantes, entonces escribiríamos algo así:


[matados2k@fortaleza curso]$ cat > lista_compra

Champu

Gominolas

Cerveza

Panchitos

jb

[matados2k@fortaleza curso]$

Y se nos olvidan las aspirinas:


[matados2k@fortaleza curso]$ cat > lista_compra

aspirinas

[matados2k@fortaleza curso]$ ls

hola_holita lista_compra perro

[matados2k@fortaleza curso]$ cat lista_compra

aspirinas

[matados2k@fortaleza curso]$

Pues nada ya estropeamos la fiesta, ya que la lista se la dimos a Manolito y sólo nos trajo aspirinas. Para evitar algo tan absurdo y surrealista como esto tenemos la redirección de salida no destructiva, para ello usamos '>>', veamos el ejemplo:


[matados2k@fortaleza curso]$ cat >> lista_compra

Manolito no te olvides de:

Champu

Gominolas

Cerveza

Panchitos

jb

[matados2k@fortaleza curso]$ cat lista_compra

aspirinas

Manolito no te olvides de:

Champu

Gominolas

Cerveza

Panchitos

jb

[matados2k@fortaleza curso]$

Con esto ya nos ahorramos el problema. Supongo que ya habréis deducido ventajas de la redirección aparte de hacer la lista de la compra, ¿no? (tan simples como guardar el listado de 'ls' en un fichero y tan complicado como ahorrarnos teclear en comandos que nos piden muchos datos).

Usando tuberías. Las pipes.

Para lo siguiente vamos a ver otro comando que lo que hace es ordenar lo que le entra y devolverlo ordenado.

sort [opciones] [lista_de_ficheros]

No vamos a ver las opciones por el momento (siempre puedes hacer 'man sort' si te interesa). Veamos antes de todas formas cómo se comporta sort sin opciones:


[matados2k@fortaleza curso]$ sort

peras

limones

piñas

melocotones

(aquí pulsé CTRL+D)

limones

melocotones

peras

piñas

[matados2k@fortaleza curso]$

Observamos que espera a que pulsemos EOT y nos devuelve todo ordenado.

Seria muy interesante poder unir la salida de un programa con la entrada de otro y construir una cadena de órdenes. Imaginaos que en el caso anterior si a Manolito no le ordenamos la lista se pierde (no se molesten los Manolos, pero algún nombre tendría que tener la víctima), lo mejor sería hacer la lista con 'cat', unir la salida con 'sort' y redireccionar al fichero donde queremos guardarlo, y para eso usamos el carácter '|' (la del AltGr +1). Lo que hacemos con ese símbolo es crear una pipe, que es como ya expliqué unir la salida de un comando con la entrada de otro. Mejor un ejemplo:


[matados2k@fortaleza curso]$ cat < lista_compra | sort > nueva_lista

[matados2k@fortaleza curso]$ cat nueva_lista

aspirinas

Cerveza

Champu

Gominolas

jb

Manolito no te olvides de:

Panchitos

[matados2k@fortaleza curso]$

Observamos que redireccionamos la entrada de 'cat' con la lista ya creada y construimos una pipe para unir la salida de 'cat' con la entrada de 'sort' y terminamos redireccionando la salida a un nuevo fichero. Con lo que conseguimos la lista ordenada, que si bien podíamos haber hecho lo mismo con 'sort < lista_compra > nueva_lista' tenía que hacerlo de la otra forma para explicarlo.

Despedida.

Ya con esto terminamos, y para la próxima entrega nos tocan los permisos de los ficheros y la creación de enlaces.

Agradecimientos: · Revisión del documento: karuchi (Carolina García).

Página oficial y dominio de mi propiedad http://matados2k.es
Matados'2k Usuario y moderador de foro.noticias3d.com
Matados'2k Usuario y moderador de www.sinuh.org
matados2k (arroba) gmail (punto) com

Este documento está sometido a la licencia de creative commons en su variante “Reconocimiento-NoComercial-SinObraDerivada 2.1 España” . Es de agradecer que se comunique al autor el uso de este documento en otro medio y se debe incluir de forma obligatoria este recuadro y los agradecimientos.










Copyright © por Computer Facil ,Derechos Reservados.

Publicado en: 2007-01-26 (2457 Lecturas)

[ Volver Atrás ]
Content ©

Foros de Informatica  Foros   Foros  Todos los Foros  Ofertas PCs   Ofertas Pcs  Venta Portatiles  Informatica Oferta   Descargas Web  Computer Hoy  Foros Posicionamiento Web   Consultor de Marketing Online  Descargas Web  Emoticonos Animados

Contacto -- (CC) 2004-2007 ComputerFacil.com . Algunos derechos reservados. Aviso Legal.