Mostrando entradas con la etiqueta ms dos. Mostrar todas las entradas
Mostrando entradas con la etiqueta ms dos. Mostrar todas las entradas

lunes, 4 de febrero de 2008

¿MS-DOS? No, gracias

El otro día pasó un compañero al lado y me preguntó ¿estás con MS-DOS?
Realmente, no. Suelo trabajar con Linux y lo que tenía abierta era una ventana del intérprete de órdenes, línea de comandos, interfaz de texto, consola, o terminal (no acabo de saber cuál es el término más correcto).
No es la primera vez que preguntan algo parecido o que me hacen un comentario como "huy, qué anticuado, si parece el MS-DOS".

El MS-DOS era un sistema operativo bastante rudimentario que tomó algunas ideas (pocas) del sistema operativo UNIX, que ya por entonces (años 80) era un sistema totalmente maduro. No es adecuado decir que Linux (o cualquier otro sistema operativo de la familia UNIX) se parece a MS-DOS. Más bien es al contrario.

La "anticuada" interfaz de texto permite realizar algunas tareas de una forma mucho más eficiente que con una interfaz de "ventanas", y en muchas ocasiones, es insustituible, como cualquier usuario habitual de sistemas UNIX ya sabe. Si usted no conoce esta familia de sistemas operativos, siga leyendo.

Una de las filosofías de diseño de UNIX es disponer de muchas herramientas especializadas en una única tarea y que puedan intercambiar información entre ellas. Muchas de estas herramientas o programas no son parte del sistema operativo en sí, pero todos los sistemas UNIX las incorporan. La propia interfaz de texto o intérprete de instrucciones es programable y esto permite crear secuencias de instrucciones que se ejecuten sin necesidad de un usuario - como los archivos de instrucciones por lotes del MS-DOS, pero mejor ;-)

En resumen, para automatizar muchas tareas tediosas, este tipo de interfaz es perfecta. Voy a poner algunos ejemplos:

  • Imagine que un directorio (carpeta) tiene un montón de imágenes en formato JPG y quiere convertirlas en GIF. Hay programas "de ventanas" que pueden hacer conversiones masivas, pero en UNIX existe un programa llamado ImageMagick que es perfecto para esta tarea:
    for foto in `ls *jpg`; do convert "$foto" "$foto".gif; done

    Esta instrucción (mejorable, pero rápida) convierte todas las imágenes de un plumazo.

  • Supongamos que tenemos dos archivos de texto (telefonos.txt y direcciones.txt) con información relacionada que queremos combinar:
    telefonos.txt:
    juana@novale.com 999 888 777
    juan@mentira.com 666 555 444
    perico@falso.com 333 222 111

    direcciones.txt:
    juana@novale.com Juana Mengánez Zutánez C/Sin Nombre, 42
    juan@mentira.com Juan Fulánez Desconocido C/Inexistente, 314
    perico@falso.com Pedro Pedrea Pedrón C/Inventada, 2

    Con la instrucción siguiente los "juntamos" y ordenamos alfabéticamente:
    join telefonos.txt direcciones.txt | sort

    Con la instrucción siguente
    cut -d @ -f 1 direcciones.txt

    Extraeríamos la parte que va delante de la arroba de cada dirección (juana, juan y perico).

  • ¿Dónde estaba la canción de "Paquito el Chocolatero"?
    find . -name "*Chocolatero*"



No voy a poner más ejemplos, esto no es un cursillo de UNIX, pero quiero resaltar una característica muy importante: las instrucciones se pueden combinar unas con otras, con lo que muchas tareas mecánicas y repetitivas se pueden programar y dejar que las haga el ordenador.

Por eso, pese a la aparente vetustez de esta interfaz, muchas personas la seguimos utilizando asiduamente. Nos ahorra mucho tiempo, aunque no lo parezca.

Y no, no se parece al MS-DOS. Para nada ;-)