Shell PDF
Shell PDF
Shell PDF
El shell de GNU/Linux
1. Aspectos generales
El shell es el programa que permite al usuario interactuar con el sistema en una terminal de texto (consola). Cada vez
que un usuario inicia sesin en una terminal, el shell es ejecutado y toma el control de la entrada y salida del sistema.
Existen varios shells. Algunos ejemplos son:
csh
zsh
ksh
dash
bash
El shell predeterminado en sistemas basados en Debian es bash (Bourne-Again Shell, basado en el Bourne Shell del
UNIX original).
La herramienta principal de un shell es la lnea de comandos, que le permite al usuario ejecutar comandos de forma
interactiva. Adems la mayora de los shells tienen otras herramientas que los convierten en lenguajes de programacin
completos con variables, condicionales, lazos de control, funciones, etc. Es posible escribir pequeos programas o scripts
para automatizar la ejecucin de secuencias de comandos.
2. La lnea de comandos
Nota: Las herramientas y caractersticas descritas en este documento aplican nicamente para bash. Si bien es cierto
algunas caractersticas son comunes a todos los shells, es necesario investigar cuales son las herramientas equivalentes
si se utiliza otro shell.
Cuando la lnea de comandos est disponible para ejecutar nuevos programas, el shell despliega el indicador de
comandos (command prompt): $ para el usuario normal y # para el superusuario. Adems, el indicador de comandos
puede congurarse para mostrar informacin til para el usuario. La informacin mostrada por defecto en sistemas
Debian/Ubuntu es:
xxxx@yyyy:zzzz$
1
IE-0117 Programacin Bajo Plataformas Abiertas El shell de GNU/Linux
Ejemplos:
/home/pedro/Documents/*.pdf corresponde a todos los archivos que terminan con .pdf del directorio /home/pedro/
Documents.
/home/maria/??.txt corresponde a archivos en el directorio /home/maria cuyo nombre tiene dos caracteres cuales-
quiera seguidos por .txt (01.txt, aa.txt, etc.)
4. Variables de entorno
Como se mencion anteriormente, el shell tiene caractersticas equivalentes a los lenguajes de programacin. Las
variables de entorno permiten almacenar valores de igual manera que las variables de un lenguaje de programacin.
$ A=Linux
$ echo $A
Linux
$ DEST=/home/adiaz/Documents
$ cp doc1.pdf $DEST
Cuando se desea almacenar un valor en una variable, debe usarse la sintaxis VARIABLE=valor, sin espacios alre-
dedor del signo =.
Aunque no es obligatorio, se acostumbra usar maysculas para los nombres de las variables de entorno. Cuando
se desea obtener el valor almacenado en una variable de entorno se debe anteponer el carcter $ al nombre de
la variable.
Las variables de entorno tienen un alcance limitado al shell que se est ejecutando. Si se ejecuta un nuevo shell a
partir del shell actual la variable no estar denida, a menos que se use el comando export:
$ export A=Linux
$ unset A
2
IE-0117 Programacin Bajo Plataformas Abiertas El shell de GNU/Linux
5. El PATH
PATH es una variable de entorno que almacena una lista (separada por :) de los directorios que contienen ejecutables
en el sistema:
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
Los programas que se encuentran en un directorio del PATH pueden ejecutarse escribiendo slo el nombre de archivo
en la lnea de comandos. Si un ejecutable no est en el PATH, debe escribirse la ruta completa al archivo.
/.profile, /.bash profile, /.bashrc - Archivos de conguracin para el usuario. Se recomienda agregar todas
las conguraciones en /.bashrc.
La salida (stdout) del comando ls es redirigida al archivo /tmp/lista. Si el archivo ya exista, sus contenidos son
borrados antes de escribir en l.
La salida (stdout) del comando ls es redirigida al archivo /tmp/lista. Si el archivo ya exista, el nuevo contenido es
agregado al nal.
3
IE-0117 Programacin Bajo Plataformas Abiertas El shell de GNU/Linux
$ comando1 | comando2
En este caso, la salida y el error estndar de comando1 son enviados a la entrada estndar de comando2.
Ejemplos:
#!/bin/bash
# Esto es un comentario
4
IE-0117 Programacin Bajo Plataformas Abiertas El shell de GNU/Linux
comando-1
comando-2
...
comando-n
Para ejecutar el script deben cambiarse los permisos del archivo para que este sea ejecutable. Una vez hecho esto
puede llamarse por su nombre (o ruta completa si el directorio no est en el PATH):
$ chmod +x script
$ ./script
Otra opcin es pasar el script como argumento a un nuevo shell usando el comando bash. El nuevo shell ejecutar
el script y nalizar:
$ bash script
m - minuto (0 - 59)
h - hora (0 - 23)
5
IE-0117 Programacin Bajo Plataformas Abiertas El shell de GNU/Linux
0 * * * * comando1
43 23 * * * comando2
0 12 * * 2 comando3
0 0 * * 1-5 comando4