Un interprete de comandos (o shell) es un programa que recoge lo que el
usuario ha introducido y lo traduce a instrucciones, en el MS-DOS el interprete
de comandos es el COMMAND.COM e incluso el mismo Windows. En Linux existen
muchas shell como bash, ssh, o el sistema X-Window.
El interprete arranca nada mas terminar de arrancar el sistema.
Por ejemplo, veamos un inicio de sesión:
localhost login: pedvi
Password:
Welcome to localhost!
pedvi@localhost:~$
pedvi@localhost:~$ es el prompt del interprete que indica que esta listo
para recibir ordenes, a partir de ahora lo abreviaremos usando solamente
"$ " para un usuario normal y "# " para el root.
Cuando el interprete de comandos recibe un comando primero analiza la expresión
y luego entrega la orden al comando .
Por ejemplo:
$ cp hola /home/pedvi
En este caso no tendría que expandir ni modificar nada, simplemente entregaría
"hola" y "/home/pedvi" al comando "cp" como
argumentos (más adelante veremos para que sirve este comando).
$ cp ho* ~
Ahora si tendría que cambiar unas cosas: El "ho*" lo sustituiría
por cualquier archivo del directorio cuyo nombre empezara por "ho"
y "~" lo sustituiría por el directorio del usuario (en este caso
/home/pedvi, en el caso del usuario2 /home/usuario2 y en el caso del root
/root).
En el caso de que solo hubiera un archivo que empiece por "ho",
las dos ordenes hacen lo mismo.
Pero, ¿como sabe el interprete donde esta el comando "cp"?
Muy fácil: en la mayoría de sistemas operativos existe una variable que
contiene la dirección donde están los comandos.
En Linux esta variable se llama "PATH", para ver lo que contiene
una variable usaremos en comando "echo" que sirve para mostrar
los argumentos que se le den.
Para mostrar el contenido de una variable con "echo" hay que
anteponer "$" al nombre de la variable:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
El interprete buscara el comando en estos directorios en el orden en el
que están en PATH.
Para cambiar el contenido de una variable haremos:
$ variable=valor
$ export variable
En el caso de PATH haríamos lo siguiente para añadir a su valor el directorio
/home/pedvi:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
$ PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/home/pedvi
$ export PATH
Es importante que copiemos el valor de PATH antes de cambiarla para que
no perdamos ningún directorio.
|