lunes, 18 de febrero de 2008

Algunos comandos del DOS

Alien [blackhat4all@gmail.com]

Para aquellos que gustan del trabajo en consola y carecen de documentos donde se ofrezca la ayuda relativa, pueden encontrar aquí reducida pero útil lista de comandos para el DOS.

Para muchos, dominar el MS-DOS puede que parezca algo absurdo y no dejan de tener razón, si luego de pedir ayuda sobre cada comando que está en la consola lo que se obtiene por resultado es un texto explicativo que poco ayuda a quien lo utiliza, sin contar que muchos de los comandos ni aparecen luego de un Help.

Un usuario normal de Windows podría necesitar algunas de estar órdenes en casos extremos, más si se trabaja con Win98 o 2000, si embargo al parecer a Microsoft se le olvidó poner algunas cositas como el Tracert o el Ping, tan utilizados en cosas referentes a las redes y en su lugar nos dio un cd, un dir o un md, que si bien pueden ser utilizados para realizar algunas gestiones de archivos, no son por esto los que más llaman la atención de los que tratan de ir un poco más allá.

Para los que no lo saben…

El MS-DOS es un programa, pero no uno cualquiera, sino uno de los más importantes que puede tener el sistema operativo. (Opinión personal).

Para los no conocedores, les diré que un sistema operativo está conformado por cientos o miles de subprogramas y cada uno se encarga de realizar una función determinada. Para un buen funcionamiento del sistema, todos estos programas deben trabajar entre si, ya sea compartiendo información o procesándola.
Pueden verlo de forma más evidente si relacionan a Windows (por poner un ejemplo), con una fábrica de calzado. No existe una persona que sea capaz de realizar el zapato en su totalidad, sino que un grupo se encarga de poner los cordones, otro de fabricar la suela, otro de hacer la horma, etc. Pero cada uno de estos grupos debe estar conectado con los demás, ya que el grupo que está haciendo los cordones debe saber cual es el tamaño de la horma, puesto que no es lo mismo hacer cordones para un zapato de bebé que para uno de una persona adulta. Así mismo sucede con la suela y en fin, con todas las partes que conforma el calzado como tal (disculpen si no se los nombres de esas partes, pero es que no me dio tiempo a pasar el curso de zapatero).

Un sistema operativo tiene un funcionamiento similar, pero teniendo en cuenta que es mucho más complejo que una zapatería (sin quitarle mérito a esta). A la hora de eliminar un archivo, lo que vemos es un menú con una opción que nos indica dicha acción, pero en el interior de la máquina, "alguien" debe verificar que el archivo se pueda borrar, "alguien" debe asegurarse que en la papelera exista espacio, "alguien" ejecutará la orden como tal y "alguien" comprobará que la orden fue ejecutada con éxito. (Quizás es más complejo que esto…)

La principal razón para esto es que es mucho más fácil crear varios programas de algunos cientos de líneas de código y que cada uno de estos realice una tarea determinada, antes que crear un programa principal que lo maneje todo, ya que en caso de un error, lograr identificar en que línea estuvo se convertiría en toda una hazaña, además que la actualización de una rutina conllevaría a la actualización del código completo.
 El MS-DOS funciona de esta manera, existe un programa principal que tiene unas cuantas opciones por defecto a las que se le denominan comandos internos y por la necesidad de ir actualizando o adaptando este programa a nuevos ambientes y entornos, se crean varios subprogramas a los que se les denomina comandos externos.

Un ejemplo de esto lo podemos ver fácilmente: ¿Alguien ha visto un archivo en la máquina que se llame cd.exe o cd.com?, no, y eso es porque este comando está implementado dentro del mismo command.com, es decir, es una función que el realiza de forma innata, no requiere para esto nada más que su sola presencia, sin embargo, si podemos encontrar otros como son el xcopy por ejemplo, que no es más que una variante mejorada del copy.

De esta forma, con el paso del tiempo, al DOS se le han añadido o eliminado comandos externos, ya sea por su poco uso o por la llegada de nuevos comandos que hacen ese trabajo y más.

Entrando en materia

No pienso hacer un listado de los comandos comunes como puede ser time, copy, type, ya que estos pueden ser vistos desde la ayuda y la complejidad de su uso no creo que sea tanta. Pero si me gustaría presentar algunos que, aunque puede que algunos de ustedes los utilicen, estoy casi convencido que la mayoría ni siquiera sabe de su existencia.

Sin haberme trazado un listado ordenado alfabéticamente o algo por el estilo, empezaré a nombrar y describir comandos de forma aleatoria, y para esto me gustaría empezar por uno que quizás a muchos le llame la atención:

Nota: Que conste que lo que ofrezco a continuación no es una ayuda, sino una descripción simple para que se tenga una idea, si alguien quiere hacer las pruebas con los comandos, debe ir a ejecutar en el menú inicio, teclear CMD y luego escribir el nombre del comando seguido por /?

Tracert: Este comando muestra la ruta que sigue un paquete en la red. Tiene a mí entender cierta relevancia, ya que ejecutándolo varias veces y dirigiéndolo hacia distintos lugares, nos permite hacer un mapa de una red en específico. Como todos los que nombraré luego, a este también se le pueden pasar parámetros para obtener un resultado más específico. También ofrece el tiempo que se demora en responder cada nodo por el cual pasa el paquete.

Ping: Este es un comando bastante conocido (espero) por muchos, y lo que hace es llamar a un server para ver si está "vivo" y en caso que lo esté, nos retorna la IP de dicho servidor y el tiempo que este se demoro en responder. Es quizás el primero que se debe ejecutar antes de hacer cualquier otra cosa en la red, ya que quizás el servidor no está disponible, y con esto nos evitamos pasar el trabajo de scanear la red y demás.

Net View: Este en especial era muy utilizado por mi y mis compañeros de trabajo bajo una simple red de cable invertido, y lo que permitía era ver cuales son los ordenadores conectados a dicha red y acceder a los mismos. No es la gran cosa pero …

Tasklist
: Sirve, como su nombre lo indica, para listar los procesos que se estén ejecutando en una computadora e incluso los de otra, siempre que esta esté conectada a nuestra red. Es útil si queremos saber que esta ejecutando Manolito, el que está sentado en el aula de al lado. Por lo general casi siempre va precedido por Taskkill.

Taskkill: No pienso que lleve mucha explicación. Básicamente lo que hace es cerrar un proceso ejecutándose en nuestra u otra PC. Como es lógico, primeramente el proceso a cerrar se debe estar ejecutando.

Runas: Permite ejecutar programas con privilegios que no tenemos. Es básicamente muy importante, ya que en a veces vemos al administrador de nuestra red jugando Quake y a nosotros nos lo quieren limitar.

Mem: Es un comando quizás poco utilizado, ya que su finalidad es la de mostrar la cantidad de memoria libre y disponible de un sistema, pero quizás si lo que se pretende es ejecutar una aplicación rápida, sencilla y que recopile información sobre una computadora, este comando podría perfectamente estar ligado a otros para conocer más el área en la que estamos trabajando.

Start: No es un comando de los que podríamos usar en una red para… Sin embargo es útil (al menos para mi), cuando estamos navegando desde el DOS y queremos abrir en Windows la ventana en la que estamos parados, para esto solo dejamos un espacio y colocamos un punto luego de escribir el comando.

Shutdown: Si eres administrador de una red y luego de aplicar un tasklist ves que se esta ejecutando el NFS en la xxx.xxx.xxx.xxx, no te tomes el trabajo de ir hasta la máquina para amenazar, simplemente ejecuta un msg mandando una advertencia y luego un shutdown pasándole los parámetros correctos.

Title: Si bien no es un comando con el que se puedan efectuar muchas cosas, si nos sirve para configurar el DOS de forma tal que sea más a nuestro gusto.

Color: Este no es un comando para hacer "súper trabajos" en redes, sino más bien algo que se le quedó al Billy en el DOS y que proviene directamente desde QBasic. Es una de esas cosas que se pueden utilizar para darle un "toque" más personal a nuestra consola.

Conclusiones:

No me veo a mi mismo como un salvador de las consolas, ni como alguien renuente a vivir el futuro, pero si soy de esos que ha tenido el placer de estar trabajando en los dos lados de la moneda: P-IV v/s Pentium. He sentido en mis manos tanto un PC como un cacharro y quisiera darle algunas opciones a esas personas que no tienen la posibilidad aún de tener una computadora último modelo, quiero que sientan la velocidad con que el DOS cambia de directorios y se hace más potente ante Windows.

Además de todos estos comandos, hace un tiempo se publicó un artículos en la edición 12 de BlackHat en el que se daba una explicación de como crear macros en MS-DOS. Ese texto, sumado a algunas cosas de este quizás puedan ayudar a hacer el trabajo más fácil para aquellos que se atreven a "cacharrear" un poquito dentro del sistema.

Como dije en un inicio estos no son todos los comandos del DOS, este potente lenguaje tiene muchas otras funciones ocultas aún. Ya en pasadas ediciones de BlackHat se han publicado artículos enfocados sobre este tema, espero que los que tienen esas ediciones encuentren en ellas lo que falta aquí, aunque como dije esto no es un texto para principiantes, sino para todos aquellos que ya tienen algo de conocimiento y quieren ir un poco más allá.

Espero que este artículo le haya sido útil a alguien y de ustedes y sus correos dependerá que no muy lejos en el tiempo se vuelva a tocar el tema.


Artículos relacionados


No hay comentarios: