Anda di halaman 1dari 35

75.

08 Sistemas Operativos
Lic. Ing. Osvaldo Cla
Lic. Adrin Muccio
Facultad de Ingeniera
Universidad de
Buenos Aires
Sell Scripting I
Sell Scripting I
FIUBA 75.08 Sistemas Operativos Shell Scripting 2
!ni"
#$u% es !ni"&
'voluci(n desde Multics
Sistemas A)iertos
Sa)ores
*en +ompson
,ennis -itcie
FIUBA 75.08 Sistemas Operativos Shell Scripting 3
!ni"
Cultura !ni"
Lengua.es/ 01234 C5 C665 C75 8ava
Sells/ s5 9s5 cs5 )as
'"presiones -egulares : A;*
'ditores/ vi < vim
=rotocolos/ +C=<I=5 'ternet5 >++=5 etc
Otras >erramientas/ entornos ?@indo@5 AB!5 etc
FIUBA 75.08 Sistemas Operativos Shell Scripting 4
CaracterCsticas =rincipales/
Multiproceso < Multiusuario
Los recursos del sistema son administrados por el
*ernel
*ernel
!ni"
S.O
FIUBA 75.08 Sistemas Operativos Shell Scripting 5
'l *ernel implementa los servicios esenciales del
S.O./
Administraci(n de Memoria
Administraci(n de =rocesos
Concurrencia
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting
+odos los procesos se comunican con el *ernel
por medio de llamadas al sistema conocidas
como System Calls
Son un listado de Dunciones con prototipo
standariEado
'.emplo/ read5 @rite5 e"it5 etc
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting 7
File S:stem
's una estructura .errGuica5 agrupada por
directorios
'.emplo de ordenamiento del File S:stem
!ni"

< .
H H H H H H H H H
)in dev etc ome include li) proc usr tmp

H H H H
pass@d osts init.d rc.d
FIUBA 75.08 Sistemas Operativos Shell Scripting 8
IEverything in Unix are FilesJ 2 *ernigan < =i9e
=ara standariEar : simpliDicar la Dorma de acceso
a los recursos5 !ni" los trata como arcivos
Los directorios5 las terminales5 el teclado5 los
dispositivos de I<O tanto magn%ticos como
(pticos son arcivos
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting !
'.emplos dispositivos/
<dev<rmt<K/ cinta
<dev<da5/ disco
<dev<pts0/ terminal
<dev<null/ elimaci(n del sistema
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting "0
!ni" mane.a los conceptos de Xterm : Terminal
Virtual
+erminales Virtuales son terminales de te"to Gue
estan implementadas en el mismo ost : se
accede desde la consola presionando AL+2FL5
AL+2FM5 etc.
+am)i%n son terminales virtuales5 las Gue
a)rimos desde un ost remoto5 si el ost no
Duera !ni" necesitaremos un emulador de
terminal.
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting ""
!ni" es FULL DUPLEX5 los caracteres Gue se
tipean5 se envCan al sistema 0*ernel45 el cual
los pasa a la terminal
'ste es el proceso conocido como eco5 se puede
desactivar por e.emplo para el tipeo de claves
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting "2
Adems del eco a: otras propiedades de la
terminal Gue se pueden conDigurar5 por e.empo/
!ni"
3 stt: Neco Oelimina el eco
3 no se ve lo Gue escri)o
3 stt: eco Orestaura el eco
3 stt: erase backesace 3 stt: erase )ac9espace
3 stt: intr PC O Interrupcion de procesamiento
FIUBA 75.08 Sistemas Operativos Shell Scripting "3
!ni"
Sell
InterDaE entre SO : usuario
Interpreta comandos
,etermina Dormas de e.ecuci(n
'"pande caracteres comodines
'"pande varia)les de am)iente
Lengua.e de scripting
FIUBA 75.08 Sistemas Operativos Shell Scripting "4
Ingreso al Sell
'n una terminal del sistema se autentica el
usuario con su clave : en ese momento se le
asigna una sesi(n al usuario
!n usuario puede tener InJ sesiones a)iertas en
distintas terminales
!na veE Gue el sistema devuelve el control5
aparece la lCnea de comandos del sell Gue el
administrador del sistema le asigno al usuario
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting "5
Ingreso de Comandos
!ni"
> echo I>ola MundoJ
>ola Mundo
3 Q
FIUBA 75.08 Sistemas Operativos Shell Scripting "
!ni"
Algunos Comandos tiles/
adduser
cal
date
sort
)atc
noup
read
cp
mv
rm
man
ead
tail
tr
ln
p@d
@c
ps
set
tal9
touc
Dind
tar
t:pe
diDD
co@n
sleep
@o
man
grep
sed
9ill
m9dir
more
cat
FIUBA 75.08 Sistemas Operativos Shell Scripting "7
=rimer Sell Script
!ni"
O Mi primer sell
eco >ola Mundo
/@G
3 vim ola.s
FIUBA 75.08 Sistemas Operativos Shell Scripting "8
Si acemos ls Nl5 listamos el contenido del
directorio con los permisos de cada uno de los
arcivos5 en este caso
!ni"
Permisos links dueo grupo tamao fecha nombre
2r@2r@2r22 K amuccio grupoK L00 8ul M0 K7/RK ola.s
FIUBA 75.08 Sistemas Operativos Shell Scripting "!
Cada arcivo < directorio tiene asociado un
con.unto de permisos5 los permisos son/
Lectura
'scritura
'.ecuci(n
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting 20
'n primera instancia el o@ner es el usuario Gue
crea el arcivo5 luego se lo puede asignar a
otro usuario con el comando cho!n "ue#o
archivo
'l grupo es el IprincipalJ del usuario Gue crea el
arcivo5 se puede cam)iar el grupo con el
comando chgr gruo archivo
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting 2"
=ara poder e.ecutar nuestro script
!ni"
3 cmod 6" ola.s
3 ola.s
>ola Mundo
3Q
Otra sinta"is para los mismos permisos
3 cmod 775 ola.s
3 ola.s
>ola Mundo
3Q
FIUBA 75.08 Sistemas Operativos Shell Scripting 22
!ni"
Los arcivos se crean con un con.unto de
permisos por deDecto asignado por el
administrador.
Se puede modiDicar mediante el comando umas9
> umask S # lista el modo
> umask u=rw,g=rw,o=r # setea 664
FIUBA 75.08 Sistemas Operativos Shell Scripting 23
'.ecuci(n Foregroun" con proceso i.o
!ni"
3 scriptK.s scrit$%sh necesita ermiso "e e&ecuci'n
no nos "evuelve el control hasta (ue no )inali*a

3 Q
3 cp origen.dat destino.dat S more destino.dat
FIUBA 75.08 Sistemas Operativos Shell Scripting 24
'.ecuci(n +ackgroun" con proceso i.o
!ni"
3 scriptK.s T scrit$%sh necesita ermiso "e e&ecuci'n
,os "evuelve el control en el momento
!" #$#%& muestra el nmero de proceso
3 Q
3 ps
=I, ==I, ++U +IM' CM,
575R K pts<V 00/00/00 9s
L0LW5 575R pts<V 00/00/00 scriptK.s
L08VK 575R pts<V 00/00/00 ps
3 Q
XKY 6 ,one scriptK.s nos avisa Gue DinaliE(
FIUBA 75.08 Sistemas Operativos Shell Scripting 25
'.ecuci(n Foregroun" sin proceso i.o
!ni"
3 . .scriptK.s scriptK.s no necesita permiso de e.ecuci(n
no nos devuelve el control asta Gue no DinaliEa
se e.ecuta en el mismo am)iente5 eso signiDica Gue
no a: un sell i.o
3Q
FIUBA 75.08 Sistemas Operativos Shell Scripting 2
'l Sell mane.a varia)les de am)iente
Bo es necesario IdeDinirJ una varia)le5
simplemente comienEa a e"istir cuando le
asignamos un valor.
'"isten varia)les predeDinidas.
S>'LL OBom)re del Sell
=;, O,irectorio corriente
=SK O=rompt K
=A+> O,irectorios donde )uscar e.ecuta)les
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting 27
+ener una lista de directorios donde )uscar a
arcivos para e.ecutar es un concepto utiliEado
en otros S.O. 0por e.emplo ,.O.S. : ;indo@s4
Si el directorio corriente no se encuentra en esa
lista5 el Sell no va a e.ecutar scriptK.s.
=ara poder e.ecutarlo desde el prompt5 tenemos
dos posi)ilidades/
K. >acer una reDerencia e"plCcita al directorio.
3 .<scriptK.s O . es el directorio corriente
!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting 28
L. Incluir al directorio corriente en el =A+>
3 =A+>Z[=A+>/.
Como la varia)les es del am)iente5 cuando nos
reconectemos podrCa ser necesario repetir esta
acci(n.

!ni"
FIUBA 75.08 Sistemas Operativos Shell Scripting 2!
'"iste el arcivo .proDile5 para no repetir acciones
repetitivas como setear varia)les de am)iente5
umas95 etc.
'ste arcivo se encuentra en el [>OM' del
usuario : contiene el seteo de acciones a
e.ecutar por el sell al momento de cone"i(n.
!ni"
IM=O-+AB+'/ 's conveniente testear cualGuier
modiDicaci(n a este arcivo manteniendo una
cone"i(n a)ierta durante el test.
FIUBA 75.08 Sistemas Operativos Shell Scripting 30
-elaci(n entre \aria)le : -mbiente
Supongamos Gue en un sell script se realiEa
una asignaci(n.
!ni"
O scriptK.s
eco I\A-IA1L'/ [\A-IA1L'J
FIUBA 75.08 Sistemas Operativos Shell Scripting 3"
'.ecutamos scriptK.s
!ni"
3 scriptK.s
\A-IA1L'/
3Q
Asignamos valor a \A-IA1L' : '.ecutamos
3 \A-IA1L'ZJC'-OJ
3 scriptK.s
\A-IA1L'/
3Q
\A-IA1L' sin inicialiEar
-mbientes distintos
FIUBA 75.08 Sistemas Operativos Shell Scripting 32
!tiliEamos el comando e"port
!ni"
3 \A-IA1L'ZJC'-OJ
3 e"port \A-IA1L'
3 scriptK.s
\A-IA1L'/ C'-O
3Q
FIUBA 75.08 Sistemas Operativos Shell Scripting 33
!ni"
#$u% sucederCa si asignramos un valor dentro
de script&
3 \A-IA1L'ZJC'-OJ
3 e"port \A-IA1L'
3 scriptK.s
O scriptK.s
e"port \A-IA1L'ZJ!BOJ
eco I\A-IA1L'/ [\A-IA1L'J
\A-IA1L'/ !BO
3Q
FIUBA 75.08 Sistemas Operativos Shell Scripting 34
#Con Gu% valor Gueda \A-IA1L'&
!ni"
3 eco [\A-IA1L'
\A-IA1L'/ C'-O
3Q
Bo se modiDica el valor en el padre
FIUBA 75.08 Sistemas Operativos Shell Scripting 35
Si e.ecutramos en el mismo -mbiente
!ni"
3 . scriptK.s
\A-IA1L'/ !BO
3 eco [\A-IA1L'
\A-IA1L'/ !BO
3Q

Anda mungkin juga menyukai