You are on page 1of 9

1- Escribir un Shell script que lea varios nombres de archivo como

parámetros de entrada y validé si el archivo existe a un archivo corriente
existente, si es así mostrarlo en pantalla paginado.
!"bin"bash
creamos la variable op para controlar el ciclo de descicion
que permitira pedir el archivo hasta que el usuario lo desee
opc#$y$
%hile & $'opc$ # $y$ (
do
echo )ngrese el archivo
read nomarch
i* & -* 'nomarch (
then
cat 'nomarch mostramos el contenido del archivo
opc#$n$
else
echo --------------------------
echo el archivo no se encuentra-
echo --------------------------
echo
echo +ESE, )-./ES,/ 01/0 ,/23)40
echo
echo presione la tecla y o n...
read opc
*i
done

5. Escribir un Shell script que lea el nombre de un directorio, valide su
existencia y que *inalmente liste los nombres de los directorios y
subdirectorios que contiene.
!"bin"bash
opc#$y$ creamos la variable opc para controlar el ciclo que permitira
ingresar )nde*inidamente un directorio hasta que el usuario decida o lo
encuntre
%hile & $'opc$ # $y$ (
do
echo )-./ESE E6 -078/E +E6 +)/E210/)0
read nomdir
i* & -d 'nomdir (
then
cat9ls 'nomdir
opc#$n$
else
echo E6 +)/E210/)0 -0 E:)S1E
echo +ESE, )-./ES,/ 01/0 +)/E210/)0
echo presione a tecla y o n...
read opc
*i
done
;. Escribir un Shell script que mueva todos los archivos y directorios del directorio
de traba<o actual hacia directorio -=E40, muestre los nombres de los que mueve
e indique cuántos ha movido o que no ha movido ninguno. Si el directorio -=E40
no existe debe crearlo.
! "bin"bash
d#>p%d> llevamos a la variable la posicion del directorio actual de traba<o
mv -r 'd ? -=E40 movemos de manera recursiva todo el contenido
guardado en la variable al directorio -=E40
cd -=E40 nos posicionamos en el diectorio
ls @l
num#>ls -l9%c -l>
echo $Se movieron 'num elementos$
A. Escribir un Shell script que permita construir un menB con las siguientes
opcionesC
• )ngresar un registro
• 7odi*icar un registro.
• 2onsultar un registro.
• Eliminar un registro.
• 6istar los registros
• Salir.

"bin"sh
clear "" 6impia la pantalla.
echo D7E-=E ""7uestra lo que escribamos a continuaciFn entre comillas dobles.
echo D####E ""7uestra lo que escribamos a continuaciFn entre comillas dobles.
echo D1. )ngresar un registro.E ""7uestra lo que escribamos a continuaciFn entre
comillas dobles.
echo D5. 7odi*icar un registro.E ""7uestra lo que escribamos a continuaciFn entre
comillas dobles.
echo D;. 2onsultar un registro.E ""7uestra lo que escribamos a continuaciFn entre
comillas dobles.
echo DA. Eliminar un registro.E ""7uestra lo que escribamos a continuaciFn entre
comillas dobles.
echo DG. 6istar los registros.E ""7uestra lo que escribamos a continuaciFn entre
comillas dobles.
echo DH. SalirE ""7uestra lo que escribamos a continuaciFn entre
comillas dobles.
read entrada1 ""lee la respuesta del usuario, y la guarda como la variableC
entrada1
case 'entrada1 in ""Esta, permite realiIar de una *orma bastante sencilla, varios i*
anidados, traba<a con la varible ingresada
1J
""Es para re*erirse al valorC 1
startx ingresar ""llamada sub programa
KK ""termina obligatoriamente con los caracteres
5J
""Es para re*erirse al valorC 5
startx modi*icar ""llamada sub programa
KK ""termina obligatoriamente con los caracteres
;J
""Es para re*erirse al valorC ;
startx consultar ""llamada sub programa
KK ""termina obligatoriamente con los caracteres
AJ
""Es para re*erirse al valorC A
startx eliminar ""llamada sub programa
KK
""termina obligatoriamente con los caracteres
GJ
""Es para re*erirse al valorC G
startx listar ""llamada sub programa
KK
""termina obligatoriamente con los caracteres
HJ
""Es para re*erirse al valorC H
startx salir
""llamada sub programa
KK
""termina obligatoriamente con los caracteres
esac
""para cerrar la estructura
El menB opera sobre un archivo llamado ,.E-+,, cada registro del archivo
contieneC -ombre, direcciFn, telé*ono. El archivo debe estar ordenado
al*abéticamente por el nombre. El listado de los registros los mostrará por la
pantalla.
G. Suponiendo que disponemos de un archivo con registros asíC
,pelido1 ,pellido5 -ombre
Escribir un Shell script que realice las siguientes opcionesC
1. 2omprobar que el directorio exista.
5. 2omprobar la existencia y derechos de lectura de un archivo dentro del
directorio indicado.
;. 6ocaliIar en el archivo todos los registros correspondientes a
personas cuyo primer apellido sea ,rias.
A. 2rear un archivo que contenga los registros ordenados
al*abéticamente por el nombre.
!"bin"bash
echo )-./ESE E6 +)/E210/)0C
read dir
i* & -d 'dir (
then
echo el directorio existe
echo )-./ESE E6 -078/E +E6 ,/23)40C
read arch
i* & -*'arch (
then
echo el archivo existe y tiene estos permisosC
ls -l'arch
echo -ombres con apellido ,rias
cat 'arch9grep ,rias visualiIamos el archivo con los nmbres que comiencen
por ,rias
cat 'arch 9 a%L MN print ';, '5, '1 OP 9 sort ? ordenado
cat ordenado
else
echo el archivo no existe
*i
else
echo el directorio no existe
*i
H. Escribir un Shell script que escriba los primeros 5Q nBmeros enteros.
! bin"bash
20-1#Q
%hile & 20-1 -le 5Q(
do
let 20-1 # 20-1 R 1
echo '20-1
done

S. Escribir un Shell script que liste todos los archivos e<ecutables del
directorio activo.
! "bin"bash
d#Tp%dT
i* & -d 'd (
then
echo Darchivos e<ecutables del directorioE
ls @U 'd
*i
V. +esarrollar una rutina WShell scriptJ que permita a un grupo de
usuarios, comunicarse mediante el envía y recepciFn de mensa<es que se
almacenan temporalmente en un archivo.
!"bin"bash
echo $)ngresa tu nicL$
read -icL
echo $iniciando$ ? "tmp"chat.log crea archivo de comunicacion
%hile C
do
echo $&r( 6eer los mensa<es enviados por otros usuarios$
echo $&%( Escribir un mensa<e a todos los usuarios$
echo $&x( Salir $
read op
case 'op in
rJ tail -n G "tmp"chat.log
echo -n $presione una tecla para continuar$K
read
KK
%J echo $)ngrese el mensa<eC$K
read men
echo 'men ?? "tmp"chat.log
echo -n $presione una tecla para continuar$
read
KK
xJ exit Q
KK
esac
done
SEGUNDA PARTE.
X. YZué salida ocasionaría cada una de las siguientes Frdenes si las
e<ecutamos consecutivamente[
set a b c d e * g h i < L l m n
.uardo en memoria la entrada de la a hasta la letra n
echo '1Q
aQ me muestra en pantalla las letras ingresadas mas el Q
echo '1G
aG me muestra en pantalla las letras ingresadas mas el G
echo '\
a b c d e * g h i < L l m n Wme muestra en pantalla solo las letras de la a hasta la
n J
echo '
1A me muestra en pantalla el numero de caracteres
echo '[
Q me muestra en pantalla solo el Q.
echo 'N11O
L me muestra en pantalla solo el carácter en posiciFn 11.
1Q. 0bserve la siguiente secuenciaC
y#hola y#hola
x#y x#'hola
En ambos casos, diga cuál es el valor de x.
11. En el primer caso x queda con un valor # y B. x queda con valor
vacio
;.)ndique cuál será el valor *inal al e<ecutar la siguiente secuencia de expresionesC
cd "
7e lleva al directorio raíI del sistema
asterisco#\.txt
a la variable asterisco se le asignan todos los archivos .txt
cd "home"aula5QS"e<emplo
ruta para llegar al directorio e<emplo
ls 'asterisco
permite listar el contenido de la variable asterisco
15. )ndique cuál es el resultado de e<ecutar la siguiente secuencia de
FrdenesC
! "bin"bash
Esta linea indica donde se encuentra el interprete de comandos en nuestro
sistema
echo 'S3E66
muestra la ruta "bin"bash
echo D'S3E66E
muestra la ruta E"bin"bashE con comillas dobles
echo >'S3E66> Wcomillas simplesJ
muestra la ruta >"bin"bash> con comillas simples
1;. )ndique que acciFn e<ecutanC grep y find. E<emplos de cada uno.
grep: permite localiIar una palabra clave o una *rase en varios *icheros, indicando
las líneas y *icheros en los que aparece. WE<emplo ps aux9grep syslog ] para
comprobar si corre el demonio syslogJ
findC permite localiIar *icheros segBn un determinado criterio, para realiIar a
continuaciFn alguna acciFn
1A. YZué acciFn e<ecutan cada uno de los siguientes comandos[
cmp %rite
di** %all
ps i*con*ig
pstree route
adduser iptra*
usermod tcpdump
userdel ping
uname traceroute
*ree mtr
vmstat mail
*disL sni**it
telnet
mesg
cmpC 2ompara dos archivos se^alados
diffC 2ompara los archivos se^alados línea a línea
ps: proporciona in*ormaciFn acerca de los procesos que se encuentran en
e<ecuciFn en el sistema en el momento en el que se e<ecuta la orden. Si se e<ecuta
sin parámetros proporciona in*ormaciFn Bnicamente sobre los procesos asociados
al terminal en que se encuentra el usuario.
pstree: muestra el árbol de los procesos que dependen de otros Wpid, id del
procesoJ.
Adduser: para a^adir un usuario
usermod: modi*icar usuarios
userdel: eliminar usuarios
uname: -os muestra toda la in*ormaciFn de nuestro sistema
*reeC muestra la cantidad de memoria libre y usada que tiene el sistema
vmstat: vmstat 7uestra estadísticas de uso de la memoria, cpu, lectuas"escrituras
en disco, etc.
fdis: Una utilidad conducida por men! "#menu driven#$ %ue tiene el mismo
nombre que su análoga en +0S y es muy similar en cuanto a su *uncionamiento.
telnet: permite abrir un shell en una máquina remota o conectarse a una maquina
remota.
mesg: autoriIa o rechaIa el comando talL.
&rite: enviar mensa<es.
&all: se utiliIa para mandar mensa<es a todas las terminales , esto es Btil cuando
en el mismo servidor .-="6inux hay varios usuarios conectados y se les debe
in*ormar de alguna tarea o simplemente dar un mensa<e a todos.
ifconfig: nos indica todas las inter*aces de red activas W"dev"ethQ, "dev"eth1 ...J
route: muestra la tabla de enrutamiento
iptraf: muestra en una aplicacion de consola 10+0 el tra*ico de red )_, =+_,
)27_.
tcpdump: vuelca el contenido del tra*ico de red.
pingC herramienta de red para comprobar entre otras cosas si llegamos a un host
remoto.
tracerouteC herramienta de red que nos muestra el camino que se necesita para
llegar a otra máquina.
mtrC combina las *uncionalidades de traceroute y ping en una Bnica utilidad de
diagnFstico. _rueba cada uno de los saltos que hay desde que un paquete se
envía hasta que llegar a su destino, realiIando pings en cada uno de ellos y
sacando por pantalla estadísticas de respuesta en porcenta<es de cada uno de
estos saltos cada x segundos. Es de extrema utilidad para detectar *allos de
colectividad entre redes. 7ientras esta en e<ecuciFn presionando la tecla n,
trans*orma los nombres +-S en )_s.
mailC para visualiIar el correo almacenado en el buIFn.
sni**itC Sni**er o husmeador de todo el tra*ico de red. -o suele venir instalado por
de*ecto.