educación, informática y demás

Windows

Shell de Windows. Ejecución de comandos

Le pasamos por parámetro al comando help el nombre del comando para el que queremos consultar ayuda. En este caso DIR. Para pasar información por parámetro separamos con espacio.

Sintaxis del comando: parámetros obligatorios y opcionales

En la sintaxis del comando, se muestran los parámetros que podemos pasarle al comando para especializar su función. Todos los parámetros que estén entre corchetes, son opcionales. Es decir, si queremos los pasamos y si no, pues no se los pasamos.

Habitualmente si no se pasa un parámetro opcional, el comando tomará un valor por defecto para dicha információn de configuración o parámetro.

Si un parámetro no aparece entre corchetes, significa que es obligatorio.

Por ejemplo, el comando dir no tiene parámetros obligatorios, podemos ejecutarlo sin pasar ningún parámetro.

Si no le proporcionamos la ruta de ningún fichero o directorio a mostrar, el comando dir muestra el directorio actual.

Sin embargo, si queremos, podemos indicarle qué directorio concreto queremos mostrar.

Podríamos mostrar el contenido del directorio padre del directorio actual.

Vamos a ver un comando que requiere al menos un parámetro obligatorio. Consulta la ayuda del comando mkdir.

Si nos fijamos el parámetro ruta no está entre corchetes, eso significa que es obligatorio. Esto tiene sentido puesto que mkdir crea un directorio, y necesita saber dónde deberá crearlo.

Si lo ejecutamos sin parámetros, nos dará error

No solo podemos ejecutar comandos del sistema operativo, sino que desde el interprete de comandos podemos ejecutar aplicaciones que tengamos en el sistema.

Para ello tan solo tendremos que escribir la ruta del fichero ejecutable que contenga el programa a ejecutar. Si tenemos suerte y el programa está en el PATH (que veremos a continuación que es el PATH) entonces bastará con escribir el nombre del ejecutable.

Vamos a probar con notepad.exe, que es un fichero ejecutable que contiene un programa editor de texto. Para ejecutar un programa, no es obligatorio escribir la extensión del mismo.

Se han ejecutado los dos programas. La pregunta que nos surge ahora es, dónde diantres están esos programas, porque en nuestro directorio personal no están.

Búsqueda del comando o aplicación

La shell busca el comando o aplicación a ejecutar de forma ordenada, siguiendo el siguiente orden:

  1. En memoria interna. Hay algunos comandos del sistema que vienen integrados con el propio shell y están en memoria interna. Si el comando a ejecutar está ahí se ejecuta directamente.
  2. En el directorio actual o directorio de trabajo. Si el comando no estaba en memoria interna, la shell lo busca en el directorio actual.
  3. En la lista de directorios almacenados en la variable de entorno PATH. Si no está ni en memoria principal ni en el directorio actual, la shell busca el comando o aplicación a ejecutar en cada uno de los directorios almacenados en la lista de directorios de la variable de entorno PATH. Esta búsqueda la hace en el orden en que aparecen en dicha variable.

¿Qué es una variable de entorno?. Es un valor que se almacena en memoria al que se le asigna un nombre o identificador único y que puede cambiar con el tiempo.

¿Cómo accedemos a una variable de entorno?. Para acceder al valor o el contenido de una variable de entorno tenemos que conocer su nombre y podemos acceder de dos formas distintas: utilizando el comando set o utilizando los caracteres especiales %%.

Según la información guardada en PATH en este sistema, la lista de directorios en los que buscará los ejecutables la shell son:

  1. C:\Windows\system32
  2. C:\Windows
  3. C:\Windows\system32\Wbem
  4. C:\Windows\System32\WindowsPowerShell\v1.0
  5. C:\Users\alumno\AppData\Local\Microsoft\Windows\apps

Otra forma de mostrar en pantalla el contenido de la variable PATH es utilizar el comando echo, que muestra en pantalla el mensaje de texto que se le pase como parámetro, y el contenido de la variable utilizando las caracteres especiales %.

Echo nos permite mostrar un mensaje en pantalla. Mostrará el mensaje que le pasemos por parámetro.

Lo que estamos haciendo poniendo el nombre de una variable entre los símbolos % es decirle al interprete de comandos que sustituya esa cadena por el contenido de la variable cuyo nombre está entre %

En este ejemplo, la shell sustituirá %username% por el contenido de la variable username

Vamos a ver si en el directorio C:\Windows está el ejecutable notepad.exe. Para ello ejecutaremos el comando dir y le pasaremos como parámetro la ruta del fichero notepad.exe que debería estar en C:\Windows.

Vamos a echar un vistazo a system32. Para ello utilizaremos el comando DIR con la ruta del directorio C:\Windows\System32 como parámetro.

Hay muchos ficheros en este directorio. Vamos a mostrar solo los que tengan extensión EXE, para ello vamos a usar el caracter especial *, que es un comodín, que será interpretado por «cualquier cadena de texto»

No te asustes, lo que vamos a hacer ahora no va a afectar al sistema entero, afectar´á tan solo a esta terminal.

Primero vamos a ejecutar ping y vamos a comprobar que tenemos conexión con www.educatica.es

El comando ping se ha ejecutado, aunque el fichero ejecutable está en otro directorio, en concreto en C:\Windows\System32. Su ruta sería C:\Windows\System32\ping.exe. Sin embargo, se ha ejecutado, porque la ruta del directorio que contiene el comando ping está en la variable de entorno PATH.

¿Qué pasaría si borramos la variable entorno PATH? (como lo vamos a hacer aquí no afecta al sistema, solo afecta a esta ventana del interprete de comandos)

Qué pasará ahora si ejecutamos el mismo comando ping

No enecuentra el fichero ejecutable de estos comandos o aplicaciones, porque la variable de entorno que le decía la lista de los directorios en los que buscar, está vacía. Estas aplicaciones no están ni en memoria principal, porque no son comandos internos, ni en el directorio actual

Si ejecutamos DIR si funcionará porque es un comando interno.

Si le pasaramos al interprete de comandos la ruta del fichero ejecutable a ejecutar, si lo podrá ejecutar.

La importancia de la variable PATH y su configuración es que nos permite ejecutar aplicaciones que no sean ni comandos internos ni estén en el directorio actual usando nombres cortos.

Si abrimos otra terminal distinta, en la nueva terminal la variable PATH tiene un valor inicial establecido por el sistema operativo. De esta forma, en la nueva terminal podemos ejecutar el comando ping tan solo escribiendo el nombre del comando y no la ruta absoluta del fichero ejecutable.

En la antigua terminal tenemos otro entorno. Es decir, cada terminal tiene su propio entorno con sus propias copias de las variables de entorno del sistema.

Gestión de directorios

Abrimos una nueva terminal. Vamos a crear un directorio llamado educatica en el directorio actual.

La ruta absoluta del directorio educatica será C:\Users\alumno\educatica.

Dentro del directorio educatica, crea los directorios sistemas, redes y programacion.

Errores habituales

Esto creará los directorios dentro del directorio actual

Esto fallará porque creará el directorios sistemas dentro de educatica, pero redes y programación los va a crear dentro del directorio actual no del directorio educatica.

mkdir espera una lista de rutas de directorios a crear. Tenemos que dar la ruta completa para cada directorio.

Solución

El comando tree muestra el árbol de directorios de un directorio dado.

Dejar una respuesta