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


FELIZ AGOSTO: 2014 (PUBLICACIÓN 152)

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 primera (23°) publicación del año vamos a aprender 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 este Enlace, para que se auto-entrenen o por lo menos vean algunos libros de su interés, sean o no sean muy expertos en su área profesional o de su particular interés.

OPENLIBRA: “La Biblioteca Libre online que estabas esperando”

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

¿Que es Shell?

Shell que significa en Castellano “concha” es el interprete de comandos del sistema. Es una interfaz de texto de altas prestaciones, que sirve fundamentalmente para tres cosas: administrar el sistema operativo, lanzar aplicaciones (e interactuar con ellas) y como entorno de programación. Gnu/Linux se administra editando ficheros configuración. Como norma general, se encuentran en: /etc, dentro de direcciones específicos para cada aplicación. Por ejemplo, Lilo (Linux Loader) se configura editando el fichero: /etc/lilo/lilo.conf. Los programas, se ejecutan escribiendo el nombre del ejecutable, si este se encuentra en el path (ruta por defecto para los mismos, normalmente: /usr/bin) o escribiendo el nombre del ejecutable precedido por: ./, desde el directorio donde se encuentren. Todo esto, es bien conocido por cualquier usuario de Shell. No tan conocidas son sus capacidades como entorno de programación. Los programas de Shell no necesitan compilarse. La Shell los interpreta linea a linea. Se les suele conocer como Shells Scripts y pueden ser desde sencillas ordenes hasta complejas series de instrucciones para el arranque del propio sistema operativo. En general, tienen una sintaxis bastante clara y suponen un buen punto de partida para dar los primeros pasos en el mundo de la programación.

¿Que es Shell Scripting?

Es el arte (proceso) de diseño y creación de Script (archivo de automatización de tareas) para / mediante el Shell de un Sistema Operativo. Un lenguaje Scripting es un tipo de lenguaje de programación que es generalmente interpretado. Mientras la mayoria de los programas son compilados, porque son convertidos de forma permanente a un código especial antes de que puedan ejecutarse (proceso de compilación), los scripts permanecen en su forma original (su código fuente en forma de texto) y son interpretados comando por comando cada vez que se ejecutan. De todas maneras, los scripts pueden ser compilados también, aunque no es usual.

Características de los Lenguajes Scripting:

  • Los Scripts suelen escribirse más fácilmente, pero con un costo sobre su ejecución.
  • Suelen implementarse con intérpretes en lugar de compiladores.
  • Tienen una fuerte comunicación con componentes escritos en otros lenguajes.
  • Los Scripts suelen ser almacenados como texto sin formato.
  • Los códigos suelen ser más pequeños que el equivalente en un lenguaje de programación compilado.

Tipos de lenguajes de scripting:

  • Lenguaje de control de tareas y shells: cmd.exe (Windows NT, Windows CE, OS/2), COMMAND.COM (DOS, Windows 9x), csh, Bash, AppleScript, sh, JScript vía Windows Script Host, VBScript vía Windows Script Host, REXX, etc.
  • GUI Scripting: son lenguajes de scripting diseñados para interactuar con los elementos de las interfaces gráficas como botones, ventanas, menús, etc. Se utilizan para automatizar acciones repetitivas. También son llamados “lenguajes macro”. Ejemplos: AutoHotkey, AutoIt, Expect, Automator, etc.
  • Lenguaje scripting de aplicaciones específicas: en grandes aplicaciones a veces es necesario incluir un lenguaje de scripting que se adapte a ésta y dé más posibilidades a sus usuarios. Ejemplos: ActionScript en Flash, MATLAB, mIRC script, QuakeC, etc.
  • De programación web: los lenguajes scripting para webs suelen servir para crear páginas dinámicas. De todas maneras, muchos de ellos son tan potentes como para poder crear programas de propósito general. Pueden diferenciarse en dos categorías: – Del lado del servidor: PHP, ASP (Active Server Pages), JavaServer Pages, ColdFusion, IPTSCRAE, Lasso, MIVA Script, SMX, XSLT. – Del lado del cliente: JavaScript, JScript, VBScript, Tcl.
  • Lenguajes de procesamiento de textos: muchos lenguajes de scripting comenzaron de esta manera. Permitían automatizar tareas al administrador cuando se trataba de configuraciones basadas en textos (usual en Unix por ejemplo). En el caso de Perl, comenzó como un lenguaje de generación de reportes, pero terminó siendo un completo lenguaje para desarrollar aplicaciones. Ejemplos: AWK, Perl, sed, XSLT, Bash.
  • Lenguajes dinámicos de propósito general: Algunos lenguajes, como Perl, comenzaron como lenguajes de scripting para se desarrollaron como completos lenguajes de programación de propósito general. Otros lenguajes similares han sido descritos como “lenguajes scripting” por situaciones similares, aunque luego se hayan usado más para programar aplicaciones. Ejemplos: APL, Boo, Dylan, Ferite, Groovy, Io, Lisp, Lua, MUMPS (M), newLISP, Nuva, Perl, PHP, Python, Ruby, Scheme, Smalltalk, SuperCard, Tcl, Revolution.

¿Que es Bash? 

BASH es un shell de Unix (intérprete de comandos de Unix) escrito para el proyecto GNU. Su nombre es un acrónimo de bourne-again shell (otro shell bourne); haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros shells importantes de Unix. BASH es el shell por defecto en la mayoría de sistemas GNU/Linux, además de Mac OS X Tiger, y puede ejecutarse en la mayoría de los sistemas operativos tipo UNIX. También se ha portado a Microsoft Windows por el proyecto Cygwin. Hacia 1978 el shell Bourne era el shell distribuido con el Unix versión 7. Stephen Bourne, por entonces investigador de los Laboratorios Bell, escribió el shell Bourne original. Brian Fox escribió el shell bash en 1987. En 1990, Chet Ramey se convirtió en su principal desarrollador.

¿Que es un Script?

Los Scripts de Shell son extremadamente útiles. Es buena idea escribir aquellas necesidades que tengamos y luego editar scripts que realicen este trabajo por nosotros. A estas alturas, ya es hora de preguntarse que es exactamente un script. Es un archivo de texto, que contiene una serie de comandos para shell, que el sistema ejecuta ordenadamente, de arriba abajo. Para editarlos, tan solo hace falta un editor de textos, como Emacs, Vi, Nano, entre muchos existentes. Se guardan con extensión “.sh” (o sin ella, en algunos casos) y se ejecutan desde la Shell mediante el comando: sh nombre de script.sh. Los scripts, se comportan de igual manera que los comandos de la shell.

El enfoque de enseñanza que utilizaremos para aprender en este Blog será practico y directo, es decir, En lugar de mostrar el funcionamiento de cada comando, lo cual se puede aprender por separado, vamos a ver ejercicios concretos que sean apropiados para la administración u optimización de nuestro Sistema Operativo.

Bueno, ya va siendo hora de que pasemos a la práctica. El primer paso para trabajar con una Shell es ejecutar una shell. Esto que parece una perogrullada tiene su razón de ser. En algunas distribuciones de Gnu/Linux muy enfocadas al usuario finál, la shell está bastante escondida. Normalmente, se llama: Konsole, terminal, terminal de X, o algo similar. Otra opción es utilizar una consola virtual. Mediante: Ctrl+alt+f1, o f2, o f3 hasta f7 u f8, dependiendo de la Distribución GNU/Linux que use. La Shell más utilizada en Gnu/Linux es Bash, aunque existen otras, como ksh o C Shell. Por lo tanto estas publicaciones están enfocada a Bash Shell.

En esta primera parte  mostraremos 1 ejemplo de como puede hacerse un Script de Bash Shell y las secciones que debería contener:

Ejemplo:

#!/bin/bash

################################################################################
# SECCIÓN DE IDENTIFICACIÓN DEL PROGRAMA Y DEL CREADOR
################################################################################
# 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
################################################################################
################################################################################
# SECCIÓN DE LICENCIAMIENTO DEL PROGRAMA
################################################################################
#
# 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;.
################################################################################
################################################################################
# SECCIÓN DE IDENTIFICACIÓN DEL PROGRAMA Y DEL CREADOR
################################################################################
# ESTE MODULO EJECUTARA LAS ORDENES QUE USTED LE PROGRAME / Ejemplo: Copiar un archivo comprimido de un directorio a otro, descomprimirlo, cambiarle los permisos, abrir un navegador y cerrarse.

clear

cd /home/$USERNAME

cp /opt/lpi-sb6/plugins/msttcorefonts.tar.gz /home/$USERNAME

tar -zxvf msttcorefonts.tar.gz

mv msttcorefonts /usr/share/fonts/truetype

chmod 777 -R /usr/share/fonts/truetype/msttcorefonts

rm /home/$USERNAME/msttcorefonts.tar.gz

x-www-browser http://packages.debian.org/stable/x11/msttcorefonts -new-tab &

exit 0

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

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 explicación sobre el tema pueden ver el siguiente vídeo o buscar en Google sobre el tema:

Shell Script

Programación en Shell Script

Curso Programacion bash linux

 

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

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 III
De las atribuciones de la Comisión Nacional de las Tecnologías de Información

Atribuciones del Director o Directora General

Artículo 48. Corresponde al Director o Directora General de la Comisión Nacional de las Tecnologías de Información:

1. Ejercer la representación del Instituto y emitir los lineamientos para organizar, administrar, coordinar y controlar los recursos humanos, materiales y financieros del Instituto.

2. Autorizar la realización de inspecciones o fiscalizaciones.

3. Ordenar la apertura y sustanciación de procedimientos administrativos sancionatorios.

4. Nombrar, remover o destituir al personal del Instituto y ejercer la potestad disciplinaria, de conformidad con los procedimientos del correspondiente estatuto.

5. Celebrar en nombre del Instituto, previa aprobación del Consejo Directivo, convenios y contratos con organismos nacionales e internacionales, de conformidad con la ley.

6. Dictar los lineamientos generales para la elaboración del proyecto de presupuesto, el plan operativo anual y el balance general del Instituto, y someterlo a la aprobación del Consejo Directivo, de conformidad con la ley.

7. Otorgar poderes para la representación judicial y extrajudicial del Instituto.

8. Delegar atribuciones para la firma de determinados documentos, en los casos que determine el reglamento interno del Instituto.

9. Ejercer las competencias del Instituto que no estén expresamente atribuidas a otra autoridad.

10. Elaborar y presentar el proyecto del reglamento interno del Instituto a la consideración del Consejo Directivo.

11. Convocar y presidir las sesiones del Consejo Directivo, así como suscribir los actos y documentos que emanen de sus decisiones.

12. Presentar la memoria y cuenta del Instituto a consideración del Consejo Directivo y del Ministerio del Poder Popular con competencia en materia de ciencia, tecnología e innovación.

13. Las demás que le confieran la ley y los reglamentos.

Régimen de los funcionarios y funcionarias

Artículo 49. Los funcionarios públicos y funcionarias públicas de la Comisión Nacional de las Tecnologías de Información se regirán por la Ley del Estatuto de la Función Pública, salvo disposiciones especiales que el Ejecutivo Nacional decida sobre el reclutamiento, selección, ingreso, el desarrollo, la evaluación, los ascensos, los traslados, las suspensiones en el ejercicio de los cargos, la valoración de los cargos, las escalas de remuneraciones y el egreso. Las materias enumeradas en este artículo son de orden público; no pueden renunciarse ni relajarse por convenios individuales o colectivos, ni por actos de las autoridades de la Comisión Nacional de las Tecnologías de Información.

__________________________________________________________________

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

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

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