¿Quien dijo “No sé como realizar Script de Bash Shell en un Sistema Operativo GNU/Linux desde un Terminal” usando Canaima 4.X? – Parte III


FELIZ AGOSTO: 2014 (PUBLICACIÓN 156)

Saludos: Integrantes de la Gran Comunidad de Usuarios del Software Libre (No necesariamente gratis) y Usuarios del Linux Post Install – Script Bicentenario (CMSL / U-LPI-SB), Compañeros, Colegas y Autodidactas del Siglo XXI. Y ahora también a los Ingenieros en Telecomunicaciones, Sistemas e Informática, Licenciados y Técnicos de áreas afines.

Saludo de Bienvenida

En esta Vigésima sexta (26°) publicación del año vamos a seguir aprendiendo sobre el Shell Scripting, es decir, a programar en el Terminal (Consola) de GNU/Linux , lo cual es muy útil para automatizar actividades rutinarias e importantes dentro de nuestro Sistema Operativo GNU/Linux para así optimizar nuestros Recursos y Tiempo, es decir, exploraremos como desde el terminal podemos programar/automatizar actividades sobre un equipo ahorrando Horas/Labor de ejecución manual o presencial, tratando de explicarlo de una manera, practica y sencilla. Todo esto con la intención de seguir intentando desmitificar otro de esos paradigmas sobre GNU/Linux que muchos de los Usuarios de Sistemas Operativos Privativos y uno que otro Linuxero Novato tienen todavía metido entre ceja y ceja. El mito de “No sé como realizar Script de Bash Shell en un Sistema Operativo GNU/Linux desde un Terminal” usando Canaima 4.X? En este caso, no solo veremos abarcaremos el uso de Comandos prácticos y sus opciones asociadas, si que también nos concentraremos en las Mejores Practicas (Best Practices) para obtener un excelente diseño de Script de la manera más eficiente y practica. Bueno aquí lo tienen, y demuéstrenle a los escépticos e incrédulos que no es cierto, que solo es desconocimiento o falta de experiencia técnica. Estos son pequeños “Tips” que nos facilitan realizar esas operaciones técnicas reservadas por lo general para personas expertas (Administradores de Sistemas y/o Servidores) en DEBIAN o nuestro Sistema Operativo Nacional basado en DEBIAN, “Canaima GNU/Linux”.

Pero antes los invito a explorar la Mega Biblioteca de Proyecto TIC – TAC ya cual es llena de información variada, actualizada y muy practica, por lo cual lo comparto con ustedes para que si es de su interés lean y descarguen lo que necesiten!

Mega Biblioteca del Proyecto TIC – TAC

===============================================================

En esta nueva publicación hablaremos sobre estructuras condicionales

Estructura condicional IF:

La estructura básica de una condición sería:

if condición
then
comando1


else
comando1


fi

Como vemos la condición si (if) se cierra con su correspondiente fi que al parecer un juego de palabras es fácil de recordar. Entonces si la condición se cumple entraría por el then, en caso de que no, por el else.

Pero este es un método simple, luego tenemos uno más complejo con if anidados, sería:

if condición
then
comando1
elif condición
then
comando
elif condición
then

fi

Ahora lo que hace es evaluar la condición, si es verdadera entra por el then, pero si no y se da el caso de otra condición entraría por el elif, los elif no se cierran, solamente el fi final corresponde a la apertura del if. La condición es cualquier cosa que de un return (que devuelva) algo que sea 0 (Cero)  ó verdadero.

Estructura condicional CASE:

Se estructuran de la siguiente forma:

case expresion in
caso1) comandos ;;
caso2) comandos ;;
*) comandos ;;
esac

Para aquellos que sepan de programación, funciona igual que los switch, esta estructura  sirve para dependiendo de la expresión se cumple un determinado caso, es decir, según sea el valor de esa expresión se hará un caso u otro.

Estructura condicional FOR:

Se estructuran de la siguiente forma:

for variable in valor1 valor2 … valorN
do
comando1

[ break | continue ]
done

El bucle se ejecuta para cada uno de los valores que toma la variable en esa lista.

Break: Rompe el bucle y no da más opción a que la variable se ejecute.
Continue: Salta al siguiente valor de la lista.

Estructura condicional WHILE:

El while se estructura de la siguiente forma:

while condicion
do
break
done

While se usa para repetir un conjunto de comandos/instrucciones dependiendo de si se cumple o no la condición. La condiciones que se pueden poner en el while son con el comando test , poniendo un true ( poniendo un true en el while se crea un bucle infinito) o poner un comando con comillas invertidas. El break se pone solo si quieres salir bruscamente del bucle.

Estructura condicional UNTIL:

La estructura repetitiva until es de la siguiente forma:

until condicion
do
break
done

La estructura until se usa para repetir un conjunto de comando hasta que se cumpla la condición, cuando se cumple el script sale del until. Las condiciones y el break es lo mismo que en el while, si se usa una variable en el until se debe declarar antes.

Estructura condicional SELECT:

El select se estructura de la siguiente forma:

select name [ in word ] ;
do

list ;

done

select genera una lista de items al expandir la lista “word”, presentando en la pantalla esta lista de items precedidos cada uno de un número. A continuación se presenta un prompt pidiendo que se introduzca una de las entradas. Y se lee de la entrada estándar la opción elegida. Si la respuesta dada es uno de los números de la lista presentada, entonces la variable “name” toma el valor de esa opción, y se ejecuta con ella la lista de órdenes indicada. Si la respuesta es vacía, se vuelve a presentar la lista, y si es EOF se finaliza. Además el número de opción seleccionada se almacena en la variable REPLY. La lista de órdenes se ejecuta después de cada selección, mientras no se termine, bien con break, bien con EOF. El valor de salida de select será igual a valor de la última orden ejecutada.

===============================================================

Nota: Esto ha sido todo por esta entrada, solo les queda leer y practicar los muchos ejemplos de script con todas sus variantes y opciones para volverse un buen programador en Shell Scripting. Para eso le invito a descargar este pequeño resumen de lo mas importante sobre realizar Scripts:

Resumen de Shell Scripting

Biblioteca de Software Libre en Español (Contiene mucho material de Shell Scripting)

===============================================================

Para finalizar aquí les obsequio un pequeño script que pide usuario y contraseña para dar acceso:

#!/bin/bash

################################################################################
# REPÚBLICA BOLIVARIANA DE VENEZUELA
#
# NOMBRE: LINUX POST INSTALL – SCRIPT BICENTENARIO (LPI-SB)
# VERSIÓN: 6.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TÉCNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CÓDIGO: NOBILIS COR (LPI-SB 6.0+0)
# PAÍS ORIGEN: REPÚBLICA BOLIVARIANA DE VENEZUELA
# CREADO POR: JOSÉ JOHAN ALBERT IZAIPE
# CORREO: albertccs1976@hotmail.com
# NOMBRE FACEBOOK: Linux Post Install
# PAGINA PERSONAL FACEBOOK: http://www.facebook.com/linuxpostinstall
# COMUNIDAD FACEBOOK: Script Bicentenario
# TWITTER: @albertccs1976
# TELÉFONO: 0426.610.13.03
# PROMOCIONADO POR: PROYECTO TIC – TAC
# PAGINA WEB DEL PROYECTO TIC – TAC: https://proyectotictac.wordpress.com/
# FECHA DE LANZAMIENTO DE LA PRIMERA VERSIÓN (1.0): 07/12/2010
# FECHA DE LANZAMIENTO DE LA VERSION ACTUAL (6.0+0): 01/07/2014
################################################################################
################################################################################
#
# Derechos de autor:
#
# Copyleft (C) 2014 Jose Johan Albert Izaipe
#
# Licenciamiento:
#
# El Linux Post Install – Script Bicentenario no viene con ninguna garantía. El
# Autor no se hace responsable si se al aplicarse el Sistema Operativo se
# corrompe, daña o inutiliza.
#
# El Linux Post Install – Script Bicentenario es una aplicación de Software
# Libre, por lo tanto usted puede redistribuirlo y / o modificarlo bajo los
# términos de la Licencia Pública General de GNU publicada por la Free Software
# Foundation, ya sea la versión 3 o cualquier versión posterior, según sea de su
# preferencia.
#
# Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA
# GARANTÍA, incluso sin la garantía implícita de COMERCIALIZACIÓN o IDONEIDAD
# para un propósito particular. Vea la Licencia Pública General de GNU para más
# detalles.
#
# Procure obtener una copia de la Licencia Pública General de GNU para estar al
# tanto sobre lo estipulado por la misma.
#
# Consultela en:
#
# <http://www.gnu.org/licenses/&gt;.
################################################################################
################################################################################
# INICIO DEL MODULO DE GESTION DE VALIDACION DE USUARIO
################################################################################

# ESTE MODULO PROVEE LOS MECANISMOS DE AUTENTICACION Y VALIDACION PARA EVITAR
# USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO.

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 –stdout “ESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA ESCRIBA SALIR EN MAYUSCULA.” | aplay -q

echo “ESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA ESCRIBA SALIR EN MAYUSCULA.” | clear

dialog –infobox “\n \n \nESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA ESCRIBA SALIR EN MAYUSCULA.” 10 80

gxmessage “ESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA ESCRIBA SALIR EN MAYUSCULA.” -buttons “CERRAR” -timeout 5 -fg RED -bg black -center -font “sans-serif 12” -name “LINUX POST INSTALL – SCRIPT BICENTENARIO” -geometry 600×200 -wrap

zenity –info –title=”LINUX POST INSTALL – SCRIPT BICENTENARIO” –text=”DEAR USER: REMEMBER THAT POST INSTALL LINUX SCRIPT BICENTENNIAL YOUR AUTHENTICATION AND VALIDATION REQUEST TO PREVENT IMPROPER USE BY UNAUTHORIZED PERSONNEL. IF YOU DO NOT KNOW AND PASSWORD EXIT WRITE IN CAPITAL LETTERS.” –timeout 5

################################################################################

until [ “$USUARIO” = “LPI” ];

do

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 –stdout “ESTIMADO USUARIO: INTRODUZCA UN NOMBRE DE USUARIO VALIDO.” | aplay -q

USUARIO=$(zenity –entry –text “INTRODUZCA UN NOMBRE DE USUARIO VALIDO / ENTER A VALID USER NAME” –title “AUTENTIFICACIÓN DE USUARIO” –hide-text);
if [ “$USUARIO” = “SALIR” ]; then

mpg123 -q /opt/lpi-sb6/multimedia/alerta1.mp3

zenity –warning –text “\nUsted ha decidido salir del Programa, hasta luego.\nYou have decided to leave the program, later.\n\n\nPuede intentarlo mas tarde.\nYou can try later.” –title “Error de Autentificación!”

exit 0

fi
if [ “$USUARIO” != “LPI” ]; then

mpg123 -q /opt/lpi-sb6/multimedia/alerta1.mp3

zenity –warning –text “\nError al introducir un Usuario valido.\nFailed to enter a valid user.\n\n\nVuelva a intentarlo de nuevo.\nPlease try again.” –title “Error de Autentificación!”

fi

done

################################################################################

until [ “$CLAVE” = “Sb6” ];

do

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 –stdout “ESTIMADO USUARIO: INTRODUZCA UNA CONTRASEÑA VALIDA.” | aplay -q

CLAVE=$(zenity –entry –text “INTRODUZCA UNA CONTRASEÑA VALIDA / ENTER A VALID PASSWORD” –title “AUTENTIFICACIÓN DE CONTRASEÑA” –hide-text);
if [ “CLAVE” = “SALIR” ]; then

mpg123 -q /opt/lpi-sb6/multimedia/alerta1.mp3

zenity –warning –text “\nUsted ha decidido salir del Programa, hasta luego.\nYou have decided to leave the program, later.\n\n\nPuede intentarlo mas tarde.\nYou can try later.” –title “Error de Autentificación!”

exit 0

fi
if [ “$CLAVE” != “Sb6” ]; then

mpg123 -q /opt/lpi-sb6/multimedia/alerta1.mp3

zenity –warning –text “\nError al introducir una Contraseña valida.\nFailed to enter a valid password.\n\n\nVuelva a intentarlo de nuevo.\nPlease try again.” –title “Error de Autentificación!”

fi

done

################################################################################

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 –stdout “ESTIMADO USUARIO: ACCESO GARANTIZADO – USUARIO Y CONTRASEÑA CORRECTA” | aplay -q

echo “ESTIMADO USUARIO: ACCESO GARANTIZADO – USUARIO Y CONTRASEÑA CORRECTA.” | sleep 5 | clear

dialog –infobox “\n \n \nESTIMADO USUARIO: ACCESO GARANTIZADO – USUARIO Y CONTRASEÑA CORRECTA.” 10 80 ; sleep 5

gxmessage “ESTIMADO USUARIO: ACCESO GARANTIZADO – USUARIO Y CONTRASEÑA CORRECTA.” -buttons “CERRAR” -timeout 5 -fg RED -bg black -center -font “sans-serif 12” -name “LINUX POST INSTALL – SCRIPT BICENTENARIO” -geometry 600×200 -wrap

zenity –info –title=”LINUX POST INSTALL – SCRIPT BICENTENARIO” –text=”DEAR USER: GUARANTEED ACCESS – USER AND PASSWORD RIGHT” –timeout 5

################################################################################
# FIN DEL MODULO DE GESTION DE VALIDACION DE USUARIO
################################################################################

Espero les haya gustado y les sea útil dicha información, en la siguiente parte veremos otros prácticos ejemplos de Script para usar administrar / optimizar eficientemente nuestro el Sistema Operativo.

No olviden contestar la Encuesta y/o agregarse a la Pagina de Facebook Script Bicentenario y/o al Grupo de Facebook Linux Post Install para estar pendientes de las novedades en el Blog.

Para mayor conocimientos sobre este u otro tema pueden ver el siguiente Videotutorial sobre el tema:

Videotutorial para la Certificación LPIC de Paulpaulito

##########################################

Aquí les dejo esta encuesta para medir el apoyo logrado:

##########################################

=========================================================================================

Recordemos que básicamente este Blog se dedica a explicar todo lo relacionado con mi Aplicación, el Linux Post Install – Script Bicentenario (LPI-SB), el cual es una aplicación de Software Libre como pocas en su tipo en el mundo, es decir, con él una persona (Novata, Experta o Técnica) se puede ahorrar incuantificables horas/labor en entrenamiento y estandarización de procesos de Instalación, Actualización, Mantenimiento, Soporte (Resolución de problemas), Configuración de Perfiles de Usuarios o Parámetros dentro de su Sistema Operativo GNU/Linux basado en la Meta Distribución DEBIAN. El LPI-SB es un Script de Bash Shell desarrollado con tecnología “dialog, gxmessage y zenity” para su interfase gráfica y con “espeak, festival, festvox, mbrola, mpg123, speech y stardict”. El LPI-SB es un Sistema Experto que emula el razonamiento de un Especialista (Analista) Técnico experto en Sistema Operativo GNU/Linux basado en la Meta Distribución DEBIAN. El LPI-SB busca una mejor y uniforme calidad y rapidez en las respuestas a los Usuarios dando así lugar a una mejora de la productividad del Humano “experto” que presta el servicio. El LPI-SB trabaja como un Asistente Técnico con una interfase amigable y multimedia, es decir, con Ventanas, Asistencia por Voz, Alertas de Sonido y Manipulación de archivos de Sistema y Ofimáticos. También implementa la configuración de Perfiles de Usuario de forma que el Sistema Operativo GNU/Linux conserve su bajo consumo de recursos y se conserve como un Sistema Operativo Estable y Ligero, pero lleno de herramientas y aplicaciones elementales y productivas que faciliten su usabilidad ante los usuarios, es decir, que facilite el ser usados por cualquier persona (Usuario Básico, Administrativo, Avanzado, Programador, Técnico, entre otros). El LPI-SB proporciona a la Distribución Canaima GNU/Linux y otras escalabilidad, adaptabilidad, modularidad y ahorro de horas/labor en configuración al personal Técnico o no Técnico que lo implemente. En resumen, actúa como una pequeña inteligencia artificial capaz de lograr la ejecución de una operación idónea o pertinente para resolver una necesidad o poder resolver un problema específico. Si quieren conocer o experimentar con el LPI-SB6 pueden hacer clic en el siguiente enlace:

Todo sobre el LPI-SB6

Postdata: Soy un Ingeniero en Informática (Líder en Proyectos de Migración de Software Libre a Nivel de Usuarios) con un excelente empleo, pero si me ofrecen 14.000,00 Bs. + Beneficios puedo considerar ofertas! Para cualquier información llamar al teléfono0416.610.13.03 ó escribirme al correo: albertccs1976@hotmail.com y albertccs1976@gmail.com

=========================================================================================

REPÚBLICA BOLIVARIANA DE VENEZUELA

LEY DE INFOGOBIERNO

TÍTULO II

DE LA ORGANIZACIÓN EN EL PODER PÚBLICO PARA EL USO DE LAS TECNOLOGÍAS DE INFORMACIÓN

Capítulo IV
De las unidades de apoyo

Competencias

Artículo 53. El Centro Nacional de Tecnologías de Información tiene, en el ámbito de aplicación de la presente Ley, las siguientes atribuciones:

1. Proponer a la Comisión Nacional de las Tecnologías de Información las líneas de investigación para el desarrollo de programas y equipos informáticos que apoyen la solución de problemas en el Poder Público y en el Poder Popular.

2. Contribuir con la formación y difusión para la apropiación social del conocimiento en tecnologías de información libres en el país.

3. Solicitar al Poder Público y al Poder Popular la información necesaria para el cumplimiento de sus funciones, en el ámbito de su competencia.

4. Colaborar con la Comisión Nacional de las Tecnologías de Información en la promoción del acceso e intercambio de datos, información y documentos entre los órganos y entes del Poder Público, así como entre éstos y el Poder Popular.

5. Ejercer las funciones de unidad de apoyo especializado para la Comisión Nacional de las Tecnologías de Información.

6. Presentar el informe anual sobre su gestión al órgano rector y a la Comisión Nacional de las Tecnologías de Información.

7. Coordinar con el órgano competente los procedimientos, acciones y actividades necesarias para el desarrollo de la gestión del Sistema Venezolano para la Calidad en materia de tecnologías de información en el Poder Público.

8. Velar por el cumplimiento de las disposiciones de esta Ley y demás actos que se dicten, cuya vigilancia le competa.

9. Las demás atribuciones que determine la Ley.

__________________________________________________________________

Atrévete, usa Linux, sobre todo Canaima GNU / Linux.

La Lucha es Global y somos Ciudadanos Globales, todos a luchar por un Mundo Mejor!

Anuncios

Gracias por tus comentarios...

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s