Mi primer programa de shell

como todos sabemos una shell es una linea de comandos o mas bien dicho un interprete de comandos que usamos a diario para hacer todo tipo de tareas administrativas, obviamente bajo sistemas UNIX (basados en Unix), algunas tareas sencillas como montar una unidad, configurar una interfaz ( interface ) de red, hacer cosas mas avanzadas como port scanning etc, son tareas que podemos hacer por medio de nuestra ya mencionada shell; algunas de estas tareas podrían ocurrir al iniciar el sistema pero no siempre es la mejor opcion o la que nosotros deseamos, para quienes vivimos este caso en el que al iniciar nuestro S.O. Comenzamos a usar una larga lista de comandos como montar la unidad de datos o en otras ocasiones la unidad de proyectos o cosas así por el estilo, esto a veces se puede volver tedioso y quitarnos un poco de tiempo mientras lanzamos los comandos , pero que mejor que lanzar un solo comando y hacer todo el proceso de manera mas amigable, pues bien esa opción también nos la da nuestra querida shell ya que esta a su vez también funciona como un completo lenguaje de programación. ¿Pero como funciona este lenguaje? Si nos vamos a una terminal y digitamos date nos daria un resultado como:

/home/usuario$ date
mié sep 2 22:48:38 COT 2009

Bien ahora escribamos el mismo comando en un archivo de texto, para ello hacemos lo siguiente:

$vi miarchivo

presionamos a para comenzar a escribir en el editor de texo

escribimos date

presionamos esc para volver a modo comando en el vi

presionamos ZZ para salir del vi y guardar los cambios.

(el archivo lo podemos crear con cualquier editor de texto como el gedit, kate etc)

para comprobar que si quedo bien el archivo ejecultamos el comando

$cat miarchivo

nos debera devolver un resultado como:

/home/usuario$ cat ejemplo

date

Ahora vamos a darle permisos de ejecucion a nuestro script, para ello ejecutamos el comando :

/home/usuario$chmod +x miarchivo

Ahora vamos a ejecutar el archivo llamandolo por su nombre y anteponiendo “./” de la siguiente manera:

/home/usuario$./miarchivo

y veremos como nos da el resultado:

/home/usuario$./miarchivo

mié sep 2 22:57:33 COT 2009

Hemos visto como podemos llamar un comando desde un script en un archivo de texto plano, solo con escribir el comando en el archivo. Las posibilidades son enormes y podemos hacer una secuncia de archivos completa, escribir resultados en una caja de texto, la sitanxis es muy similar a cualquier lenguaje, podemos usar condiciones if, ciclos como while, y un sin fin de opciones, algun ejemplo de sintaxis para una condicion:

if condicion; then

comandos;

[elif otra_condicion; then

comandos;]

[else comandos(en caso contrario);]

fi

Para conocer mas a fondo la sintaxis y las posibilidades que tenemos podemos consultar la guia oficial haciendo click aqui.

Para terminar quiero  dejarles un ejemplo de un sencillo script que nos permite configurar una interface de red, el router y el DNS. de esta forma pueden abrir sus mentes y darse cuenta que con esto podemos hacer un sin numero de cosas.

echo “iniciando la configuracion de la red”;
echo “Ingresa la direccion IP que asignaras a la interface”;
read ip;
echo “Ingresa la direccion de mascara para la interface de red”;
read mask;
echo “Ingresa la IP del router” ;
read gw;
echo “Ingresa el direccion del DNS”;
read dns;
echo “haz ingresado la direccion IP $ip , la mascara $mask el DNS $dns y el router $gw, Presiona enter para terminar.” ;
read cont;
ifconfig eth0 $ip
ifconfig eth0 netmask $mask
route default gw $gw eth0
cd /etc/ echo “nameserver $dns” >> resolv.conf

2 Comments