You are on page 1of 33

ESCUELA SUPERIOR POLITCNICA

DE CHIMBORAZO
RIOBAMBA

INGENIERA ELECTRNICA EN CONTROL Y REDES


INDUSTRIALES

FUNDAMENTOS DE SISTEMAS OPERATIVOS

CURSO: 3 A
DOCENTE: Ing. Blanca Hidalgo
INTEGRANTES: Karen Moncayo 236
Cristhyan Carrillo 237
Juan Guaranga
288

TEMA:
INTERPRETE DE COMANDOS
SHELL EN LINUX
FECHA DE REALIZACIN: 21 de enero de 2012
FECHA DE ENTREGA: 26 de enero de 2012

Tabla de contenido
Portada ...................................................................................................................... 1
Tabla de contenidos .................................................................................................. 2
Introduccin .............................................................................................................. 3
Objetivos ................................................................................................................... 4
Generales ................................................................................................................ 4
Especficos............................................................................................................... 4
Marco Terico ........................................................................................................... 5
Que es una Shell ...................................................................................................... 5
Clases de Shell ......................................................................................................... 5
Tipos de Shell .......................................................................................................... 5
Que es una Shell Script ............................................................................................ 6
Programacin de una Shell ...................................................................................... 6
Lista de comandos................................................................................................. 11
Planteamiento del Problema................................................................................... 17
Listado del programa ............................................................................................... 16
Cdigo ................................................................................................................... 16
Conclusiones ........................................................................................................... 26
Recomendaciones ................................................................................................... 26
Bibliografa .............................................................................................................. 26
Anexos ..................................................................................................................... 27

SHELL

INTRODUCCIN

Cuando se ejecuta una accin en el ordenador, como, leer un fichero, grabar un documento, acceder al CDROM o ejecutar un programa, es un proceso bastante complicado y que requiere una serie de acciones por
parte de tu sistema operativo. Pero tambin necesitamos una manera de poder comunicarnos con nuestro
sistema operativo para decirle que es lo que queremos hacer, es aqu donde un intrprete de comandos
hace su trabajo.
Un intrprete es una forma de acceder al sistema sin utilizar la interfaz grfica, es decir, realizar todo tipo
de tareas en formato texto. La forma de utilizar el sistema de este modo es mediante rdenes.
El intrprete de comandos puede funcionar en modo interactivo o bien ejecutar guiones (Shell scripts),
tambin llamados archivos por lotes. Un Shell script es un fichero de texto que contiene sentencias para el
intrprete de comandos. Se puede pedir al Shell que interprete un script, y en tal caso, leer y ejecutar
cada sentencia del fichero sin esperar intervencin humana
Si queremos escribir un programa Shell Script solo se requiere contar con un editor de textos
donde se encontraran todas las instrucciones.
El intrprete muestra en pantalla un indicador de lnea de rdenes (en ingls se utiliza la palabra prompt
que literalmente traducira "prontuario" pero se puede definir como ayuda visual o palabra que ayuda)
esperando que el usuario introduzca una orden.

En Unix existen varios tipos de intrpretes de comandos. Los dos ms importantes son:
Sh o Bourne shell: utiliza una sintaxis similar a la usada en los primeros sistemas Unix.
Csh o C shell: utiliza una sintaxis diferente a la de sh, similar al lenguaje de programacin C.
En Linux tambin disponemos de varios intrpretes de comandos, con algunas diferencias respecto a los de
Unix.
Los
ms
usados
son:
Bash o Bourne Again Shell: es equivalente a Bourne shell, pero con muchas caractersticas avanzadas de la
C
shell.
Cualquier
guin
(script)
escrito
para
Bourne
funcionar
en
bash.

Tsch
(exTended
C
shell):
es
una
versin
extendida
del
C
original.
Slo aparecern diferencias entre unos y otros a la hora de escribir guiones. Es decir, en lo que respecta a
los comandos usuales es indiferente el tipo de intrprete de comandos usado.

OBJETIVOS

Objetivos Generales:
Lograr una base de conocimientos acerca del Shell o tambin llamado interprete de
comandos en el Sistema Operativo Ubuntu, utilizando los conocimientos relacionados a
administracin de dispositivos, procesos, memoria, archivos, entre otros.
Elaborar una Shell que demuestre el manejo de dispositivos, archivos y directorios de una
manera prctica con la utilizacin de los diferentes comandos, a su vez saber su forma de
escritura y utilizacin, simulando las funciones de una Shell convencional que posee un
sistema operativo.
Objetivos Especficos:
Conocer los "comandos" de Unix, los mismos que nos facilitara en la construccin de la
Shell, as como mtodos, estructuras bsicas de repeticin y condicin que son necesarios
en la programacin de una Shell.
Lograr una base de conocimientos de como realiza y ejecuta los mltiples comandos una
Shell en el sistema operativo Ubuntu y permitirnos a travs del Shell la administracin de
archivos y directorios creando, eliminando o moviendo a rutas especificadas por el usuario,
adems facilitar la administracin de procesos, admitir al usuario dar formato a dispositivos
como memoria, y poder mostrar al usuario informacin acerca del estado del computador.
Aprender para que sirve una Shell Script, cul es su funcionalidad y como se crea,
igualmente aprender a asignar valores a las variables y utilizarlas en la ejecucin de
comandos e instrucciones utilizando ciclos y dems estructuras.

MARCO TERICO

Qu es una Shell?
Una shell es un intrprete de comandos, es la aplicacin que permite al usuario comunicarse con el sistema
operativo y darle rdenes.
El Shell provee una interface al sistema. Obtiene la informacin del usuario y ejecuta programas en base a
esa informacin. Cuando el programa analiza su ejecucin, despliega la salida del programa. Por esta razn
el Shell es conocido como el intrprete de comandos.
Para denir de una manera simple, el Shell es un programa que ejecuta
programas (Aunque realmente es mucho ms que eso).
Es una parte fundamental de todo sistema operativo que se encarga de
ejecutar rdenes bsicas para el manejo del sistema.
Tipos de Shell

command.com cmd.exe - DOS y derivados


ksh - korn Shell de UNIX
chs - C Shell, similar en sitaxis al lenguaje de programacin C
bsh - Bourne Shell
tcsh, zsh, ash, ...
bash - Bourne Again shell, el shell mayoritario de sistemas Linux

Las responsabilidades del Shell

ejecucin de programas
pipes
redireccin de E/S
interpretacin de programas
substitucin de variables
control de ambiente

Clases de Shell

Shell de login
o Lanzado por un proceso de login
o Especificada en el fichero /etc/passwd
o Puede cambiarse con la orden chsh

Shell ordinaria
o Lanzada despus del proceso de login, por otros motivos (directamente por los usuarios,
por un script, etc)

Qu es una Shell Script?


Es un archivo de texto que contiene una serie de instrucciones las cuales son un conjunto de comandos que
ejecuta la shell bash de manera ordenada. Los Scripts no necesitan ser compilados, para esto existe un
programa ayudante o interprete (shell bash), para su ejecucin.
En conclusin un Script es un archivo plano que contiene comandos e instrucciones para evaluar algunas
condiciones. Si queremos escribir un programa Shell Script solo se requiere contar con un editor
de textos como: vi, emacs, gedit, vim o cualquier otro.
Los comandos que se escriben dentro de un shell script son los mismos que se usan desde la lnea de
comandos, sin embargo, debido a que existen varios intrpretes de comandos como son el C-shell (csh), el
Bourne-shell (sh), el Korn-shell (ksh) y otros ms, ciertas instrucciones, relacionadas principalmente con el
control de flujo, debern de ser escritas con la sintaxis propia del intrprete de comandos encargado de
ejecutar nuestro archivo de comandos.
Ejecutando Shell Scripts
Hay tres formas de ejecutar un shell script:
1.Invocar un subshell.
2.Correr el script en el shell actual.
3.Hacer el script ejecutable.

Programacin de una Shell


Los archivos de programacin Shell o scripts son archivos de texto plano (es decir texto tal cual se escribe),
sin ninguna compilacin ni proceso posterior para obtener un programa ejecutable. Es un conjunto de
comandos de lnea que se ejecutan en orden consecutivo como son escritos siguiendo los lineamientos de
las estructuras de control que sean programadas en el script.
Los caracteres especiales ms comunes
Como en cualquier lenguaje de programacin, en bash hay una serie de caracteres y palabras reservadas
que tienen un significado especial:
#!/bin/sh
Todos los scripts de shell empiezan con esta linea, que sirve para decirle al sistema
operativo que se trata de un fichero ejecutable y que sepa cual es el intrprete que lo tiene que interpretar.
#
Comentario: todo lo que haya tras l en una lnea es ignorado.
;
Separa dos comandos:
echo "la fecha de hoy es: " ; date
.
Seguido del nombre de un fichero, hace que el contenido de ese fichero sea interpretado por la
shell como si fuese parte del script, es como un #include de C.
'"
Distintas formas de entrecomillar cadenas que se explican con detalle ms adelante.
`
Se ejecuta lo que hay entre las comillas como un comando y se sustituye su salida:
echo `date`
\
Escapa el siguiente caracter, haciendo que se interprete literalmente.
$
Accede al valor de una variable:
echo $PATH

~
Equivale al directorio 'home' del usuario, es equivalente a leer el valor de la variable de entorno
HOME:
echo ~
echo $HOME
&
Escrito despus de un comando, hace que ste se ejecute en segundo plano. Esto quiere decir que
el script no esperar a que el comando retorne antes de ejecutar la siguiente instruccin.
Variables y parmetros

Variables de entorno. Hay una serie de variables afectan al comportamiento de la shell, tanto a la hora
de trabajar de forma interactiva como desde los scripts que sta interpreta. Estas variables pueden ser
accedidas y modificadas en la linea de comandos y tambin en los scripts.
Se puede ver el valor de todas las variables de entorno definidas en un momento dado invocando al
comando set sin argumentos.
Algunas variables especialmente tiles y su significado:
$HOME
Directorio 'home' del usuario.
$PATH
Rutas en las que la shell busca los ejecutables cuando se invoca un comando.
$?
Esta variable contiene el valor de salida del ltimo comando ejecutado, es til para saber si un
comando ha finalizado con xito o ha tenido problemas. Un '0' indica que no ha habido errores,
otro valor indica que s ha habido errores.
$UID
Identificador del usuario que ejecuta el script.
$! Identificador de proceso del ltimo comando ejecutado en segundo plano.

Declaracin y uso de variables . No es necesario declarar las variables, basta con asignar un valor a una
variable para crearla. Para acceder al valor que contiene una variable se usa el caracter $, de la
siguiente forma:
variable = `date`
echo $variable

Parmetros recibidos por un script . Como cualquier programa, los scripts pueden recibir parametros
en la linea de comandos, los parametros recibidos se guardan en una serie de variables que el script
puede consultar. Estas variables tienen los siguiente nombres:
$1 $2 $3 .... ${10} ${11} ....

La variable $0 contiene el nombre con el que se ha invocado al script.


El comando shift mueve todos los parametros una posicin a la izquierda, esto hace que el parametro que
haya en $1 desaparezca, y sea reemplazado por el que haba en $2.
La variable $# contiene el nmero de parametros que ha recibido el script.
$* contiene todos los parametros juntos en una sola cadena.
Uso de las comillas
En general las comillas se usan para prevenir que la shell interprete ciertos caracteres dentro de una
cadena y para que tome una cadena con espacios como una sola palabra..

Comillas dobles . En general los caracteres especiales no son interpretados cuando estn entre
comillas dobles. Sin embargo algunos de ellos s son interpretados:
$
\
`

Esta permitido referenciar variables dentro de las comillas dobles.


Se pueden escapar caracteres.
Se puede realizar sustitucin de comandos, esto es, ejecutar un comando y sustituir la
cadena por su salida.

Comillas simples . Dentro de las comillas simples todos los caracteres son interpretados
literalmente, ninguno de los caracteres especiales conserva sus significado dentro de ellas.
Comillas invertidas . Poner una cadena entre comillas invertidas supone ejecutar su contenido
como un comando y sustituir su salida.

Tests
Un test es una expresin que permite evaluar si una expresin es verdadera o falsa. Los tests no slo
operan sobre los valores de las variables, tambin permiten conocer, por ejemplo, las propiedades de un
fichero.
Los tests se usan, principalmente, en la estructura if then else fi para determinar qu parte del script se va
a ejecutar. Un if puede evaluar, adems de un test, otras expresiones, como una lista de comandos (usando
su valor de retorno), una variable o una expresin aritmtica. Este es un ejemplo del uso de if:
if grep grulla fichero.txt > /dev/null
then
echo "fichero.txt contiene la cadena grulla"
else
echo "fichero.txt no contiene la cadena grulla"
fi
Hay dos formas distintas de escribir un test, [ ] y [[ ]]. No son equivalentes, (por ejemplo los operadores &&
|| < y > solo funcionan en la ltima) pero de momento las diferencias son irrelevantes.
if [[ test ]]
then
comando
else
comando
fi
A continuacin se listan los tests ms tiles.
Tests de ficheros . Estos tests toman como argumento el nombre de un fichero y devuelven verdadero o
falso:
if [ -e fichero ]
then
echo "\"fichero\" existe"
fi
-e Verdadero si el fichero existe.
-f Comprueba que el fichero es un fichero regular (que no es ni un directorio, ni un dispositivo).

-d
-h
-r
-w
-x

Devuelve verdadero si se trata de un directorio.


Cierto si el fichero es un enlace simblico.
Cierto si se tiene permiso para leer el fichero.
Cierto si se tiene permiso para escribir el fichero.
Cierto si se tiene permiso para ejecutar el fichero.

Operadores de comparacin de enteros . Toman dos valores y devuelven verdadero o falso:


[ "$a" -eq "$b" ]

-eq
-ne
-gt
-ge
-lt
-le

igual a
no es igual a
es mayor que
es mayor o igual que
es menor que
es menor o igual que

Operadores de comparacin de cadenas . Comparan dos cadenas y devuelven verdadero o falso. Es


importante saber que se puede usar el "Globbing" en las cadenas a comparar.
= ==
!=

<y>

Comparacin de igualdad

Comparacin de desigualdad. El operador ! se puede colocar delante de cualquier test para


negar su resultado.
Menor que y mayor que.

Estructuras de control
Como en cualquier lenguaje de programacin, la shell ofrece estructuras que permiten controlar el flujo de
ejecucin de los scripts.

Bucle for . Su sintaxis bsica es la que sigue:


for var in lista de valores
do
comandos
done
La variable $var toma el valor del siguiente valor de la lista en cada iteracin. Un ejemplo:
for i in `ls *.sh`
do
if [ -x "$i" ]
then
echo "El fichero \"$i\" es ejecutable"
fi
done

Bucle while . Sintaxis:

while [ condicion ]
do
comandos
done
condicion puede ser, al igual que en un if, cualquier test, comando o expresin, el bucle se ejecutara
mientras que la condicin devuelva verdadero, es decir, cero.
En los bucles break y continue tienen el mismo funcionamiento que en otros lenguajes. break termina
el bucle y continue salta a la siguiente iteracin.

Case . Como en otros lenguales case sirve para ejecutar una zona de cdigo u otra, en funcin del valor
de una expresin o variable:
case $var in
valor ) comandos ;;
valor2 ) comandos ;;
esac

El funcionamiento de case puede verse en los scripts de inicio del sistema, lo usan para discernir si
han sido llamados con los parametros start restart stop o algn otro.

Globbing
El globbing, tambin conocido por "filename expansion", es decir, expansin de nombres de ficheros, es el
tratamiento que hace la shell cuando encuentra un nombre de fichero. Cuando se le indica a la shell el
nombre de un fichero, algunos caracteres tienen un significado especial que la shell interpreta antes de
hacer lo que tenga que hacer con ese nombre. Los caracteres son estos:
*
Corresponde con cualquier secuencia de cero o ms caracteres, con la excepcion de los ficheros
cuyo nombre empieza con un punto.
?
Corresponde con cualquier caracter, una sola vez.
[]
Corresponde con cualquiera de los caracteres o rangos de caracteres que contenga.
^
Niega la expresin que le sigue.
{}
Contiene varias expresiones separadadas por comas y corresponde a cualquiera de ellas.
Que es un comando
En Unix, un "comando" es un programa que se puede ejecutar. En otros sistemas operativos, tales como
Mac OS o Windows, apuntas al programa que deseas ejecutar y realizas la funcin de dar doble clic sobre
l. Para ejecutar un comando en Unix, teclas su nombre y presionas Enter.
Comandos internos de Bash
Un comando interno de bash es un comando que bash implementa y que ejecuta sin llamar a comandos
externos. Por ejemplo, echo es un comando interno de bash y cuando se llama desde un script no se
ejecuta el fichero /bin/echo.

Lista de Comandos

Comando no tan usados

PLANTEAMIENTO DEL PROBLEMA


Con el presente proyecto implementaremos un intrprete de comandos o Shell, para el sistema operativo
Linux- Ubuntu, mediante el uso de varios comandos que nos permitirn la ejecucin de varias sentencias
para la manipulacin de dispositivos, archivos, memoria, etc.
Para el desarrollo de esta Shell se ha optado por programarlo en archivos de textos, los mismos que
posteriormente se transformaran a archivos ejecutables mediante la terminal del propio sistema operativo.

LISTADO DEL PROGRAMA


NOTA PRINCIPAL: Antes de ejecutar la Shell se debe configurar el terminal con un tamao de
132 x 43, para evitar que los mens se muestren distorsionados, adems se puede elegir el
fondo y el color de la letra a su gusto.
Cdigo
#!/bin/sh
REGRESAR=S
clear
echo"________________________________________________________________________________"
echo "|
|"
echo "|
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO
|"
echo "|
|"
echo "|
FACULTAD DE INFORMATICA Y ELECTRONICA
|"
echo "|
ESCUELA DE INGENIERIA ELECTRONICA EN CONTROL Y REDES INDUSTRIALES
|"
echo "|
|"
echo "|
FUNDAMENTOS DE SISTEMAS OPERATIVOS
|"
echo "|
|"
echo "|
|"
echo "|

|"
echo "|

|"
echo "|
7
|"
echo "|
ooooo$
|"
echo "|
oo$$
|"
echo "|
oooo
|"
echo "|
oo
|"
echo "|
ooo
|"
echo "|
$oo
|"
echo "|
$
|"
echo "|
71
|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|
|"
echo "|
DOCENTE: Ing. BLANCA HIDALGO
|"
echo "|
|"
echo "|
INTEGRANTES:
CODIGO:
|"
echo "|
|"
echo "|
> KAREN MONCAYO
236
|"
echo "|
> JUAN GUARANGA
288
|"
echo "|
> CRISTHYAN CARRILLO
237
|"
echo"|_______________________________________________________________________________|"
sleep 10;
until [ $REGRESAR = "N" ]; do
clear
echo "
________________________________________________________________"
echo "
|
SHELL SISTEMAS OPERATIVOS
|"

echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "

|
Menu principal
|"
|
|"
|
|"
|
1.
GESTION DE DIRECTORIOS
|"
|
|"
|
2.
GESTION DE ARCHIVOS BASH
|"
|
|"
|
3.
PROGRAMAS BASICOS
|"
|
|"
|
4.
MONITOREO DEL SISTEMA
|"
|
|"
|
5.
SALIR DEL SHELL
|"
|
|"
|
|"
|
|"
| Selecione una opcion
|"
|
|"
|_______________________________________________________________|"

read OPCION
case $OPCION in
1)
clear;
echo"
__________________________________________________________"
echo "
|
GESTION DE DIRECTORIOS
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
1.
CREAR CARPETA
|"
echo "
|
|"
echo "
|
2.
ELIMINAR CARPETA
|"
echo "
|
|"
echo "
|
3.
RENOMBRAR CARPETA
|"
echo "
|
|"
echo "
|
4.
CAMBIAR DIRECTORIO
|"
echo "
|
|"
echo "
|
5.
REGRESAR
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
| Selecione una opcion
|"
echo "
|
|"
echo"|_______________________________________________________________________________"
read OP1
case $OP1 in
1)
clear;
echo "
CREAR DIRECTORIO O CARPETA"
echo"________________________________________________________________________________";
dir;
echo"________________________________________________________________________________";
echo "Desea grabar en el directorio actual (S) (N)";
cd;
read OP2;
if [ $OP2 = "n" ] ; then
OP2=N
fi
if [ $OP2 = "N" ] ; then
echo "INGRESE EL DIRECTORIO";
read DIRECTORIO;

cd $DIRECTORIO;
clear;
echo "
CREAR DIRECTORIO O CARPETA";
echo"_________________________________________________________________________________";
dir;
echo"_________________________________________________________________________________";
fi
echo "INGRESE EL NOMBRE DE LA CARPETA A CREAR";
read CARPETA;
mkdir $CARPETA;
cd;
out=N;;

2)
clear;
echo "
ELIMINAR DIRECTORIO O CARPETA"
echo"_________________________________________________________________________________";
dir;
echo"________________________________________________________________________________";
echo "Desea cambiarse de directorio actual (S) (N)";
cd;
read OP2;
if [ $OP2 = "n" ] ; then
OP2=N
fi
if [ $OP2 = "N" ] ; then
echo "INGRESE EL DIRECTORIO";
read DIRECTORIO;
cd $DIRECTORIO;
clear;
echo "
ELIMINAR DIRECTORIO O CARPETA";
echo"_________________________________________________________________________________";
dir;
echo"__________________________________________________________________________________";
fi
echo "INGRESE EL NOMBRE DE LA CARPETA A ELIMINAR";
read CARPETA;
rmdir $CARPETA;
out=N;;
3)
clear;
echo "
RENOMBRAR DIRECTORIO O CARPETA";
echo"_____________________________________________________________________________";
dir;
echo"____________________________________________________________________________";
echo "INGRESE EL NOMBRE DE LA CARPETA A RENOMBRAR";
read F1;
echo "INGRESE EL NOMBRE NUEVO NOMBRE DE LA CARPETA";
read F2;
mv $F1 $F2;
out=N;;
4)
clear;
echo "
CAMBIAR DE DIRECTORIO O CARPETA";
echo"_________________________________________________________________________________";
dir;
echo"_______________________________________________________________________________";
echo "INGRESE EL DIRECTORIO A CAMBIARSE";
read DIRECTORIO;

cd $DIRECTORIO;
out=N;;
esac;;
2)

clear;

echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "

________________________________________________________________"
|
GESTION DE ARCHIVOS BASH
|"
|
|"
|
1.
CREAR NUEVO
|"
|
|"
|
2.
ABRIR
|"
|
|"
|
3. RENOMBRAR
|"
|
|"
|
4. COPIAR
|"
|
|"
|
5.
MOVER
|"
|
|"
|
6. ELIMINAR
|"
|
|"
|
7. REGRESAR AL MENU PRINCIPAL
|"
|
|"
|
Selecione una opcion
|"
|
|"
|_______________________________________________________________|"
read OP2
case $OP2 in
1)
clear;
echo "
CREAR
NUEVO ARCHIVO ";
echo
"_______________________________________________________________________________________________
________________________________";
echo "INGRESE EL NOMBRE DEL ARCHIVO A CREAR";
echo
"_______________________________________________________________________________________________
________________________________";
read nombre;
vi $nombre;;
2)
clear;
echo "
ABRIR
ARCHIVO ";
echo
"_______________________________________________________________________________________________
________________________________";
ls;
echo
"_______________________________________________________________________________________________
________________________________";
echo " ";
echo "INGRESE EL NOMBRE DEL ARCHIVO";
read nombre;
vi $nombre;;
3)
clear;
echo "
RENOMBRAR
ARCHIVO ";

echo
"_______________________________________________________________________________________________
________________________________";
ls;
echo
"_______________________________________________________________________________________________
________________________________";
echo "INGRESE EL NOMBRE DEL ARCHIVO A RENOMBRAR";
read F1;
echo "INGRESE EL NOMBRE NUEVO NOMBRE DEL ARCHIVO";
read F2;
mv $F1 $F2;
out=N;;
4)
clear;
echo "
COPIAR
ARCHIVO ";
echo
"_______________________________________________________________________________________________
________________________________";
ls;
echo
"_______________________________________________________________________________________________
________________________________";
echo " ";
echo "INGRESE EL NOMBRE DEL ARCHIVO A COPIAR";
read F1;
echo "INGRESE EL DIRECTORIO EN DONDE DESEA COPIAR";
read F2;
cp $F1 $F2;
out=N;;
5)
clear;
echo "
MOVER
ARCHIVO ";
echo
"_______________________________________________________________________________________________
________________________________";
ls;
echo
"_______________________________________________________________________________________________
________________________________";
echo "INGRESE EL NOMBRE DEL ARCHIVO A MOVER";
read F1;
echo "INGRESE EL DIRECTORIO A DONDE DESEA MOVER EL ARCHIVO";
read F2;
mv $F1 $F2;
out=N;;
6)
clear;
echo "
ELIMINAR
ARCHIVO ";
echo
"_______________________________________________________________________________________________
________________________________";
ls;
echo
"_______________________________________________________________________________________________
________________________________";
echo "INGRESE EL NOMBRE DEL ARCHIVO A ELIMINAR";
read nombre;

rm $nombre;;
esac;
out=N;;
3)echo "OPCION 3";
echo "
______________________________________________ ___"
echo "
|
PROGRAMAS BASICOS
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
1.
CALCULADORA BSICA
|"
echo "
|
|"
echo "
|
2.
MATRIZ 3X3
|"
echo "
|
|"
echo "
|
3.
REGRESAR AL MENU PRINCIPAL
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
| Selecione una opcion
|"
echo "
|
|"
echo"
|_________________________________________________|"
read OP2
case $OP2 in
1)
clear;
echo "
__________________________________________________"
echo "
|
CALCULADORA BASICA
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
|
1.
SUMAR
|"
echo "
|
|"
echo "
|
2.
RESTAR
|"
echo "
|
|"
echo "
|
3.
MULTIPLICAR
|"
echo "
|
|"
echo "
|
4.
DIVIDIR
|"
echo "
|
|"
echo "
|
5.
SALIR
|"
echo "
|
|"
echo "
|
|"
echo "
|
|"
echo "
| Selecione una opcion
|"
echo "
|
|"
echo"
|_________________________________________________|"
out=N;
read OPC;
case $OPC in
1)

a = "S";
until [ $a = "N" ]; do
clear;

echo "
SUMAR";
echo"_______________________________________________________________________________";
echo "INGRESE LOS NUMEROS A SUMAR";
echo"_______________________________________________________________________________";

echo "INGRESE EL PRIMER NUMERO";


read n1;
echo "INGRESE EL SEGUNDO NUMERO";
read n2;
echo "LA SUMA ES: ";
echo $(( n1 + n2 ));
echo "Desea realizar otra suma (S) (N)";
read a;
done;;
2)

a = "S";
until [ $a = "N" ]; do
clear;

echo "
RESTAR";
echo"_______________________________________________________________________________";
echo "INGRESE LOS NUMEROS A RESTAR";
echo"_______________________________________________________________________________";
echo "INGRESE EL PRIMER NUMERO";
read n1;
echo "INGRESE EL SEGUNDO NUMERO";
read n2;
echo "LA RESTA ES:";
echo $(( n1 - n2 ));
echo "Desea realizar otra resta (S) (N)";
read a;
done;;

3)

a = "S";
until [ $a = "N" ]; do
clear;

echo "
MULTIPLICAR";
echo"_______________________________________________________________________________";
echo "INGRESE LOS NUMEROS A MULTIPLICAR";
echo"_______________________________________________________________________________";
echo "INGRESE EL PRIMER NUMERO";
read n1;
echo "INGRESE EL SEGUNDO NUMERO";
read n2;
echo "LA MULTIPLICACIO ES:";
echo $(( n1 * n2 ));
echo "Desea realizar otra multiplicacion (S) (N)";
read a;
done;;
4)

a = "S";
until [ $a = "N" ]; do
clear;

echo "
DIVIDIR";
echo"_______________________________________________________________________________";
echo "INGRESE LOS NUMEROS A DIVIDIR";
echo"_______________________________________________________________________________";
echo "INGRESE EL PRIMER NUMERO";
read n1;
echo "INGRESE EL SEGUNDO NUMERO";
read n2;
echo "LA DIVISION ES:";
echo $(( n1 / n2 ));
echo "Desea realizar otra division (S) (N)";

read a;
done;;
esac;;

2)

clear;
a = "S";
until [ $a = "N" ]; do
clear;
echo " _____________________________________________________________________";
echo "|
|"
echo "|
Matriz 3X3
|"
echo "|____________________________________________________________________|";
echo ""
echo "Ingrese los coeficientes de la primera fila de la matriz: "
echo "1,1:"; read a;
echo "1,2:"; read b;
echo "1,3:"; read c;
echo "Ingrese los coeficientes de la segunda fila de la matriz: "
echo "2,1:"; read d;
echo "2,2:"; read e;
echo "2,3:"; read f;
echo "Ingrese los coeficientes de la tercera fila de la matriz: "
echo "3,1:"; read g;
echo "3,2:"; read h;
echo "3,3:"; read i;
echo "|$a $b $c|";
echo "|$d $e $f|";
echo "|$g $h $i|";
echo "La determinante de la matriz ingresada es : "
h= expr $a \* $e \* $i + $d \* $h \* $e + $g \* $b \* $f - $g \* $e \* $c - $d \* $b \*
$i - $a \* $h \* $f;
echo "Desea realizar otra matriz (S) (N)";
read a;
done;;
4)
echo"
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo

clear;
__________________________________________________________"
|
MONITOREO DEL SISTEMA
|"
|
|"
|
|"
|
|"
|
1.
USO CPU
|"
|
|"
|
2.
MEMORIA EN USO
|"
|
|"
|
3.
CONFIGURACION DE RED
|"
|
|"
|
4.
PROCESOS EN EJECUCION
|"
|
|"
|
5.
SALIR
|"
|
|"
|
|"
|
|"
| Selecione una opcion
|"
|
|"
"|________________________________________________________|"
read mns

case $mns in
1)clear;
echo "
USO CPU";
echo"_______________________________________________________________________________";
echo "A CONTINUACION SE MOSTRARAN LOS PROCESOS QUE SE ESTAN EJECUTANDO";
echo "PULSE [q] PARA SALIR:";
echo "______________________________________________________________________________";
sleep 3;
top;
out=N;;
2)clear;
echo "
MEMORIA EN USO";
echo"______________________________________________________________________________";
echo " INFORMACION SOBRE LA CANTIDAD DE MEMORIA DISPONIBLE Y USADA";
echo"_______________________________________________________________________________";
sleep 1;
free -tm;
out=N;;
3)clear;
echo "
CONFIGURACION DE RED
";
echo"_______________________________________________________________________________";
echo " CONFIGURACIONES DE INTERFACES DE RED, MODEMS, ETC";
echo"_______________________________________________________________________________";
sleep 1;
ifconfig;
out=N;;
4)clear;
echo "
PROCESOS EN EJECUCION
";
echo"_______________________________________________________________________________";
echo " INFORMACION SOBRE LOS PROCESOS DEL ACTUAL USUARIO QUE SE ESTAN EJECUTANDO";
echo"_______________________________________________________________________________";
sleep 1;
ps;
out=N;;
esac;;
5)

clear;
out=S;
REGRESAR=N;;

esac
if [ $out = "N" ]; then
echo "DESEA REGRESAR AL MENU PRINCIPAL (S) o (N)"
read REGRESAR
if [ $REGRESAR = "n" ]; then
REGRESAR=N
fi
fi
done
clear
echo"_________________________________________________________________________"
echo "|
|"
echo" ________________________________________________________________________________"
echo "|
|"
echo "|
|"
echo "|
|"
echo "|
|"

echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|

|"
echo "|
|"
echo "|
|"
echo "|
GRACIAS POR USAR NUESTRA SHELL
|"
echo "|
|"
echo "|
|"
echo "|
|"
echo "|
|
echo"|________________________________________________________________________________|"
sleep 3;
clear

CONCLUSIONES
Mediante el desarrollo y la elaboracin del Shell aprendimos el funcionamiento y el manejo de
comandos, donde podemos crear, modificar, eliminar, mover archivos y directorios con la
utilizacin de estos, y con la utilizacin de varias instrucciones condicionales, asignaciones,
ciclos y funciones.
Mediante la implementacin de una Shell Script creada por un usuario, podremos crear y
realizar varias operaciones de una manera dinmica y de fcil entendimiento para nosotros
mismo y que se pueda adaptar a nuestras necesidades.
Se pudo concluir que una Shell Script es un archivo de texto escrito en un lenguaje de
programacin de bajo nivel, por lo cual es fcil de crear y manipular para la mayora de usuarios
con conocimientos bsicos de programacin.

RECOMENDACIONES
Al momento de programar la Shell debemos conocer a cerca de todos los comandos y su
utilizacin, ya que sin el correcto uso no ser capaz de realizar las operaciones que deseamos.
Al momento de ejecutar la Shell, es necesario conocer la sintaxis de los directorios a los que nos
estamos refiriendo porque el incorrecto ingreso, no ser posible poder acceder a ellos.

BIBLIOGRAFIA

http://es.scribd.com/doc/66011042/Modulo-de-ubuntu-linux-guia
http://iespuigcastellar.xeill.net/Members/vcarceler/c1/didactica/apuntes/ud3/na6
http://www.guia-ubuntu.org/index.php?title=Comandos
http://www.webprogramacion.com/8/sistemas-operativos/shell-script-unix.aspx

http://es.scribd.com/doc/519353/Comandos-Basicos-Linux

CAPTURAS DE PANTALLA