shell - A/S Leonardo Carámbula

Anuncio
Shell
Conceptos Generales
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL
• Interface entre el usuario y el sistema
operativo (la capa más externa).
• Es un programa, el cual tiene la
capacidad de:
– leer y escribir en la terminal,
– ejecutar otros programas
• Comunicación:
– Interactiva
– Shell Script
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL
• Es el lenguaje de comandos de
LINUX.
• Al escribir un comando, es el Shell y
no Linux, quien se encarga de
interpretarlo y ordenar que se ejecute.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL
• Bourne shell (/bin/sh)
– Creado por Steven Bourne de AT&T
– Es el más antiguo, fiable y compatible entre
todas las plataformas UNIX
• Korn shell (/bin/ksh)
– Creado por David Korn
– Mas moderno, toma los comandos del anterior
y agrega nuevos
– En situaciones extremas ó complicadas, falla
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL
• Bourne-Again shell (/bin/bash)
– Creado por Brain Fox 1987
– Predeterminado en la mayoría de las
distribuciones de los sistemas GNU/Linux
• C shell (/bin/csh)
– Creado por Bill Joy
– Su sintaxis es muy parecida al lenguaje de
programación C
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL
• Características:
– Redireccionar la E / S
– Tuberias (pipeling)
– Alias de comandos
– Uso de metacaracteres
– Uso de variables
– Historial de comandos
– Procesos en background
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Redireccionar E/S
– Proceso (programa en ejecución)
Entrada Estándar
Salida Estándar
PROCESO
Teclado
Monitor
Error Estándar
Monitor
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Redireccionar E/S
– Hay tres archivos que son asociados
automáticamente a todo proceso:
• stdin
• stdout
• stderr
0
1
2
Sistemas Operativos III - ITS – EMT - CETP
(teclado)
(monitor)
(monitor)
Prof. L. Carámbula
Interactiva
• Redireccionar Entrada
– comando < archivo
mail < carta
– envia el contenido del archivo carta.
tr [a-z] [A-Z] < orden
– Cambia las mínusculas por
mayúsculas en el archivo orden.
Sistemas Operativos III - ITS – EMT - CETP
las
Prof. L. Carámbula
Interactiva
• Redireccionar Salida
– comando > archivo
ls > listado
– envia el contenido del directorio corriente
al archivo listado.
ls >> listado
– agrega al final del archivo listado
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Redireccionar Salida
– comando > archivo
cat > arch1
– escribir contenido
– ctrl + d (EOF)
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Redireccionar Error
– comando 2 > archivo
cd /root 2 > arch_err
– si el comando produce un error, este se
envía al archivo arch_err
– no se despliega el mensaje en la terminal.
cat arch1 arch2 2 >> arch_err
– en caso de error se agrega el mensaje en
arch_err
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Combinar Redireccionamientos
– comando < arch_E > arch_S 2> arch_err
– comando < arch_E >> arch_S 2>> arch_err
• No importa el orden
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Tuberias (pipeling)
– Comunica procesos entre si.
– La salida estándar de un proceso se
toma como la entrada estándar del
proceso siguiente.
sort /etc/passwd | head -10
– el contenido del archivo /etc/passwd se
ordena alfabéticamente y se muestran las
primeras 10 líneas.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Alias de comandos
– Permite utilizar un alias para un
determinado
comando,
incluyendo
parámetros.
– El comando se llama alias
alias clear = cls
• al digitar cls, se ejecuta clear
alias dir = ‘ls -l’
• al digitar dir, se ejecuta ls -l
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Alias de comados
– Se pueden eliminar los alias creados.
– El comando se llama unalias
unalias cls
unalias dir
• eliminan
los
anteriormente.
Sistemas Operativos III - ITS – EMT - CETP
alias
creados
Prof. L. Carámbula
Interactiva
• Metacaracteres
– permiten realizar sustituciones de
caracteres
* = todas las cadenas posibles de
caracteres
? = indica “cualquier” caracter (uno)
[a-z] = indica “cualquier” caracter
entre a y z.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Metacaracteres
[0-9] = indica “cualquier” caracter
entre 0 y 9.
^ = niega lo que continua.
[^0-9] = indica “cualquier” caracter que
no este entre 0 y 9.
[^aeiou] = indica “cualquier” caracter
que no sea vocal
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Metacaracteres
\ : protege el carácter que le sigue del
intérprete para considerarlo como tal.
• Por ej. \$var no mostraría el contenido de
var sino la cadena $var
“ ” : se emplea para contener texto con
espacios
‘ ‘ : el texto contenido se representará tal
cual.
El shell no interpretará nada
contenido entre ellas.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Metacaracteres
` ` : Las comillas invertidas le indican al
shell que debe ejecutar lo contenido entre
ellas.
• Si escribimos cantarch=`ls -l | wc -l`
podremos almacenar en una variable el
número de archivos de un directorio
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Variables de Entorno
– HOME - Camino absoluto al directorio
LOGIN del usuario
– PATH - Conjunto de directorios a los
que el shell va a buscar un comando,
cuando éste se ejecuta.
– PS1 - Es el carácter de prompt inicial
“$”.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Variables de Entorno
– LOGNAME - Contiene el nombre del
usuario conectado en la terminal
– MAIL - Archivo de correo
– SHELL - Interprete de comandos por
defecto
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Variables de Entorno
– TERM - Tipo de Terminal
• Para referirse al valor de una variable debe
tipearse con el caracter $ precediéndola, de
ésta manera el shell sustituye $nombre por
el valor que tenga asignado esa variable.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Variables del Usuario
– Una variable es un identificador, y el tipo es de
caracteres, al igual que en un lenguaje de
programación.
– Para asignar un valor, se digita el nombre
seguido de un símbolo de =, seguido del valor.
– No debe haber espacios en blancos entre el = y
el nombre de la variable ó el valor. (si se
quisiera, el valor deberá estar entre “ ”)
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Variables del Usuario
a=hola
b=22:30
texto_hrs=“ la hora actual es:”
echo $a
• hola
echo $texto_hrs$b
• la hora actual es:22:30
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Historial de commandos
– Al presionar la tecla , se visualizan los
comandos ingresados anteriormente.
history -c
• borra el historial de comandos
history
• despliega la lista de todos los comandos
ingresados anteriormente
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Proceso en background
– Al final de la instrucción colocar el caracter &
– Este se ejecuta en background
• me permite ejecutar otros comandos mientras se
ejecuta el proceso background.
cp /home/user/*.dat /etc/backup &
– copia todos los archivos que finalicen en .dat al
direcotrio /etc/backup, permitiendo ejecutar
otros comandos durante el proceso.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
• Proceso en background
– Ejemplo:
.
.
/etc/reloj.sh
/etc/reloj.sh &
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Interactiva
/etc/reloj.sh
#!/bin/bash
while (( 1 ))
do
# se formatea la hora y la fecha como la veremos en pantalla
cmd=`date +"%H:%M:%S %F"`
# se guarda la posición actual del cursor
echo -n -e "\033[s"
# se calcula el total de columnas de la terminal o consola y se posiciona el cursor en esa
# posición menos 19 caracteres que es el largo de 'HH:MM:SS AAAA-MM-DD'
C=$((`tput cols` - 19))
tput cup 0 $C
# establecemos el color del reloj en verde invertido
# setaf 2 = verde, smso = invertido
COLOR=`tput setaf 2; tput smso`
# se regresa a texto normal, sino todo saldría verde
NORMAL=`tput sgr0`
# imprimimos en la pantalla la variable con la fecha y hora junto con los cambios de color
echo -n $COLOR$cmd$NORMAL
# se reestablece el cursor a donde se encontraba originalmente
echo -n -e "\033[u"
# el ciclo se ejecuta cada segundo
sleep 1
done
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Descargar