Está en la página 1de 6

Terminal

Como todos los sistemas operativos derivados de Unix, GNU/Linux dispone de un intrprete de rdenes o terminal (en ingls se utiliza la palabra shell) que hace de interfaz entre el usuario y el propio sistema operativo y cuyo nombre es bash(acrnimo de Bourne Again SHell).

Introduccin
Un terminal es una forma de acceder al sistema sin utilizar la interfaz grfica, es decir, realizar todo tipo de tareas en formato texto. La forma de utilizar el sistema de este modo es mediante rdenes. El terminal muestra en pantalla un indicador de lnea de rdenes (en ingls se utiliza la palabra prompt que literalmente traducira "prontuario" pero se puede definir como ayuda visual o palabra que ayuda) esperando que el usuario introduzca una orden. Este indicador finaliza generalmente por un caracter $, cuando eres un usuario normal, o # cuando eres un sper usuario (administrador). El prompt se puede configurar al gusto (lee el artculo de prompt que se encuentra en piazza) y en ubuntu muestra el siguiente aspecto:

usuario@equipo:directorio actual$

El carcter ~ que usualmente vers al iniciar un terminal indica que ests en el directorio/home/usuario. Es una especie de abreviatura. Para acceder a una terminal se puede hacer de dos formas, una es con una aplicacin como el terminal de GNOME, xterm o konsole de KDE, que son emuladores de la terminal dentro de una interfaz visual. Otra forma es salirse del entorno grfico y acceder a un entorno completamente en modo texto, algo as como entrar en slo smbolo de sistema en Windows 98. Para esto ltimo debemos teclear Control+Alt+F1. Linux proporciona por defecto seis terminales de este tipo, de Control+Alt+F1 aControl+Alt+F6. Si queremos volver al modo grfico lo hacemos con Alt+F7.

Entrada, salida y error estndar


Como bien se explica en el artculo sistema de archivos que se encuentra en piazza, en Linux todo es un archivo. Cada vez que ejecutamos una orden, el sistema operativo le abre automticamente tres interfaces (en los sistemas operativos tipo UNIX se utiliza el trmino archivo): la entrada estndar, la salida estndar y el error estndar.

La entrada estndar (stdin) se refiere al archivo por el que una orden recibe su entrada (por defecto, es el teclado). La salida estndar (stdout) se refiere al archivo por el que una orden presenta sus resultados (por defecto, es la pantalla o ms concretamente la ventana en la que se est ejecutando el intrprete de rdenes). El error estndar (stderr) se refiere al archivo por el que una orden presenta los mensajes que va generando cuando ocurre un error (por defecto, tambin es la pantalla).

Estos archivos se crean en el directorio /dev.

Redireccin
Antes de que se ejecute una orden, es posible redirigir cualquiera de sus archivos de salida, es la redireccin. Para llevarla a cabo es necesario utilizar los operadores de redireccin que se procesan en el orden en el que aparecen:

Redireccin de la entrada estndar


Cuando se quiere redirigir la entrada estndar de una orden a un archivo, es necesario utilizar el operador de redireccin '<' seguido del nombre del archivo. En este caso, una orden lee los datos de entrada que necesita desde el archivo sealado, en vez de desde el teclado.

Redireccin de la salida estndar


La salida por defecto de cualquier orden dada en el bash es el monitor. Por ejemplo, si utilizas la orden cal, te mostrar un calendario en la pantalla. Sin embargo puedes hacer que te enve esos datos a un documento de texto por ejemplo escribiendo lo siguiente:

$ cal 2006 > mitexto.txt vemos como se utiliza el operador '>' para establecer que la direccin de la salida ser un archivo de texto llamado mitexto.txt, si el archivo no existe se crea, y si existe se vaca antes de hacer la redireccin. Para que al redireccionar no borre el contenido de un archivo que ya existe, es decir, que se agregue el calendario al final del archivo, se debe utilizar el operador '>>' .

Redireccin del error estndar


Cuando se quiere redirigir el error estndar de una orden a un archivo, es necesario utilizar el operador de redireccin '2>' seguido del nombre del archivo. Como en la salida estndar, en el caso de no existir el archivo se crea, y en el caso de existir, el archivo se vaca antes de hacer la redireccin. En el caso de que se quiera aadir el error estndar de una orden sin borrar el contenido de un archivo que ya existe, el operador de redireccin a utilizar debe ser '2>>' . Por ejemplo, si introduces en el terminal:

$ sadfasgdgfadfgsd Te mostrar un error por pantalla ya que la orden no existe. Si redireccionamos el error estndar a un archivo:

$ sadfasgdgfadfgsd 2> error.txt El error ahora no se muestra por pantalla, como si nada pasara; se guarda en el archivo error.txt.

Los comodines
Los comodines son unos caracteres especiales que pueden sustituir a nombres y a partes de nombres de los archivos y/o directorios. Esto facilita especificar mltiples nombres como argumentos de una orden.

'*' : sustituye cualquier secuencia de caracteres. '?' : sustituye un nico caracter.

Variables
Como en cualquier lenguaje de programacin, se pueden utilizar variables en las rdenes. No hay ninguna necesidad de declarar la variable. sta se crea automticamente al asignarle cualquier valor. Por ejemplo:

$ Ejemplo="Esto es un ejemplo" ; echo $Ejemplo El caracter ';' se explica ms adelante. El comando echo muestra por la salida estndar cadenas de texto separndolas con un espacio. Hay que tener en cuenta que:

No debe aparecer ningn espacio entre el nombre de la variable, la asignacin (=) y la cadena. La referencia a cualquier variable se hace poniendo el smbolo '$' delante de su nombre. Como se puede observar para poder asignar la cadena a la variable Ejemplo hemos tenido que utilizar las dobles comillas. Si no lo hubisemos hecho (escribiendo $ Ejemplo=Esto es un ejemplo) habramos obtenido un error ya que el intrprete de rdenes slo habra asignado Esto a Ejemplo y habra intentado ejecutar la palabra es como una orden.

Existen varios tipos de entrecomillados:

Las dobles comillas se utilizan normalmente para las cadenas pero hay que destacar que el caracter especial $ es interpretado entre las dobles comillas cuando viene seguido de un nombre de variable, dando lugar a la sustitucin de la variable por su valor:

$ var=5 ; echo "Aparece el valor $var"

Entre las comillas simples, no es interpretado ningn caracter especial y se escribe tal cual lo que hay entre ellas:

$ var=5 ; echo 'No aparece el valor $var'

Podramos obtener el mismo resultado utilizando doble comillas si ponemos delante del caracter especial $ el caracter de escape \.

$ var=5 ; echo "No aparece el valor \$var"

Las comillas simples inversas hacen que se ejecute la orden que contienen, asignando el resultado de la ejecucin a la variable:

$ var=`date` ; echo "Hoy es $var"

Variables de entorno
Existen variables asignadas por el sistema operativo desde que se inicia una sesin hasta que la cerramos. Estas variables pueden ser utilizadas desde cualquier terminal.

Para ver las todas las variables de entorno definidas, se utiliza la orden env sin argumentos:

$ env stas son algunas de las variables que ms se usan:

HOME: ruta de nuestro directorio personal. USER: nombre de usuario asignado. SHELL: ruta al intrprete de rdenes que se ejecuta por defecto. HOSTNAME: nombre asignado al equipo. PATH: rutas en las que el intrprete busca las rdenes a ejecutar cuando no especificamos donde estn.

rdenes
En una orden simple, la primera palabra especifica la orden a ser ejecutada y las palabras restantes se pasan como opciones y argumentos de la orden:

$ orden [ opciones ] [ argumentos ]

Tanto para archivos, ficheros, rdenes y opciones de rdenes, las maysculas son determinantes.

Las rdenes simples devuelven un valor que representa su estado de salida. Si no ha habido ningn error el valor devuelto es un 0, en caso contrario devolver un valor distinto de 0. Podemos ver en todo momento cual es el valor devuelto poniendo la orden:

$ echo $? Es decir, se almacena en la variable ?. La mayora de las rdenes disponen de una ayuda en forma de manual. Para acceder a este tipo de ayuda basta con introducir en el terminal:

$ man orden Si bien todas las rdenes y programas disponen de una breve ayuda y/o descripcin cuando se le pasa como opcin -h o --help.

En general; si no se ha trabajado mucho con una orden, es muy conveniente leer la pgina del manual antes de ejecutarla.

Navegacin e interaccin con ficheros

Cambiar el directorio de trabajo (change directory):

$ cd <opciones> <ruta>

Listar el contenido de directorios (list):

$ ls <opciones> <ficheros>

Crear un directorio (make directory):

$ mkdir <opciones> <nombre del directorio>

Borrar un directorio (remove directory):

$ rmdir <opciones> <nombre del directorio>

Copiar un archivo o directorio en el directorio especificado (copy):

$ cp <opciones> <archivo> <ruta>

Mover un archivo o directorio a un archivo o directorio. Se utiliza tambin para renombrar; el origen y destino es un archivo (move):

$ mv <opciones> <archivo> <ruta>

Borrar archivos o directorios (remove):

$ rm <opciones> <archivo> Si un directorio no est vaco no es posible borrarlo con la orden rmdir. La orden rm nos lo permite con la opcin R borrando el contenido del directorio especificado y todos sus subdirectorios de forma recursiva (ver su pgina del manual). Hay que tener mucho cuidado con la orden:

$ rm -R <directorio>

Ya que borra todos los archivos y directorios dentro del directorio a borrar.

Mostrar por pantalla el contenido de los archivos por la salida estndar. Si no se especifica
ningn archivo, la orden repite todo lo que se ha escrito por la entrada estndar. Para indicar que se ha acabado de escribir hay que pulsar CTRL+D.

$ cat <opciones> <archivos>

Buscar archivos recorriendo rboles de directorios especificados por las rutas, evaluando de
izquierda a derecha las condiciones de bsqueda. Adems se pueden especificar acciones sobre los resultados obtenidos:

$ find <ruta(s)> <condicin(es) de bsqueda> <acciones>

Mostrar el nombre del directorio en el que uno se encuentra situado (print working directory).
Se dice que ese directorio es el directorio de trabajo: $ pwd <opciones>

Cambiar los permisos de un archivo.

Estructuras de control de flujo Listas de rdenes


Una lista de rdenes es una secuencia de una o ms tuberas separadas por uno de los operadores ;, &, && o || y terminada opcionalmente por ;, & o (nueva lnea).

Archivos de rdenes o scripts

Tuberas
Una tubera es una secuencia de una o ms rdenes separadas por el carcter '|'. En este caso la salida estndar de una orden se conecta con la entrada estndar de la siguiente orden, por eso el nombre de tubera. El intrprete de rdenes espera a que todas las rdenes de la tubera terminen antes de presentar un resultado por la salida estndar. El estado de salida de una tubera corresponde al estado de salida de la ltima orden. Asociado a las tuberas se suelen utilizar una serie de rdenes que se utilizan como filtros (por ejemplo la orden grep). Ej, mostrar slo los ficheros que no sean directorios:

$ ls -l | grep "^-"

También podría gustarte