El intérprete de comandos es programable
Una característica esencial del intérprete de comandos es que no sólo lee e interpreta las órdenes del usuario, sino que también es un lenguaje de programación bastante sencillo de utilizar. Los programas pueden ser tan sencillos cómo un sólo comando con algunas opciones o contener conjuntos de comandos y sentencias de programación del intérprete.
Los programas están diseñados para colaborar
Una idea básica que distingue Linux de otros sistemas operativos es que los programas son herramientas, y como tales, deben tener una función específica pero han de poder usarse para diferentes propósitos. Tres características son necesarias para conseguir esto:
- Los resultados de un programa deben poder usarse como datos de entrada para otros.
- Los programas deben estar preparados para trabajar en modo no interactivo, de forma que todas las opciones y datos que necesitan les puedan venir a través de un fichero.
- Por defecto, los programas deben leer la entrada estándar (el teclado) y mostrar los resultados en la salida estándar (la pantalla).
Cuando los programas pueden usarse de esta forma, es posible indicarle al intérprete que deseamos encadenarlos secuencialmente de forma que la salida de cada uno de ellos constituye la entrada para el siguiente.
Complejidad a la carta
La filosofía de Linux es proporcionar una gran cantidad de utilidades que realizan tareas simples de forma que el usuario básico pueda desenvolverse con comodidad, Pero al mismo tiempo, a través de la combinación de comandos y las capacidades de programación del intérprete, proporciona la posibilidad de crear nuevos comandos más complejos para los usuarios que así lo requieran.
El modo consola
Originalmente la interacción con el intérprete de comandos se realizaba a través de lo que se denominaban consolas (conjunto de teclado y pantalla) introduciendo órdenes en un entorno sin visualización gráfica, únicamente de texto. El intérprete muestra un indicador (prompt) en la línea de comandos para mostrar al usuario que puede introducir una orden. El formato del prompt es muy flexible, pudiendo mostrar información como el nombre del usuario conectado o el directorio actual, por ejemplo.
Actualmente, entornos como XWindow proporcionan interfaces gráficas que evitan muchas de las complejidades de la interacción a través de la consola. Sin embargo, existen todavía comandos (sobre todo de administración del sistema) que no están completamente soportados por aplicaciones gráficas y se hace necesario la interacción a través de lo que denominaremos modo consola o texto en contraste con el modo gráfico.
Sin embargo, en el mantenimiento remoto de servidores Linux, suele ser habitual usar el modo consola. Es conveniente, pues, estar familiarizado con su uso si vamos a tener que trabajar con servidores remotos.
Cuando tengamos que introducir órdenes, debemos tener en cuenta que los intérpretes de comandos de Linux distinguen mayúsculas y minúsculas.
Variables de entorno
Muchas utilidades de Linux, incluyendo el intérprete de comandos, necesitan información sobre el usuario y sus preferencias. Este tipo de información se almacena en las variables de entorno, que son gestionadas por el intérprete de forma que son accesibles a los programas que las necesitan.
Aunque es posible definirlas, existe una serie de variables de entorno predefinidas como por ejemplo las siguientes:
- PATH: Contiene la lista de directorios donde el intérprete buscará los comandos que el usuario pida ejecutar.
- HOME: Contiene la ruta absoluta hasta el directorio personal del usuario.
- PS1: Contiene la definición del prompt principal que muestra el intérprete en modo texto.