Está en la página 1de 28

Comandos Linux

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

• Por lo que esta SHELL sería la más utilizada


por el conjunto de los sistemas basados en
UNIX
Saber que Shell estamos utilizando:

echo $SHELL
/bin/bash

• Si queremos saber la versión:


echo $BASH_VERSION
2.05b.0(1)-release
• Saber donde se encuentra el archivo de bash

• Ver las Shells disponibles en nuestro sistema


• Si tenemos otra Shell y queremos cambiar a
Bash
Comando echo
• Sintaxis
echo [-ne] argumentos
Escribe los argumentos separados por blancos y
terminados en una nueva línea en la salñida
estandar.
Opciones:
-n: sin salto de línea
-e: activa la interpretación de caracteres de control
Comodines:
• Bash ofrece en sus estandares un conjunto de
características como los comodines que
facilitan la tarea del usuario

• De sustitución de caracteres: *?
Ejemplos:

ls *.txt

Lista la información de todos los archivos que tienen la extensión 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

[conjunto] el conjunto de caracteres


especificado dentro del parentesis

[!conjunto] Todos los otros caracteres que no se


encuentran especificados en el parentesis
• En estos ejemplos se podrían producir las siguientes salidas:

C[AO]SA
CASA COSA

Program[ao]
Programa Programo

Programa[123]
Programa1 Programa2 Programa3

Programa[1-6]
Programa1 Programa2 Programa3 Programa4 Programa5 Programa6

Consecutivos: [a-z] todas las letras minúsculas


Consecutivos: [A-Z] todas las mayúsculas

[a-zA-Z0-9] Todos las letras minúsculas, mayúsculas y los números del 0 al 9


• Comodín de expansión de texto { }
• Expande una palabra por cada cadena o caracter
que contienen las llaves.
• Los elementos se separan con coma dentro de las
llaves

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:

Además podemos usar este comodín también para referir a


nuestro HOME , pero debemos precederlo por una barra /
Por ejemplo

Expandería a:
Donde fernando es el directorio home

Para dirigir a nuestro Home ~/


Redirecciones

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

Ls info* >> ficheros.txt


Envía a archivo llamado ficheros.txt la información que el comando ls obtiene
de los archivos que comienzan con la cadena info
Aclaración: No se mostrará en pantalla la información sino que se envía a
archivo. Si el archivo tiene contenido , se agregará debajo de la última línea
escrita.

Ls info* >> ficheros.txt 2>> errores.txt


Igual que el caso anterior pero en el caso de surgir errores (como por ejemplo
que no haya ningún archivo con el patrón info , el error no aparecerá en
pantalla ni en el archivo ficheros.txt, se redirigirá a un archivo llamado
errores.txt
Salida de error
• Normalmente la salida de error (mensajes) es
redireccionada al directorio dev archivo null

dev/null

DEV : “Este directorio incluye todos los


dispositivos de almacenamiento, en forma
de archivos, conectados al sistema, es decir,
cualquier disco duro conectado, partición,
memoria USB, o CDROM conectado al
sistema y que el sistema pueda entender
como un volumen lógico de
almacenamiento”
Dispositivos standard I/O o de redireccionamiento (FILE
DESCRIPTORS - FD)

• File Descriptor 0 STDIN


Dispositivo de entrada estandar, por defecto el teclado.
• File Descriptor 1 STDOUT
Dispositivo de salida estandar, por defecto la terminal o pantalla.
• File Descriptor 2 STDERR
Dispositivo de salida de mensajes de error estandar, por defecto la terminal o
pantalla.

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].

• La salida o resultado del comando se le conoce como la salida


estándar [STDOUT] y es generalmente la terminal.

• Asi mismo si hay errores en la ejecución estos se conocen como la


salida de error estándar [STDERR] y es también por defecto la
terminal.

• Es posible (y muy necesario, sobre todo en shell scripting)


redireccionar la entrada y la salida sobre archivos en vez de utilizar
la entrada y salida estándar.

• Es importante saber que al redireccionamiento también se le


conoce o se le llama Standard I/O o también I/O
Ejemplos:

El comando DATE nos brinda la fecha y hora del sistema.


Realizamos la redirección del comando DATE a archivos:

#> date > archivo1


#> date > archivo2
#> date > archivo3
---- (Creamos 3 archivos)

Mostramos la información del archivo1 en pantalla:

#> cat archivo1


dom ago 11 15:29:53 CDT 2019

Con ls mostramos los tres archivos en el directorio que los creamos:

#> ls
archivo1 archivo2 archivo3

La salida del comando ls la podemos redireccionar a un archivo llamado listado.txt :

#> ls > listado.txt

#> 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:

Usando el comando echo y el operador de redirección


podemos enviar a archivo el texto.

echo “Hoy es sábado 22 de junio” > clase.txt


Si quisieramos agregar información a este archivo o a
cualquier otro, podríamos hacerlo utilizando operadores
de redirección pero debemos tener en cuenta que el
operador simple (>) va a crear un nuevo archivo si este no
existe o escribir sobre el borrando su contenido y
sustituyendo por la cadena o información que enviamos.
Si queremos agregar contenido al final sin borrar contenido tenemos
que usar el operador doble (>>) de esa forma estaremos haciendo un
append en el archivo o sea agregando al final (línea siguiente a la
ultima que se reconoce como escrita)

echo “Y estamos en clase de sistemas” >> clase.txt

Hoy es sábado 22 de junio


Y estamos en clase de sistemas

A tener en cuenta: Al utilizar el comando echo es importante tener en


cuenta que el texto lo encerremos en comillas dobles.

También podría gustarte