You are on page 1of 42

Arquitectura de Computadores.

UNIX
Sistema de Archivo o File Siytem.
Unix posee un sistema para la manipulacin de archivos lo que se conoce como file
system que en general es una estructura que da soporte a la distribucin de todos los
archivos dentro del file system. El file system es montado al entrar al sistema de
operacin y es desmontado antes de apagar el equipo, tiene una estructura de rbol
invertido definiendo a cada rama como un directorio, y a cada hoja como un archivo.

Raiz (/)

Tmp

Tmp1

Etc

Bin

Tmp2

Bin2

Bin1

Etc1

Etc2

A partir del directorio raz se encuentran varios directorios, los mismos que a su vez
pueden contener archivos.
El PATH de Archivos y Directorios.
Todos los archivos dentro del PATH system poseen una ubicacin lgica, y un nombre
por el cual son identificados la ruta de los archivos dentro de los directorios del file
system pueden ser absoluta o relativa con respecto de la direccin actual donde nos
encontremos, la ruta absoluta es aquella que a partir del directorio raz hacia adentro y
es la ms larga.
La ruta relativa es aquella que se forma a partir de la direccin actual en adelante.

-1-

Arquitectura de Computadores.

Archivo

/------------

Archivo 1
2
3

Cartas 1

CURSO

Documento

documento 1
documento 2
documento 3

Ruta absoluta: CURSO/DOCUMENTOS/DOCUMENTO1


Ruta relativa: DOCUMENTOS/DOCUMENTO1
Nombre de los Archivos.
UNIX posee restricciones para la nomenclatura de archivos y directorios hoy en da el
nombre del archivo no tiene longitud mxima.
Todo archivo que comience con un punto se considera como un archivo escondido y no
se lo puede visualizar cuando se ejecuta el comando para desplegar el directorio ls. Para
poder visualizar los archivos ocultos utilizamos el comando ls -a
Los siguientes caracteres no pueden ser utilizados para formar un nombre de archivo.
<>[] *;$
No se permiten espacios entre los caracteres que forman el nombre de un archivo, las
letras minsculas y maysculas son tomadas como diferentes en UNIX.
Formato de los Comandos en UNIX.
Un comando es una cadena de caracteres o palabras que poseen un significado
predefinido todo comando se ejecuta presionando la tecla enter.
Reglas de Comando.
La primera palabra es el comando, las letras o palabras adicionales que siempre van a
estar separadas por un espacio en blanco del comando se denominan argumentos del
comando.
-2-

Arquitectura de Computadores.

Para digitar ms de un comando por lnea estos deben estar separados por el signo;
Ejemplo:
Who am I

Usuario

date
fecha y hora

Argumentos de los Comandos.


Los argumentos en los comandos UNIX pueden ser clasificados por:
1. Archivos.
2. Expresiones.
3. Opciones.
1. Archivos. Existen comandos de UNIX que hacen referencia a nombres de
archivos por lo cual un argumento sera el o los nombres de archivos necesarios.
Existen caracteres cuya funcin es sustituir parte de un nombre formando un nombre
genrico a un grupo de archivos con caractersticas comunes en el nombre como: las
primeras letras sean iguales, que una letra intermedia sea igual, que una extensin
sea igual.
Ejemplo:
ls prog*
prog1.txt
programa
progra1
progra2.xyz
2. Expresiones. Es una palabra o conjunto de palabra que va a ser utilizado como
informacin de entrada de un comando.
grep (comando para buscar)
Ejemplo:
grep GRANDES CLIENTES *.sql
Prog1.sq\ FACTURACIN GRANDES CLIENTES skip.1Fecha2.sq\ TITLE GRANDES CLIENTES MATRICULADOS
3. Opciones. Una opcin es un literal que usualmente es ingresado anteponiendo el
signo -, o en algn caso sin signo, y permite darle a una variacin a la ejecucin
normal del comando.
$ home > sidecom>ls
programa
stado.txt
ventana.txt
ls l Lista informacin extendida del comando a ejecutarse.

-3-

Arquitectura de Computadores.

_rwx rwx rwx 1000 fecha y hora programa


de creacin o ltima modificacin.
ls -a

(para ver archivos ocultos)

ls -la (el formato ampliado)

.login
.oculto 1
.programa
Comandos de Manipulacin de Archivos.
Comando cp. Para copiar archivos
Permite copiar archivos de un directorio a otro directorio o en el mimo directorio.
espacio en blanco
cp nombre_archivo nombre_archivo
path + nombre archivo path + nombre archivo

Raiz
Bin.sql
Com
Cat

Temp

Etc

Bin
Des

Var
Files

maq1
Adm
concatena1 Cat1
Doc

File1

File2
Bin.sql

1. Absoluto.
cp /Bin/Com/cat
path

/Etc/Adm/concatenar
path

Relativo
cp Adm/concatenar

nombre_archivo

concatena1

2. Absoluto.
cp /Etc/Var/Files/archivos1 /User/maq1
Relativo.
cp /Var/Files/archivo1

User

/User/maq1

-4-

..

maqn

Arquitectura de Computadores.

Si sobre escribo en otro archivo pierdo el archivo que est en ese directorio.
Comando mv. Mover un archivo del directorio original a otro directorio, y tambin
permite renombrar (cambiar de nombre) un archivo.
mv /bin/desk/sueldos / bin/com
mv sueldo sueldo1

Borrar Archivos del File System.


Formato. Comando rm borra archivos

rm archivo1 archivo2.....
Path+n_arch

La opcin i pregunta previo a borrar cada uno de los archivos


rm i arch*
archivo
archiv
archivo1
archivo2
Esta opcin borra todos los archivos del directorio COM
rm /BIN/COM/*.*
Comando Para Cambiarse de Directorio.
Home Directorio. Directorio del usuario, directorio hogar de un usuario. Se crea
cuando el administrador del sistema crea el usuario.
Formato del Comando.
cd directorio
path + directorio
caso especial
cd .. Se va al directorio padre
cd / Se va a la raz.
cd Voy al home directory

cd .. ..

Comando Para conocer el directorio en donde estoy ubicado


pwd Conocer en que directorio estoy actualmente.

-5-

Arquitectura de Computadores.

Ejemplo
/User/maq1

Comando Para Crear Directorios.


Comando mkdir

ndir1 ndir2 ............. ndirn

Siempre puedo crear por ejemplo estoy ubicado en USER


mkdir
maq1
mkdir /bin/com/impresoras

maq2

maq3

El super usuario root puede crear directorios desde cualquier lugar donde se encuentre.
Como Borrar Directorios.
rmdir

ndir1 ndir2 .. ndirn

Para borrar un directorio


No deben existir dentro de l subdirectorios, o archivos
Debe estar ubicado fuera del directorio (Padre o ms arriba)

Ejercicio:
Crear estructura del rbol.
mkdir BIN ETC TEMP USER
cd BIN
mkdir COM DESK
cd COM
mkdir impresoras
cd ETC
mkdir VAR ADM
cd VAR
mkdir FILES DOCS
cd TMP
mkdir CD USER
mkdir maq1 maq2
Comando who.
Determina una lista de usuarios activos dentro del sistema.

-6-

Arquitectura de Computadores.

nombre de usuario
maq1

dispositivo
tty/01

fecha
xx/xx/xx

hora
xx:xx

Muestra una lista de usuarios que estn trabajando en ese momento (activos).
who am i Despliega el usuario concurrente
Comando wc
Permite conocer el nmero de registros, caracteres o palabras que contiene un archivo,
dependiendo de la opcin.
wc -l nombre-archivo ---- determina el nmero de lneas que contiene el archivo
wc -c nombre-archivo ---- determina el nmero de caracteres que contiene el archivo
wc -w nombre-archivo ---- determina el nmero de palabras que contiene el archivo
who Despliega nmero de usuarios activos en el sistema
who |wc -l
cuantos usuarios estn interactuando en el sistema.
Impresin de Archivos.
Comando lp, permite imprimir archivos
SPOOL. Cola de archivos de impresin
lpstat, permite visualizar el spool
comando de impresin lp
lp prog1
lp -ppcl1 prog1
dpcl1 = nombre de la mquina
prog1= archivo a imprimir
-

m le manda al mail
c genera una copia
lpstat ppcl1

(archivos que estn por imprimirse en la impresora ppcl1)

Comando Cancel.
Cancela la impresin del archivo que est en el spool, todo archivo que se encuentra en
el spool tiene un identificador de proceso o job.
Queue Dev Status

Job

Files

-7-

User

Arquitectura de Computadores.

lpcl6 @rs59 READY


lpcl6 lpcl6 DOWN
cancel #job
Identificador del job
Como Cambiar su Password
Comando password nombre_usuario ----- usuario root
En la ejecucin de este comando UNIX pregunta el password anterior y si este es
correcto permite el ingreso del nuevo password con confirmacin.
Login root
$> password maq1>password
$> password <ENTER>
chaining password for maqn
old password ..
new password ..
Re_enter new password
Identificar Procesos que se Ejecutan en el Sistema.
Con la ayuda del comando ps obtenemos un reporte de los status de los procesos activos
con informacin de cuando se ejecute el proceso, el comando ps tiene las siguientes
opciones:
Ps -e. Presenta informacin de todos los procesos que se ejecutan en este momento.
Ps -d. Presenta la informacin de todos los procesos menos los del sistema o del grupo
libre.
Ps -a. Similar al d, menos los del sistema, y menos los procesos asociados al terminal
donde estoy trabajando.
Ps -f. Presenta informacin mayor de cada proceso (informacin ms detallada de cada
proceso).
Ps -u. Informacin de un usuario especfico.
Ps -fu. Informacin detallada del usuario.
La opcin -u. Presenta informacin de todos los procesos de ese usuario, esta opcin
va acompaada del nombre del usuario.
>ps -u sidecom
ps -edaf

-8-

Arquitectura de Computadores.

ps -fu sidecom
Ejemplo: Como se visualiza ps
$ ps
PID

TTY

3459 03
2470 02
4323 03

TIME

CMD

12.10
12:20
12:21

_sh
_sh
ls -a

modo shell

.
UNIX tiene tres modos en los que puede trabajar
Modo Shell Sh
Modo CShell csh
Ambientes de Trabajo
Modo KShell ksh
Eliminar Procesos que se Ejecutan en el Sistema.
Comando kill
Formato kill 9

Id_proceso

Identificador del proceso solo el dueo del proceso puede eliminar su


proceso o el usuario root
Ejemplo:
kill 9 3459

Como Ejecutar Procesos en Background


Background . Permite ejecutar procesos por atrs.
Existen tres fomas ms usadas:
1. &
2. Crontab
3. at Demnicos
Comando &
ls -l >directorio & ejecuta el comando en background, despus reviso el
archivo generado. Ejemplo: cat directorio

-9-

Arquitectura de Computadores.

Comando crontab
Permite ejecutar procesos en modo backgound. Se identifica el proceso a ejecutarse, el
da , la hora, etc., misma que se registran en un archivo con el formato que se indica a
continuacin:
vi estadstico
01 01 * * 1,2,3,4,5,6,0 /sidexp/sidecom/GES_GENEST01
30 04 * * 1,2,3,4,5,6,0 /sidexp/sidecom/GES_GENEST02
00 11 * * 1,2,3,4,5,6,0 /sidexp/sidecom/GES_GENEST08
01 23 * * 1,2,3,4,5,6,0 /sidexp/sidecom/GAESTI.sh
30 23 * * 1,2,3,4,5,6,0 /sidexp/sidecom/GASALD.sh
50 02 * * 1,4,5 /sidexp/sidecom/TACOMA.sh
00 01 * * 1,3,5,0 /sidexp/sidecom/CUADRE_CREDI.sh
#> crontab estadstico

para ejecutar cambios

Se puede trabajar con el comando crontab para matar archivos por usuario que se
demoren ms de 30 minutos.
Comando at.
Los demnicos de usuario, UNIX nos permite ejecutar automticamente programas en
tiempo predeterminado la utilizacin de comandos at proporciona una forma fcil de
construir demnicos que vienen a ser procesos subordinados que realizan trabajo til
para un usuario especifico.
Ejemplo
Programa que va a ejecutar el proceso programa1 a las 6h00 el da viernes
at -f
programa1 6:00 Friday
Se puede especificar el tiempo de ejecucin de varias formas
hh:mm

at -f

nombrepro

06:00 Apr

21

Control de Trabajos con at. Existen dos opciones tiles para comprobar y controlar
los trabajos calificados con at.
At -l Lista todos los trabajos planificados con at, devuelve el # identificador del
trabajo y le informa de la siguiente vez que el comando esta planificado para ejecutar.
Comando at - l
$ at -l
62345879.a

thu

identificador del trabajo

Nov

06:00:00 2009

(veces que hay que ejecutarse)

Identificar mes, da, ao, hora (con minutos y segundos).


- 10 -

Arquitectura de Computadores.

at -r

borrar el trabajo previamente planificado.

Comando at r
$ at r 62345879.a

Bsqueda de cadena de caracteres en el file system


Comando grep.
Explora un archivo o grupo de archivos para encontrar la ocurrencia de expresiones.
Ejemplo
grep CLIENTES EEQ *.sql
Busca la cadena de caracteres CLIENTES EEQ en todos los archivos con extensin sql
/user/user1/user11/prog1.sql CLIENTES EEQ EN SEPTIEMBRE 2013
/user/user3/prog1.sql CLIENTES EEQ
Visualizacin de archivos
Comando pg.
Formato
pg nombre_archivo
Despliega el contenido de un archivo pgina por pgina.
Opciones:
1 va al inicio del archivo
g al fin del archivo
avanza una pgina
- n retrocede n pginas.
string Busca una cadena de caracteres.
Comando more. Formato
more nombre_archivo
Despliega el contenido de un archivo (para archivo pequeo).
Ejemplo
more programa1.sql
Comando tail. Formato
tail nombre_archivo
Permite leer por default las ltimas 10 lneas de un archivo.
Ejemplo
tail 10 facturas.txt
Comando split.
Formato
split n archivo_entrada
prefijo archivo_salida
Divide un archivo grande en varios pequeos
Ejemplo:

- 11 -

Arquitectura de Computadores.

split 50000 cliente clien


Suponiendo que el archivo cliente tiene 200.000 filas, el archivo se subdividir en
archivos de 50000 registros cada uno, obteniendo de esta manera:
clienaa
clienab
clienac
clienad (cada uno con 50000 filas)
Bsqueda de archivo en el file system
Comando find.
Permite encontrar la direccin o path de un archivo en el file system
Formato
find / - name nombre_archivo print
/ busca desde la raiz
Busca un archivo desde la posicin indicada hacia abajo en todo el disco.
Opcin: - print desplegar el path completo donde se encuentra el archivo.
Para mandar a buscar desde un directorio.
Ejemplo
find / -name prog1.sql -print

Busca desde la raz.

find .-name prog3.sql print


Comando df. Presenta informacin importante al administrador del sistema, Indica el
espacio libre de cada disco lgico que tengamos en nuentro FILE SYSTEM. Presenta el
tamao en bloques (512 bytes). Espacio libre en cada disco y espacio ocupado.
Ejemplo
Filesystem 512-blocks
/dev/hd4
98304
/dev/hd2
2310144
/dev/hd9var
524288
/dev/hd3
98304
/dev/hd1
835584
/dev/dbeeq1lv 43909120
/dev/dbeeq2lv 43909120
/dev/temporallv 11075584
b80fin:/domino 40370176
/dev/oraclelv 6275072
df k

Free
21688
185344
108784
52016
214280
29599560
33707568
3164872
37044848
1821928

%Used
78% 3669
92% 34350
80% 22051
48% 2064
75% 2217
33% 15525
24%
219
72% 26719
9% 11030
71% 21935

Iused %Iused Mounted on


15% /
12% /usr
34% /var
17% /tmp
3% /home
1% /dbeeqd
1% /dbeeqi
2% /temporal
1% /sidexp
3% /dev6i

Despliega en kbytes los tamaos.

Comando du. Cantidad en bytes que utiliza cada directorio

- 12 -

Arquitectura de Computadores.

Ejemplo
2160 ./audit
1160 ./baurma
40
./callce
3208 ./contabil
11536 ./ctrcli
40
./cumba
16
./dirte
16
./codisdir
616 ./codising
736 ./codisobr
24
./codisope
232 ./inca
23056 ./jorge
16
./juridico
128 ./labmed
24
./planif
16
./presupue
24
./provis
112 ./recau
26856 ./reclam
16
./rrhh
240 ./solici
1643616 .
Comando cut. Permite desplegar en pantalla o mandar a otro archivo partes de un
archivo, cortndolo por columnas. Las principales opciones son:
- d indica el separador del campo.
- f indica el campo que deseo cortar.
- c el nmero de caracteres que deseo cortar.
El comando inverso a este es join, el cual une por columnas.
EDITOR DE TEXTO VI
La edicin de textos, programas u otras cosas es una tarea muy importante dentro del
computador.
El editor visual vi fue diseado para utilizar las caractersticas de los terminales
actuales, y manejar el texto a travs de toda la pantalla.
El vi es un editor de texto FULL SCREEN, que utiliza caracteres ASCII para formar el
archivo.
Su utilizacin vara desde la escritura de una carta hasta la implementacin de sistemas
para desarrollo.
El Comando vi

- 13 -

Arquitectura de Computadores.

Formato:
$ vi archivo
El comando vi invoca al editor visual, que cargar consigo el archivo dado
como argumento del comando.
El comando vi puede ser invocado sin necesidad de argumento, pues ste posee algunas
alternativas para el manejo de sus archivos internamente.
Ejemplo:
$ vi reporte.cob
En este ejemplo se cargar el editor con el archivo reporte.cob, si el archivo no
existe, puede crearlo.
AMBIENTACION DEL TERMINAL, TECLADO Y EL EDITOR
El editor, como proceso independiente, posee comandos internos para facilitarnos la
tarea de escribir un archivo.
Estos comandos estn relacionados con el terminal, teclado y el estado del usuario
dentro del editor.
Generalmente los terminales y la consola utilizados en UNIX poseen 24 lneas y 80
columnas; la ltima lnea del terminal, est en diferentes modos.
Llamaremos MODO DE EDICION , cuando usted al escribir cualquier letra o
carcter, est pasa a formar parte del archivo a editar.
Llamaremos MODO DE COMANDO, cuando cualquier tecla que usted presiona el
editor la interpreta como un comando.
CAMBIO DEL MODO DE EDICION A MODO COMANDO
Usted conoce que est en modo de edicin cuando al escribir cualquier carcter, ste,
pasa a formar parte del texto; en ese momento usted est escribiendo en la lnea actual
de edicin, y el cursor est posicionado en el carcter actual de edicin.
Presionando la tecla ESC, usted pasa del MODO DE EDICION al MODO
COMANDO, permitiendo as ingresar el comando deseado.
Usted retorna al MODO DE EDICION a travs de la ejecucin del comando de
insercin o reemplazo de texto (i, a, o, r).
COMANDOS DEL EDITOR

- 14 -

Arquitectura de Computadores.

En esta seccin, para hacer referencia a una tecla cualquiera la pondremos entre los
signos de .
Movimiento Dentro De La Ventana
CTROLF

Mueve toda la informacin de la ventana hacia delante.

CTROLD

Mueve la mitad de la informacin de la ventana hacia


delante.

CTROLB

Mueve la informacin de la ventana hacia atrs.

CTROLU

Mueve el contenido de la media ventana hacia atrs.

Movimiento Del Cursor


SPACE

Permite movernos un carcter a la derecha del carcter


actual

BACKSPACE

Permite movernos un carcter a la izquierda del carcter


actual.

RETURN

Permite ubicarnos al principio de la prxima lnea.

Igual funcin que RETURN.

Mueve al inicio de la lnea previa.

Mueve al final de la lnea actual.

Nos ubica el cursor en el inicio de la prxima palabra.

Nos ubica el cursor en el inicio de la palabra anterior

Mueve el cursor al final de la palabra prxima.

Localizacin Del Texto


/TEXTO/

Mueve el cursor hasta ubicar en el texto lo que se


encuentra entre los caracteres /......./.

Adicin Y Eliminacin De Caracteres


x

Para borrar caracteres actuales.

n x

Borra los n primeros caracteres.

- 15 -

Arquitectura de Computadores.

Inserta caracteres antes de la posicin del cursor, hasta que


usted presione la tecla ESC .
Con este comando usted se encuentra en MODO
EDICION.

Permite aadir.

Edicin De Lneas
Las lneas de texto son adicionadas por medio de las instrucciones i o a .
Adiciones de lnea en lnea son ms fciles de visualizar y se ejecutan por medio de la
instruccin o .
Ejemplo:
o
............
ESC
MODO COMANDO
n yy
g n yy
p

Marcar un bloque por default.


Grabar un bloque en el buffer g.
Copia el bloque hacia debajo de donde estamos
posicionados.

Copia el bloque hacia arriba

Une dos lneas.

Recupera la ltima lnea borrada (con dd).

Ir al inicio de la lnea.

cw

Borramos y cambiamos hasta el final de la palabra.

d$

Borramos hasta el final de la lnea.

Mueve el cursor hasta que encuentre un punto.

Se ubica al inicio de la lnea del prrafo.

nos mueve al inicio de la pantalla.

nos mueve al medio de la pantalla.

nos mueve al final de la pantalla.

- 16 -

Arquitectura de Computadores.

ir al final de la lnea.

repite el ltimo comando.

MODO:
: / palabra/

Busca palabra

: n

Busca la siguiente ocurrencia hacia abajo.

: N

Busca la siguiente ocurrencia hacia arriba.

: wq

Salir grabando.

: string

Busca el string hacia arriba.

: comando unix

Con manda a ejecutar un comando UNIX

: n,ms/cadena anterior/cadena nueva/g Bsqueda y remplaz global.


Donde n es nmero inicial y m es nmerofinal
O

Permite insertar una lnea antes de la lnea actual.

Permite insertar una lnea despus de la lnea actual.

d d

Permite borrar la lnea actual.

n d d

Permite borrar n lneas a partir de la lnea actual inclusive.

Borra el residuo de la lnea actual, desde el carcter actual


hasta el fin de la lnea.
Permite remplazar el carcter actual por cualquier carcter
que usted desee.

r x
R .. ESC

Permite remplazar el texto a partir del carcter atual hasta


que presione ESC .

Borra el carcter de la izquierda.

n X

Borra n caracteres a la izquierda.

Manejo de todo el texto


: w

Permite grabar la informacin del archivo que se est editando


actualmente.
Esta instruccin solo puede ser utilizada si se carg al editor con
un archivo especifico.
- 17 -

Arquitectura de Computadores.

Ejemplo:
$ vi ejemplo.cob
........................
........................
: w
: x

Permite grabar el archivo y salirnos del editor, tomando en cuenta


la condicin del archivo del comando anterior.

: w filename

Permite grabar el texto que est siendo editado con el nombre


filename, usualmente esta opcin es dada cuando el archivo de
edicin es nuevo.

: q

Abandona la ejecucin del editor sin grabar el texto.

: e filename

Permite grabar al editor el archivo llamado filename al salir del


que tiene.

: q

Para salir si no se ha realizado ningn cambio.

: set number

Para numerar las lneas.

: 100

Para ir a la lnea 100.

: $

Se va al final del editor del texto.

VARIABLES
Modo:
: set number

Numerar lneas

: set show mode


: set wrpmargin =3
: v banner hola

Para dar margen.


Importar el resultado de un comando.

Comandos de Comunicacin.
Comando write. Permite escribir un mensaje en la pantalla del terminal de un
usuario, el mensaje enviado aparecer en la pantalla de destino sin importar que es
lo que el usuario est haciendo.
El formato del comando es:

- 18 -

Arquitectura de Computadores.

write nombre_usuario

<control> <d>

para salir de la pantalla del usuario.

El comando write tambin permite mandar el mensaje.


write all
<control> <d>
es posible mandar como mensaje un archivo que tenga creado.
write all <memojefe
Comando wall. Permite escribir un mensaje en la pantalla del terminal de un
usuario, el mensaje enviado aparecer en la pantalla de destino de todos los usuarios
sin importar que es lo que estn haciendo.
El formato del comando es:
wall
---- mensaje--<ctrl.> <d>
Comandos de Utilizacin de Dispositivos de E/S como CDs
Como formatear un dispositivo en UNIX.
Al formatear un dispositivo de E/S o un CD o un tape cualquiera se inicializa el rea de
grabacin de tal forma que se deja listo para almacenar la informacin. Para el efecto
cada unidad de disk_drive tiene su propia identificacin, para el caso del ejemplo
tenemos:
Cinta tipe streaming lape
Cinta de alta velocidad.
CD
TRABAJO DE PREPARACION
Imp importar
Informacin
Exp exportar
Ejemplos de nombres de dispositivos en el directorio /dev
fd0ds15
fd1oo24

- 19 -

Arquitectura de Computadores.

fd2oo35
Para Formatear.
format r [unidad]
Ejemplo:
format r /dev /fd0ds15
Transferir Informacin.
tar. Comando para transferir informacin.

Transferir del Disco al Drive


tar cvf [ident.drive] [archivos]
tar cvf

/dev/cd0ds15 /user/user1/*.sql

Transferir del Drive al Disco.


tar xvf [drive] [archivos]
tar xvf

/dev/cd0ds15 /user/user1/prog1.sql

Visualizar la informacin contenida en diskette o CD.


tar tvf [drive]

- 20 -

Arquitectura de Computadores.

Correo electrnico mail


Comando de ingreso
mail
opciones:
s
d
t
q
u
s
nombre_ fichero

nombre fichero
elimina mensaje
salta un mensaje
salir del mail
deshace la orden de borrar el mensaje

Para Enviar Mensaje.


$ mail nombre_usuario_destinatario
mensaje
Para Enviar y Guardar una Copia del Mensaje
$ mail destinatario remitente
mensaje
Correo Remoto. bang
$ mail remitente destinatario
$mail amigo!remoto usuario!operacin
Resumen Correo.
$ mail h
> 2 emisor fecha hora
1
?
d1
borra el mensaje 1
u1
deshace la orden de borrar el mensaje.

Permiso de Recuperacin de Archivos.


En el file system se encuentra la informacin del usuario, la del sistema operativo la de
los otros usuarios que forman parte de la red, y muchos de los casos la informacin del
usuario es confidencial, razn por la cual se requiere contar con seguridad y privacidad
de la informacin, cabe indicar que la informacin de los usuarios que se encuentran
como archivos, almacena datos como la ubicacin fsica y otros datos como el
propietario, el grupo, fecha de creacin, tamao, etc.

- 21 -

Arquitectura de Computadores.

Autorizaciones. Las autorizaciones de acceso estn acorde con los tipos de usuarios y
permisos de acceso. Los usuarios estn clasificados en tres tipos.
1. Propietario o USER. Es el usuario que inicialmente grab el archivo.
2. Grupo. Es el grupo al cual el usuario- propietario pertenece.
3. Otros. Son todos los usuarios que tiene acceso al sistema operativo.

Los permisos de acceso describen los tipo de procesos que se pueden realizar con
archivos o directorios. Los archivos al igual que los directorios son entidades diferentes
por lo tanto la representacin de los permisos son diferentes.
Los permisos son los siguientes:
1. Permiso de Lectura o Read. El usuario puede leer el contenido del archivo o
directorio.
2. Escritura o write. El usuario puede cambiar el contenido de un archivo.
3. Ejecucin o execute. El usuario tiene permiso para ejecutar un archivo,
utilizarlo como comando.
Vi listar
ls

Combinacin de Permisos de Acceso de un Usuario.


Los 9 permisos (tres para cada tipo de usuario) se les conoce como modo de los
archivos para el usuario, cuando se ejecuta el comando ls -l que permite listar el
contenido de un directorio aparecer la informacin si es o no directorio.
d si es directorio;
- si es archivo
Los 9 caracteres siguientes le indican los permisos de acceso a los archivos.
d

rwx

rwx

rwx
otros (others)
grupos (group)
propietario (user)
directorio

- 22 -

Arquitectura de Computadores.

read. permiso para el propietario


write. permiso para el propietario
execute. permiso para el propietario
Si el permiso no es asignado aparecer un _ que se conoce como proteccin.
EJEMPLO
Si voy a desarrollar un sistema contable presupuestario, definir grupos a crearse,
permisos, etc.
Ingreso/Modificacin de informacin:
Presupuesto
Contabilidad
Consulta:

auditoria
Contabilidad
Presupuesto.
Asesora

Ejecucin:

Contabilidad
Presupuesto.
Tesorera

- 23 -

Arquitectura de Computadores.

Cambiando el modo de un archivo


El cambio del modo de un archivo se realiza bajo el comando chmod que es la
abreviatura de cambio de modo, y permite la alteracin de los modos iniciales del
archivo, al igual que existen los comandos chown y chgrp, que permiten cambiar el
propietario y el grupo, respectivamente.
El comando chmod
Para cambiar el modo de un archivo es necesario que lo ejecute el propietario del
archivo o el administrador del sistema;
Formato:
$chmod tipo-usr + - permisos archivo..{
chmod es el comando invocado, tipo-usr es una opcin que identifica a que tipo de
usuario se le otorga el acceso.
Los tipo-usr pueden ser:
a

Cuando hace referencia a los 3 tipos de usuarios (User, Group,


Other)

Cuando hace referencia a los permisos a nivel de grupo

Cuando hace referencia a los usuarios del sistema

Cuando hace referencia al propietario del archivo

los operadores + - , corresponden a:


+

Adicionar acceso

Remover al acceso

Los permisos corresponden al tipo de acceso que se desee alterar.


r

De lectura (Read)

De escritura(Write)

De ejecucin (Execute)

tambin se lo s puede representar de una forma numrica:

- 24 -

Arquitectura de Computadores.

Ejecucin

Escritura

lectura
Los archivos corresponden a los diferentes archivos que deseemos alterar el modo.
Ej:
$ chmod ug+rwx o+r-xw ctas*.dat
permite que el propietario y el grupo tengan acceso de lectura, escritura y
ejecucin a los archivos ctas*.dat, y a los dems usuarios solo permiso de
lectura.
Chmod 774 ctas*.dat
Cambio de grupo de un archivo
El comando chgrp
Permite cambiar la asignacin del grupo al que pertenece el archivo.
Esto es comn cuando se estipula un grupo para desarrollo, pero la aplicacin est
destinada a un grupo diferente.
Formato:
$ chgrp grupo archivo ....
el comando chgrp utiliza como argumento el nombre del grupo al cual se le asignar los
diferentes archivos.
Ej:
$ chgrp presup pre*.dat pre*.key *.shl
permite al grupo presup el cambio del grupo a los archivos pre*.dat, pre*.key,
y *.shl.
Cambiando el propietario de un archivo
El comando chown

- 25 -

Arquitectura de Computadores.

Permite cambiar la asignacin del propietario al cual pertenece el o los archivos.


Es parecido al caso anterior en el cual la creacin de un sistema es realizado por los
usuario(s), pero la ejecucin del mismo est dado por otros.
Formato:
$ chown usuario archivo........
el comando chown utiliza como argumento el nombre del usuario al cual se le asignar
los diferentes archivos.
Ej:
$ chown usr01 pre*.dat pre*.key *.shl
permite al usuario usr01 dar propiedad sobre los archivos pre*dat, pre*.key, y
*.shl .

- 26 -

Arquitectura de Computadores.

PROGRAMACIN SHELL
Shell hace referencia al intrprete de comandos que es la interfaz principal en los
Sistemas UNIX por lo tanto es el Shell que atiende cuando se teclea y ejecuta los
comandos.
El Shell es un Lenguaje de Programacin de alto nivel que permite ejecutar una
secuencia de comandos, seleccionar opciones alternativas dependiendo del resultado de
pruebas lgicas y repetir acciones del programa.
Muchas de las operaciones de Lenguajes C se pueden hacer con Shell.
Utilizacin de Parntesis Para Ejecutar Comandos Shell.
A veces es conveniente ejecutar un programa pequeo sin colocar los comandos en un
archivo. Es til cuando se ejecuta un grupo de instrucciones que no se espera volver a
ejecutar nuevamente.
Puede teclearse una lista de comandos y ejecutarlo en un Subshell la lista entre ( ).
$ (cd deberes; ls -l)
$ (cd /..../ maq5/deberes; ls -l)
La colocacin de la lista de comandos entre parntesis tambin es til cuando se quiere
direccionar el resultado de un conjunto completo de comandos a un archivo.
$ (date; who; pwd) > archivo
Variables de Entorno.
Algunos archivos son utilizados por el Shell para fijar su entorno.
Por ejemplo $HOME contiene valores de entorno que usted puede fijarlos.
$HOME /.profile
Si realiza cambios del .profile se quiere que estos cambios persistan el resto de la sesin.
Si ejecuta su .profile como un programa Shell este ser ejecutado como un Subshell o
un subprograma y cualquier cambio del entorno durar como un Subshell o
subprograma

$pwd

- 27 -

Arquitectura de Computadores.

/....../maq5
$vi archivo
cd deberes
pwd
----cd ----:x

La orden es un comando de shell que toma un archivo como argumento y hace que su
shell actual lea y ejecute los comandos que estn en l.
$pwd
/
$ cd home/user Kill
pwd
/home/user kill
$ . programa
Tambin realiza cambios al archivo .profile para su entorno actual.
Si editamos el archivo (. profile) para redefinir la variable PATH no tendr efecto hasta
que se ejecute su (. profile)
PATH : - /HOME --------- /HOME ---------- /dev/ --------Para que tenga un efecto hay que salir y volver a entrar.
Colocacin de Comentarios.
b ------Parmetros Posicinales
A un programa de Shell se le proporcionan argumentos especificndolos en la lnea de
comandos. Cuando se ejecuta un programa, En Shell las variables se fijan
automticamente para que coincidan con los argumentos de la lnea de comandos dados
al programa.
Estas variables se conocen como parmetros posicinales y permiten al programa
acceder y manipular informacin de la lnea de comandos.
El parmetro $ es el nmero de argumentos que se pasan al programar.
Los parmetros $1,$2,$3, ..... hacen referencia al 1, 2,3 y as sucesivamente
argumentos en la lnea de comandos.

- 28 -

Arquitectura de Computadores.

El parmetro $0 es el nombre del programa Shell.


El parmetro $* hace referencia a todos los argumentos de la lnea de comandos como
lo podemos apreciar.

Parmetros Posicinales del Shell


Cmd
$0

arg1
$1

arg2
$2

arg3
$3

arg9
$9

Para ver la relacin entre las palabras introducidas en la lnea de comandos y las
variables disponibles en un programa Shell vamos a crearnos un ejemplo:
$vi show_args
echo $#
echo $0
echo $1
echo $2
echo $3
echo $*
$chmod 777 show_args
$ show_args. Esta es una prueba usando echo.
6
Show_args
Esta
es
una
Esta es ..
VARIABLES ESPECIALES PARA PROGRAMAS DE SHELL

Shell dispone de varias variables predefinidas que son tiles de los programas. Estas
proporcionan informacin sobre aspectos de su entorno que pueden ser importantes a
los programas de shell, tales como parmetros posicinales y procesos, una de estas
variables es * el asterisco que contiene los valores del conjunto actual de parmetros
posicinales, tambin se tiene el signo $, que es el (ID) identificador del proceso actual
de Shell, se tienen tambin el carcter de que contiene el nmero de parmetros
posicinales , esta variante se utiliza dentro de los programas para comprobar si existen
argumentos en la lnea de comandos y si es as cuntos son.
El signo? es el valor devuelto por el ltimo comando ejecutable, cuando se ejecuta un
comando, devuelve un nmero al shell este # indica si tuvo o no xito este comando por
- 29 -

Arquitectura de Computadores.

default devuelve 0 si fue con xito y diferente si el comando no tuvo xito. Se puede
comprobar si el comando tuvo xito desplegando la variable $?
Ejemplo:
$ cd arch
echo $?
si es 0 accedi al directorio arch
caso contrario otro valor
CALCULO DE LA LONGITUD DE UNA CADENA. Para averiguar la longitud (el
nmero de caracteres) del valor de una variable se puede utilizar la construccin ${#
variable}. Por ejemplo el nombre del directorio actual es projects, entonces ${#pwd}
es igual a 18, porque el valor de PWD es /home/rrr/projects y el nmero de caracteres
del PATHNAME es 18.
EXTRACCIN DE SUBCADENAS DE VARIABLES. Se puede utilizar varias
operaciones de subcadenas especiales para extraer una parte de una variable. Para
ilustrarlo supngase que la variable de VAR vale abc.123. la construccin siguiente
elimina la extensin .123 del valor de VAR:
$echo ${var%.*}
abc
el signo de % es la instruccin que elimina del final (lado derecho) del valor de la
variable cualquier cosa que se identifique con el patrn que sigue(.), los patrones
pueden ser cadenas de texto o expresiones que utilizan los comodines del nombre del
archivo del shell (*.sql).
el signo de libra se utiliza de una manera similar para eliminar una subcadena.
ENTRADA Y SALIDA DEL SHELL

Shell proporciona dos comandos internos para la escritura de la salida (echo), y para la
lectura de la entrada comando (read). Adems, existen formas para incluir entradas de
texto para ordenes en comandos.
Comando echo.
Es un comando que permite escribir salida desde un programa de Shell. echo escribe
argumento sobre la salida estndar. Puede utilizarse directamente echo como una orden
regular o como un componente de un comando shell. Tambin se lo puede utilizar en
comandos de Shell para visualizar peticiones de comandos o para sacar informacin.
Ejemplo:
echo Este es un ejemplo
Despliega
Este es un ejemplo
echo de variables
echo $HOME igual que pwd, despliega el home directory
echo $PATH despliega todos los directorios dentro del path, con sus rutas que
yo necesito en mi entorno del trabajo.
Comando Read.
Permite insertar la entrada del usuario o subprograma, read lee solo una lnea de la
entrada del usuario y le asigna a una o ms variables de Shell. El programador puede
proporcionar un nombre a la variable de Shell, por default, tiene el nombre de Reply.
- 30 -

Arquitectura de Computadores.

Ejemplo:
Echo
Tipee Terminal type: \C
Read Term
Export Term
Term es una variable global y pueda ser ejecutada para otros
programas
Echo $Term
1ra.- Lnea despliega tipo de Terminal.
2da .- Lectura del tipo de Terminal digitado
3ra.- Instruccin Export Term que declara global a la variable Term, por lo tanto puede
ser utilizada para otro programa.
4ta .- Despliega el valor de la variable Term.
Se puede utilizar el comando read para asignar varias variables de Shell a una nica
variable cuando utiliza read con varios nombres de variables el primer campo tecleado
por el usuario se asigna a la primera variable, el segundo campo y as sucesivamente
los campos que sobran a la izquierda se asignan a la ltima variable. El separador de
campos para la entrada del Shell es definido por la variable IFS( Internal Freld
Separated) que por default es un espacio en blanco.
Si se desea utilizar un carcter diferente para separar los campos se lo puede hacer
definindole un valor para la variable IFS.
echo

Digite un texto
Este es un ejemplo de read
read word1 word2 word3 word4
echo $word1
echo $word2 $word3
echo $word4
Salida
Este
es un
ejemplo de read
Set
Se puede proporcionar a sus programas y en particular a sus demnicos acceso a la hora
y fecha actual cuando estos se ejecutan utilizando el comandos de Shell interno set.
Set toma su entrada y asigna un parmetro posicional del Shell a cada palabra, por
ejemplo se puede fijar los parmetro posicinales a los elementos del comando date.
Ejemplo:
$ date
wed Nov 8
$ set date
$ echo $1

12:55:14

EST 1989

- 31 -

Arquitectura de Computadores.

wed
$ echo $2
Nov
$ echo $6
1989
Exit
Cuando un proceso termina, devuelve a su comando padre, el comando exit hace que el
Shell salga y devuelva el nmero de estado de salida, por convencin 0 significa que
sali con xito y un estado de salida no cero significa que sucedi algo anormal, sin
embargo exit devuelve cualquier valor que se le d como argumento. Por convenio, un
valor de salida de 1 se utiliza para indicar que el programa finaliz anormalmente y un
valor de 2 se utiliza para indicar un error de uso o de lnea de rdenes. Si UD no
especifica ningn argumentos, exit devuelve el estado de la ltima orden ejecutada.
if [ $valor eq 1 ]
then exit 0

PROGRAMACIN SHELL
Shell es un lenguaje completo de programacin que puede ejecutar una serie de
comandos y ejecutar condicionalmente comandos en base a pruebas lgicas y realizar
bucles o interacciones con comandos, con estas tres construcciones de programacin
puede realizarse cualquier programacin lgica que sea posible con otro lenguaje.
Como realizar pruebas lgicas y ejecutar ordenes en base a su resultado.
Como realizar la bifurcacin y los operadores del bucle.
Como utilizar las expresiones aritmticas en los programas de shell.
Como depurar programas de shell.
Export.
Este comando permite a los subprogramas acceder a la variable exportada, sin embargo
hay que tomar en cuenta que en un subshell nunca puede modificar el valor de una
variable en el entorno o programa padre

Programa
Principal

DIR = pwd
echo $DIR
/HOME/USER/CURSO/maq1
export DIR
_
_
_

Operador if.

- 32 -

Arquitectura de Computadores.

Shell proporciona herramientas para efectuar muchos tipos de decisiones basadas en el


entorno de ejecucin actual para una orden o programa shell. Una de estas es el
operador if, que introduce una operacin condicional, el formato de la orden if es:
$ if
expresin; then ordenes ; fi
if introduce una secuencia de comando multilnea que no se cierra hasta encontrar los
caracteres fi, la expresin es cualquier expresin lgica o un comando que devuelve un
valor, recuerde que la mayora de comandos devuelve un valor numrico que est
disponible en la programacin Shell.
Si la expresin se resuelve con un valor de retorno 0, se ejecutan los comandos a
continuacin de la parte then hasta los caracteres de la parte fi.
Ejemplo:
$ If true; then echo hola ; fi
Respuesta

Hola

$If false; then echo hola; fi


Respuesta
_
Otra Forma:
if
true
then
echo hola
fi
Respuesta
hola
El ejemplo anterior muestra un operador lgico especial disponible en los programas de
Shell que es el true, este siempre devuelve un valor 0, de tal manera que if ejecur los
comandos que estn a continuacin de then; tambin est disponible false que devuelve
un valor distinto de 0.
false
echo $ ?
Respuesta
1
Se permite tantos comandos como sean necesarios incluyendo otros comandos if
anidados, dentro de la parte then de la construccin if.
if true
then
echo hola
echo pwd echo $(pwd)
fi
Respuesta
hola
/usr/steve

- 33 -

Arquitectura de Computadores.

Una lista de comandos puede seguir a else si es necesario y se introducen con la forma
abreviada elif.
if false
then
echo hola
elif true
then
echo adios
fi
Respuesta
adis

Comando Test.
Esta diseado para seguir al comando if y proporcionar valores de verdad que son
interpretados por if, este comando test tiene 2 formas diferentes, sinnimas la una de la
otra, ambas pueden ser utilizadas por un comando Shell aunque por efectos de
estandarizacin, es mejor usar una forma permanentemente.
1ra. Forma. Va el propio nombre del comando test, seguida por los argumentos que se
resuelven como se puede ver en el ejemplo.
$if
test
$VAR
>
then
>
echo hola
> fi
$
Si la variable de entorno VAR no est definida entonces el comando test $VAR fallar,
entonces tratar el contenido if como falso. Si la variable de entorno est definida
entonces el test tendr xito.
2da. Forma. Test utiliza a los corchetes como caracteres especiales razn por la cual los
argumento del test estn incluidos dentro de los corchetes y la palabra test no aparece.
Ejemplo:

if [ $VAR ]
>
then
>
echo hola
>fi
hola
$
Los corchetes deben estar separados por espacios en blanco para que el Shell le
interprete como correcto.
El comando test dispone de operaciones para archivos para comparar nmeros, y para
comparar cadenas de caracteres y valores de las variables de entorno, para todos los
casos, espacios en blanco deben rodear a los corchetes y a cada uno de los operadores.
La forma f nombre-archivo devuelve cierto si el archivo existe y es el archivo normal.

- 34 -

Arquitectura de Computadores.

$> if [ -f
/etc/passwd ]
>
then echo Archivo existe
>fi
La opcin r nombre-archivo devuelve cierto si el archivo existe y tiene permiso de
lectura.
La opcin w nombre-archivo devuelve cierto si el archivo existe y tiene permiso de
modificacin..
La opcin x nombre-archivo devuelve cierto si el archivo existe y es ejecutable.
La opcin d nombre-archivo devuelve cierto si el archivo existe y es un directorio.
La opcin s nombre-archivo devuelve cierto si el archivo existe y tiene un tamao
mayor a 0.
Los operadores de comparacin de caracteres comprueban la presencia y el valor de las
variables de entorno, esto permite por lo tanto asignar el valor a una variable de entorno
y luego comprobar el valor de la variable para decidir las decisiones posibles a tomar.
DIR = pwd
$if [ $DIR = $HOME ]
>
then echo Estoy en el Home Dierctory.
>fi
Operador = (igual)
El operador igual permite comparar a dos cadenas de caracteres. Si las cadenas son
idnticas el resultado del if se da por verdadero y falso si no lo son, Se puede tambin
utilizar el operador = no igual entonces sera home verdadero si las cadenas son
diferentes.
DIR = pwd
$If [ $DIR = $HOME]
then echo No estoy en el Home Directory
>fi
Una cadena o una variable de entorno puede aparecer sola para determinar si la cadena
ha sido definida.
$ if [ $DIR ]
La orden test puede comparar valores numricos enteros.
Operadores Numricos
Las comparaciones numricas dentro del test se utiliza de la siguiente forma donde n1 y
n2 son representaciones que se resuelven por un nmero y el operador eq (por iguales).
Se evala como verdadero si los dos nmeros son iguales.
VAL=2
If [ $VAL eq 2 ]

- 35 -

Arquitectura de Computadores.

then echo `son numeros iguales


fi
Otros operadores numricos son:
-ne no igual
-gt mayor que
-lt menor que
-le menor o igual
-ge mayor o igual
Estos operadores numricos son utilizados con frecuencia para comprobar el valor de
retorno de algn comando, y luego toman alguna accin si el nmero de retorno es un
nmero especfico.
La mayora de los comandos devuelve 0 si se completan con xito la ejecucin.
1)

Dir = ` cd \home\sidecom`
$if [ $Dir eq 0 ]
then
echo Se ingres a la carpeta sidecom
else
echo No se puede ingresar a sidecom
>Fi

2)

Dir = `rmdir nombre`


if [ $DIR eq 0 ]
then
echo si me puede borrar
else
echo no me puede borrar.
fi

El comando test proporciona una herramienta para cambiar operadores y construir


expresiones complejas. Se cuenta con la operacin de negacin que justamente niega
otras operaciones.
Ejemplo:
If [ -f nombre-archivo] Pregunta si no existe el archivo.
touch. Crea archivos en blanco.
If [ -f
archivo1 ]
then touch archivo1
fi
Otros Operadores de combinacin disponible con test.
-a and
-o or
Expr. Acepta nmeros y operadores aritmticos como argumentos, calcula el resultado
devolviendo su resultado sobre su salida estndar

- 36 -

Arquitectura de Computadores.

expr 4 + 5
9
Tambin se permite ordenes ms largas, pero cada parte de la expresin debe estar
rodeada por espacios en blanco.
Programa utilizando expr que ejecuta procesos del mes anterior.
#! /bin/bash
NA=0
NM=0
ND=0
echo se va a realizar un backup
echo Ingrese el directorio de origen
read orig
echo Ingrese el directorio de destino
read Dest
AA= $(date + %y)
AA= $(date + %m)
echo La fecha actual es: $AA/ $MA
if [ $MA eq 1 ]
then NM= expr $AA 1
NA =12
else
NM= expr $MA -1
NA = $AA
fi
echo este proceso se realizar el : $NA/$NM
FICH = back _ $ (date + $NA $NM). Tgz
tar czf $DEST $FICH $ORIG
FOR.
Otros operadores del shell proporcionan construcciones para formacin de bucles que
ejecuten repetitivamente una seccin de programa Shell.
Sintxis
for var in item1 item2 item3;
do
ordenes;
done
Donde var es una variable de entorno que lo designa el programa y los items componen
una lista de cadena de caracteres con cada item separado por un espacio blanco
de los dems
Ejemplo:
for var in 1 2 3
do

- 37 -

Arquitectura de Computadores.

echo $var
done
Los comandos dentro del do-done pueden ser tan complejos como sea necesario
incluyendo instrucciones if-fi o ms operadores for. La instruccin for con frecuencia
se lo utiliza con nombres de archivos para efectuar repetidamente alguna operacin
sobre cada archivo ya que el comando for interpretado por Shell, efectundose una
expansin de comodines.
Despliegue los directorios
for var in ls
do
if [ -d $ var ]
echo $var
fi
done
Operador While.
Combina algunas de las caractersticas de for y de if, toma una orden de test, una
seccin do-done Si la parte del test se resuelve por verdadero se ejecuta la seccin dodone , si la parte del test se resuelve falso la parte do-done no se ejecuta y el bucle se
completa, despus de ejecutar la parte do-done se ejecuta de nuevo la seccin de test y
el bucle continua hasta que la seccin test se resuelve como falso.
$while [ ! f fichero ]
do
echo Intentando crear el fichero
touch fichero
done

VAL=1
while [ $val lt ll ]
do
touch fichero $val
val = `expr $val+1
done
Como es habitual cualquier comando incluyendo otras operaciones while puede ser
incluida dentro de do-done
Operador Until.

- 38 -

Arquitectura de Computadores.

Puede utilizar until en vez de la palabra clave while para invertir el sentido de la
comprobacin, Es decir while ejecuta la lista los comandos en tanto la prueba sea
cierta; until ejecuta la lista de comandos en tanto la prueba sea falsa.
VAR=10
until [ $VAR lt 10 ]
do
echo La variable VAL tome un valor >=10
read VAR
echo ingrese valor < 10 para salir
done
Operador Case
Shell proporciona un operador de control adicional, Case que acta como un orden if
elif--elif fi grande. Dada una cadena de caracteres Case determina con cual de varias
categoras coincide la cadena y luego ejecuta una lista de ordenes asociada con esa
categora. Las otras categoras no coincidentes se ignoran. El formato del operador
Case es el siguiente:
$ case $VAR in
patron 1 )
lista de ordenes
;;
patron 2 )
lista de ordenes
;;
patron 3 )
lista de ordenes
;;
esac
Puedes tener tantos patrones y listas de ordenes como necesites pero la lista de ordenes
asociada con cada patrn debe ir terminada por un ordenador especial ;;. Adems, cada
patrn debe ser diferente de los dems y la construccin total debe estar terminada por
esac (Por Case ledo al revs). Finalmente el operador ) (Parntesis derecho) es
necesario despus de cada patrn. VAR puede ser cualquier variable de entorno o
cualquier expresin que se resuelva en una cadena de caracteres. Como es habitual
cualesquiera otros operadores Shell puede ser anidados dentro de la lista de ordenadores
para cada Case.
La siguiente orden imprimir un saludo especial para cada usuario de la maquina.
$ case $LOGNAME in
jim)
echo Hola Jim, bienvenido de vuelta
echo de tus vacaciones
;;
pat )
echo Pat, no te olvides de leer el correo

- 39 -

Arquitectura de Computadores.

;;
steve )
echo Por favor borra algunos ficheros, estas usando
echo demasiado espacio de disco. Gracias!
;;
esac
Normalmente, un guin como este se ejecutara desde un fichero, quizs por los
usuarios cuando hacen su presentacin en la maquina. Podra estar implementado como
parte del perfil [profile] discutido en la prxima seccin.
La seccin patrn del operador Case permite el uso de expresiones regulares con el
formato de comodines de Shell. En el ejemplo anterior podramos haber utilizado ste*,
*te*, ?teve, u otro patrn para corresponder con xito a Steve.
Adems, el carcter | (cause) puede ser utilizado para significar o en la seccin patrn,
como se muestra aqu:
$ case $LOGNAME in
steve | jim )
echo No te olvides de la reunin de hoy
;;
* )
echo Bienvenido a nuestro sistema Unix
;;
esac
El primer caso es para Steve o Jim. El segundo caso, * , se corresponder con cualquier
otra cadena y se utiliza un caso por defecto de captacin total. Recuerda, solo se efecta
una accin cada vez que la construccin Case se ejecuta como un todo, y esa ser la del
primer patrn que se corresponda con la cadena de caracteres. Si ninguno de los
patrones coincide, entonces ninguno de los casos se ejecuta.

- 40 -

Arquitectura de Computadores.

Realizar un programa (Pistolero) que se ejecute cada 30 minutos


- Se debe encontrar procesos que se ejecuten ms de n minutos
- Ejecuta y verifica todos los procesos bajo root
- Utilizar crontab del sistema para poder revisar los procesos.
Ps edaf | awk {print $2} >P1
Ps edaf | awk {print substr ($5,1,2)} >P2
for val in `cat p1`
do
read pid < p1
read time < p2
if [$P2 > 30]
then
Kill -9 $A
fi
done
Realizar un programa en el pistolero, si los usuarios son los siguientes:
- Si el usuario es Sidecom no mata procesos.
- Si el usuario es Coprodu le doy mximo 45 minutos.
- Si el usuario es CO16497 le doy mximo 300 minutos.
- Si el usuario es COACOMET le doy mximo 100 minutos.
- Para otros le doy 30 minutos.
ps edaf | awk {min=substr ($7,1,2)*60+substr($7,4,5);print mi} > minutes
ps edaf | awk {print $2} > codigos
ps edaf | awk {print $1} > usuarios
var=1
for var in cat minutos
do
aux=`expr $var +1`
val=`head -$aux usuarios | tail -1`
case $val in
sidecom) min =`expr 24\*10`;;
co16497) min = 300;;
coaconet) min = 100;;
*) min = 35;;
esac
if[$var1 gt $min]
then
kill head -$var codigos | tail -l
fi
var = expr $var + 1
done

- 41 -

Arquitectura de Computadores.

- 42 -

You might also like