UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

13.4. El intérprete de comandos bash

Al comienzo de su ejecución, el intérprete de programa nos muestra el prompt, y está listo para ejecutar cualquier comando o programa en el directorio actual. Esto nos lleva a responder las tres primeras preguntas sobre este programa.

  1. ¿Cuántos comandos puede ejecutar BASH? Esto se puede responder utilizando el comando man del propio BASH. Escribe el comando man bash y se muestra una descripción muy detallada (¡y extensa!) de todo lo que es capaz de hacer BASH. Al ser tan grande el texto, se muestra paginado. Puedes pasar a la siguiente página pulsando la barra espaciadora, y la letra q para abandonar (quit). El comando man ofrece información para prácticamente todos los comandos y programas disponibles en Linux.

    Pero volviendo a la pregunta inicial, el número de comandos ofrecidos por BASH es simplemente demasiado grande para memorizar. Por tanto, la estrategia para aprender a trabajar con BASH es buscar un comando cuando se necesite, y si se utiliza a menudo, se acabará recordando. En la red puedes encontrar numerosos documentos que listan los comandos más utilizados. Como muestra se ofrece la Guía de Referencia de Comandos Unix/Linux publicada por FOSSwire. Los comandos en BASH típicamente tienen nombres muy cortos, pues hay que escribirlos en el terminal, y a menudo son abreviaturas de otros nombres (algunos igualmente crípticos). Por ejemplo, el comando man es la abreviatura de manual.

  2. ¿Cuántos programas puede ejecutar BASH? En realidad internamente no se distinguen entre comandos y programas. Por tanto, cualquier programa que se cree nuevo se puede ejecutar en BASH de forma idéntica a cualquier comando. Esta es la razón por la que la lista de comandos en BASH no ha parado de crecer en los últimos años.

    Toda aplicación tiene un nombre, y para ejecutarla sólo hay que escribirlo en el intérprete de comandos. Prueba a ejecutar el gestor de ficheros con nombre dolphin, el editor de texto (kate), el navegador (firefox) o la propia terminal de comandos (konsole). Fíjate que hasta que no terminas la ejecución del programa no se vuelve a mostrar el prompt en el intérprete.

  3. ¿Cómo sé cuál es el directorio actual? Pues como no puede ser de otra forma, BASH nos ofrece un comando para esto. El comando pwd muestra el directorio actual del intérprete por pantalla. El nombre es la abreviatura de print working directory. Y para saber exactamente cómo funciona este comando no tenemos más que combinar los dos comandos que hemos visto hasta ahora en uno sólo: man pwd. Recuerda pulsar la barra espaciadora para pasar de página, b para ir hacia atrás, y q para abandonar el manual.

    El contenido (ficheros y subcarpetas) del directorio actual se puede mostrar por pantalla con el comando ls (abreviatura de list). Prueba a ejecutar este comando en el intérprete.

Siguiendo con la filosofía que hemos descrito anteriormente, el propio manual, como todo programa, ofrece una página en la que describe su comportamiento. ¿Qué comando crees que hay que introducir para verla?

13.4.1. Los argumentos de un comando

Aunque cada comando ejecuta una tarea muy concreta ( como el comando man, que muestra el manual), hay múltiples aspectos de esa tarea que pueden ser modificados. Por ejemplo, el comando man puede mostrar aquellos comandos que tienen en su definición una palabra, o mostrar las páginas con diferentes codificaciones, o cambiar el tamaño de página que utiliza para mostrar el documento, etc. Estas variaciones sobre la funcionalidad de un comando se especifican mediante cadenas de texto a continuación del comando en lo que se denominan las opciones, parámetros o argumentos. La descripción de qué opciones ofrece cada comando y lo que hacen está incluida en su página de manual.

Los argumentos de un comando se dividen en dos tipos: aquellos objetos sobre los que hay que operar, y los argumentos para modificar su comportamiento. Los primeros se suelen incluir al final del comando separados por espacios (si hay más de uno). Los argumentos para modificar el comportamiento de un comando se suelen especificar precedidos del símbolo -. Por ejemplo, el comando man en lugar de buscar el nombre de un comando, puede buscar aquellos comandos en cuya descripción breve se encuentra una palabra dada. Este comportamiento se invoca con la opción -k seguido de la palabra clave, esto es:

$ man -k directorio

Prueba a ejecutar este comando. Verás que por pantalla aparece una línea por cada comando. Comprueba si aparece alguno de los que se han visto hasta ahora. En la página de manual del comando ls busca la opción -a. Ejecuta el comando ls con esa opción y comprueba que hace lo esperado.