Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SHELL
Parte 3
SHELL
• Es el programa interprete de comandos
• El término en inglés significa caparazón o
cascara
• Las Shell que que encontramos en Linux
derivan de los anteriores sistemas UNIX
• Función: comunicar al núcleo del sistema con
el usuario, a través de instrucciones que se
ingresan en formato de texto (con sintaxis
específica para cada programa o comando)
• En las diferentes versiones de LINUX se pueden
encontrar diferentes SHELL
• Es posible cambiar una SHELL o personalizar
eligiendo la SHELL que queremos utilizar por
defecto
• Las diferentes SHELL pueden tener variaciones en
su funcionamiento, sintaxis de comandos, pasaje
de argumentos, operaciones matemáticas,
redirecciones.
• En las primeras versiones de UNIX se utilizó
BOURNE SHELL
• Otros SHELLS: Korn Shell (1980), C Shell o TCSH
(desarrollado entre 1970 y 1980), zsh o Z Shell
(1990), bash (1989)
USUARIO
SHELL
NÚCLEO
HARDWARE
BASH
• Interfaz de línea de comandos
Bourne Again Shell
• Es una interfaz muy popular de UNIX
• Originalmente escrito en 1989 para sistema
GNU
• Utilizado ampliamente para GNU/LINUX y
MAC OS de APPLE
• MAC OS X trae preinstalado BASH desde
versión 10.2
• Las anteriores tenían la shell TCSH
• BASH es la SHELL elegida por GNU por lo que
la mayoría de los sistemas LINUX la utilizan
echo $SHELL
/bin/bash
• De sustitución de caracteres: *?
Ejemplos:
ls *.txt
Ls informatic?.txt
Lista la información de todos los archivos que tienen el nombre informatic y un
caracter cualquiera más, por ejemplo informatica.txt, informatico.txt,
informatic1.txt …
• El tercer comodín permite indicar un conjunto
de caracteres que son validos para hacer
sustitución
C[AO]SA
CASA COSA
Program[ao]
Programa Programo
Programa[123]
Programa1 Programa2 Programa3
Programa[1-6]
Programa1 Programa2 Programa3 Programa4 Programa5 Programa6
arch.{h,c,cpp,o}
Expande a:
arch.h
arch.c
arch.cpp
arch.o
• Tílde ~
• Se usa para referirse al directorio Home de los usuarios en
los sistemas UNIX
• Por ejemplo:
• Expande por:
Expandería a:
Donde fernando es el directorio home
En el sistema todas las entradas y salidas de datos se manejan como flujos de bytes
(stream)
El sistema tiene asociada una entrada estandar (teclado) , una salida por defecto
(consola) y una salida estandar de error (usualmente es la consola donde se muestran
los mensajes de error)
REDIRECCIONES
Ejemplos:
ls info*
Muestra la información en pantalla de los archivos que comienzan con la
cadena info
dev/null
stdin, stdout, y stderr, como todo en Linux no son más que dispositivos, o
realmente archivos (file descriptors en este caso) que se heredan en cada
terminal que se abre, donde un shell es invocado.
#> ls -l /dev/std*
lrwxrwxrwx. 1 root root 15 ago 11 12:30 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 ago 11 12:30 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 ago 11 12:30 /dev/stdout -> /proc/self/fd/1
• En linux cualquier comando que se teclea está utilizando la entrada
estándar [STDIN].
#> ls
archivo1 archivo2 archivo3
#> ls
archivo1 archivo2 archivo3 listado.txt
Finalmente tenemos 4 archivos en el directorio
También podemos usar los operadores de redirección
para crear archivos que contengan cadenas de texto
personalizado o información que sea necesario guardar.
Por ejemplo: