Professional Documents
Culture Documents
Linux para
Principiantes
Temario
El interprete de comandos...........................................................................................................3
El interprete bash, historia y el estandar POSIX..........................................................................4
Bourne Again Shell: un vistazo....................................................................................................4
Algunos comandos básicos.........................................................................................................5
El interprete de comandos
Un intérprete de comandos, también conocido como “shell”, es un programa informático que nos
permite a los operadores traducir las órdenes que le introducimos al sistema, en un conjunto de
instrucciones directas al núcleo del sistema operativo, y al sistema operativo en general.
Un intérprete de comandos define una sintaxis en particular, que hace que las instrucciones
enviadas deban respetarla, tal como si fuese un lenguaje de programación. Incluso la mayoría de
los intérpretes de comandos poseen un lenguaje de scripting que nos permite programar rutinas
en archivos de procesamiento por lotes y de esta forma ejecutar con una sola instrucción todas las
que incorporemos al archivo.
El sistema operativo GNU/Linux basa toda su configuración en los intérpretes de comandos. En
otros sistemas operativos, por ejemplo, M$ Windows, la mayor parte de la configuración se lleva a
cabo mediante el uso de la interfaz gráfica de usuario, abriendo ventanas, dando clic's, cargando
datos en los campos de texto, etc.
Esa es una de las principales diferencias que tenemos respecto de GNU/Linux en cuanto a la
operación. En GNU/Linux la totalidad de las configuraciones puede llevarse a cabo mediante un
intérprete de comandos, introduciendo comandos que modifiquen o configuren ciertos aspectos
del sistema.
Un intérprete de comandos en GNU/Linux es una terminal de texto con un cursor esperando que
introduzcamos alguna orden, y presionemos la tecla enter. El trabajo con el interprete de
comandos es interactivo, introducimos una orden, el interprete nos devuelve una respuesta, y
luego nos permite introducir otra orden. Las respuestas pueden ser satisfactorias, cuando la orden
se ejecutó correctamente y pudo mostrar un resultado, o puede ser errónea, cuando la orden falló
por alguna razón, por ejemplo, por un error de sintaxis.
Cualquier software que tenga estas características puede ser llamado intérprete de comandos.
Tenemos intérpretes de comandos para interactuar con el sistema operativo, que son el motivo de
esta clase. Pero también tenemos intérpretes de comandos para interactuar con servidores ftp,
usando sintaxis y comandos de ftp; para interactuar con servidores de correo electrónico, con
casillas de correos de usuarios, con servidores web, con terminales remotas, etc.
Cuando decimos que instalamos un “front-end” para cierta aplicación, lo que hacemos es instalar
una interfaz “más amigable” para manejar, desde otro punto de vista, el mismo intérprete de
comandos. Ese front-end generalmente es una interfaz gráfica de escritorio, o una interfaz web,
pero en cualquier caso, las interfaces nos “facilitan” la tarea de interactuar con el intérprete en
cierto aspecto, aunque dependemos de la interfaz gráfica para correr los comandos, y lo más
probable es que no tengamos todos los comandos disponibles desde ese front-end para manejar
completamente el intérprete de comandos, o simplemente necesitemos opciones que los
comandos soportan, pero que no hay forma de accederlas desde la interfaz gráfica.
En GNU/Linux, como cualquier software de código abierto o software libre, poseemos varias
alternativas para la misma aplicación, y un intérprete de comandos no es la excepción. En el
archivo /etc/shells se encuentra la lista de todos los intérpretes de comandos soportados en
nuestro sistema, y podemos instalar o eliminar cualquiera.
Entre esos intérpretes se encuentra uno muy difundido, y el intérprete de comandos por defecto
-3-
en la mayor parte de las distribuciones actuales: el BASH.
-4-
El formato es:
usuario@equipo: path$
Primero vemos el usuario actual que está trabajando, y el equipo en el que levantó el interprete de
comandos, separados por un símbolo de arroba.
Seguido, se ven dos puntos, y el path, o ruta del directorio actual en el que estamos parados
trabajando. En el caso de que en vez de una ruta o nombre de directorio veamos el símbolo “~”,
significa que el usuario que está trabajando se encuentra posicionado en su directorio home.
Por último veremos uno de dos símbolos: '$' o '#'. En el caso de $, indica que el usuario está
trabajando con privilegios de usuario común, mientras que si vemos un prompt que termina en #
implica que el usuario está trabajando con privilegios de root, o superusuario.
El formato del prompt cambia de un shell a otro. Este es el formato por defecto de la versión actual
del shell. Igualmente el contenido del prompt puede cambiarse sin ningún inconveniente mediante
la edición de variables de entorno, específicamente la variable PS1.
Por defecto en el prompt aparece como path únicamente el nombre del directorio actual, pero no
muestra, generalmente, toda la ruta, por una cuestión de ahorro de caracteres en pantalla, y
facilidad para trabajar con el intérprete de comandos.
Si quisiéramos por ejemplo, listar el contenido del directorio actual, podríamos utilizar el comando
“ls”:
-5-
La sintaxis básica de un comando completo es:
nombre_comando [opciones] [argumentos]
Los corchetes indican que tanto las opciones como los argumentos son opcionales en la ejecución
del comando.
Las opciones pueden ser generalmente de dos tipos: de un carácter, o de una cadena de
caracteres, o palabra. Cuando se trata de opciones de un carácter, se usa un signo “-” para
presidirla, mientras que las opciones de cadena usan dos signos: “--”.
Por ejemplo, para listar el contenido del directorio actual en formato extendido, mostrando más
información de los elementos del sistema de archivos, podemos usar la opción -l del comando ls:
Y para listar el contenido del directorio raíz del sistema, podemos pasárselo al comando ls como
argumento:
-6-
Cabe destacar que el orden de opciones y argumentos no tiene importancia en la mayor parte de
los casos, y el efecto del comando corriéndolo con sus opciones y argumentos en diferente orden
debería ser el mismo.
Más adelante en el curso veremos gran cantidad de comandos y opciones particulares para cada
uno, pero veremos también que la forma de llamar a los comandos y sus opciones y argumentos
es siempre la misma, y respeta la sintaxis de comandos de nuestro shell bash.
-7-