¿Qué es un Shell Script?
Un Shell Script es un programa que está creado con
instrucciones que son ejecutadas por un Shell (CLI o
intérprete de comandos) de Unix o Linux. El código
no es compilado ni precompilado, se va ejecutando línea por
línea efectuando lo que cada instrucción le indica.
Necesita un programa que entienda los comandos y
estructuras que contiene y esto se suele poner en la primera
línea del programa. Por ejemplo #!/bin/bash significa que le
pasaremos al BASH las lineas del fichero de Script. Dado que
el BASH es el intérprete de comandos más famoso de Linux,
los Script que se crean para este entorno también se pueden
llamar Bash Script.
En general se suele usar la extensión .sh para
identificar qué contiene el fichero, pero no es en
absoluto necesario. Lo que indica a Linux que es un
programa es el permiso de ejecución y no la extensión
que tenga el fichero.
¿Para qué sirve en Shell Script?
Principalmente sirve para automatizar tareas y para realizar procesos más complejos de los que un
solo comando puede efectuar. Aunque los comando se pueden enlazar mediante tuberías o XARGS, a
veces necesitamos tomar decisiones condicionales o recorrer elementos mediante bucles. Aquí es
donde necesitamos organizarlo todo en un Shell Script.
Shell que en Español significa CONCHA (coraza, cubierta,
protección). Aplicado este termino en Sistemas Operativos se
refiere al interprete de comandos del Sistema Operativo. Por lo
general, es una interfaz de texto de altas prestaciones, y que se
manifiesta en forma de Terminal (Consola) y que sirve
esencialmente para 3 importantes áreas de trabajo:
1.- Administrar el S.O.,
2.- Ejecutar aplicaciones e interactuar con ellas, y
3.- Servir de entorno básico de programación.
Shell Scripting
Es la técnica (habilidad / destreza) de diseñar y crear Script
(archivo de automatización de tareas) mediante un Shell
(preferiblemente) de un Sistema Operativo, o un Editor de Texto
(Gráfico o Terminal).
Este es un tipo de lenguaje de programación que generalmente es
interpretado.
Es decir, que mientras la mayoría de los programas son
compilados (codificados), porque son convertidos permanente a un
código especifico (especial) antes de que puedan ejecutarse
(proceso de compilación), un script de shell permanece en su forma
original (su código fuente en forma de texto) y son interpretados
comando por comando cada vez que se ejecutan.
¿Cuales son las características de los programas basados en
programación bajo Shell Scripting?
1.- Son más fácil de escribirse (programarse), pero con un
costo mayor de procesamiento cuando son ejecutados.
2.- Usan intérpretes en lugar de compiladores para
ejecutarse
3.- Tienen una relación de comunicación con componentes
escritos en otros lenguajes de programación.
4.- Los archivos que los contienen son almacenados como
texto sin formato.
5.- El diseño final (código) suele ser más pequeño que
lo que sería el equivalente en un lenguaje de
programación compilado.
¿Cuales son los Tipos de lenguajes más conocidos
bajo Shell Scripting?
1.- Lenguaje de control de tareas y shells: 3.- Lenguaje scripting de aplicaciones específicas:
a) cmd.exe (Windows NT, Windows CE, OS/2), a) ActionScript en Flash,
b) COMMAND.COM (DOS, Windows 9x), b) MATLAB,
c) csh, Bash, AppleScript, sh, c) mIRC script,
d) JScript vía Windows Script Host, d) QuakeC, entre otros.
e) VBScript vía Windows Script Host,
4.- De programación web (para páginas dinámicas):
f) REXX, entre muchos otros.
a) Del lado del servidor:
2.- GUI Scripting (Lenguajes de Macros):
– PHP,
– ASP (Active Server Pages),
a) AutoHotkey,
– JavaServer Pages,
b) AutoIt,
– ColdFusion,
c) Expect,
d) Automator, entre otros. b) Del lado del cliente:
– JavaScript,
– JScript,
– VBScript,
¿Que es el Bash en GNU/Linux?
Es un programa informático cuya función consiste en interpretar órdenes. Está basado en la shell de
Unix y es compatible con POSIX. Fue escrito para el proyecto GNU y es el intérprete de comandos
por defecto en la mayoría de las distribuciones de Linux.
¿Que es un Script de Shell en GNU/Linux?
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”
¿Qué es un Terminal?
Cuando se habla de hardware, suele asociarse la palabra «Terminal» a aquellos dispositivos físicos que
nos permiten introducir y recibir información en un ordenador. Sin embargo, en el ámbito del software,
y sobre todo, en cuanto al uso de sistemas operativos en modo texto, la palabra «Terminal», suele
referirse específicamente a los «Emuladores de terminal’. Es decir, aquellas aplicaciones que nos
permiten utilizar el modo texto dentro de una interfaz gráfica de usuario (GUI). Por ende, ejecutan y dan
acceso a una Shell o múltiples tipos de Shell.
Un buen ejemplo bien conocido es Windows, el cual ofrece
el conocido Windows Terminal, que por defecto, permite
usar Windows PowerShell (o solo PowerShell), y la
aplicación «Símbolo del sistema» o simplemente CMD
(Command Prompt).
Mientras que, en GNU/Linux existen muchísimas
aplicaciones de Terminal, que pueden emplear múltiples
Shells. Siendo la más conocida Bash Shell.
¿Qué es una Consola?
El término «Consola» al igual que el de «Terminal», en cuanto a Hardware, suelen asociarse a lo mismo.
Sin embargo, en cuanto a Software, su asociación más correcta debe ser a la de una sesión abierta en
una Shell. Un buen ejemplo para comprender esto es, que podemos abrir un terminal y abrir 2 pestañas
(Consolas) en el mismo.
¿Qué es una Shell?
Una Shell puede describirse brevemente como, un intérprete de comandos del Sistema Operativo. Por
lo que, a su vez, puede verse a una Shell como una interfaz de texto de altas prestaciones, que se usa
a través de una Terminal (Consola). Además, en GNU/Linux existen muchas Shells entre las que se
pueden mencionar las siguientes: Zsh, Fish, Ksh y Tcsh, entre muchas otras.
¿Qué es un Prompt?
Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de
comandos para indicar que está a la espera de órdenes.
Creando Nuestro primer Script
Creamos nuestro directorio
curso_scripting y entramos al mi el
Mediante al comando Vim,
entramos al editor de texto,
creando el archivo primer_script.sh
Importante colocar una cabecera
en nuestro editor para que el
sistema reconozca que es un
script bash, como estándar de
nuestros trabajo.
El # implica línea de comentario no
ejecutable.
Para escribir debo presionar la
tecla i, de intersectar, para salir.
Esc, : y X
Podemos usar un script para generar
una serie de comando dentro del
script, y ejecutar el archivo.
Entro al archivo creado elimino
hola mundo y creo otra impresión
con los comando cd y pwd y salgo
del editor
Ejecuto nuevo vez mi script para
ver el resultado.
El script se ejecuto a pesar de segur
en la carpeta curso_scripting
El Script es que navega y ejecuta las
operaciones, los comandos sin alterar
el flujo de trabajo de la línea de
comando de forma independiente
Consideraciones la estructura de carpeta del sistema linux
Carpeta principal o raiz
Almacena carpetas que tiene
configuración del sistema operativo
Bin, guarda los archivos binarios del usuario
Boot, carpeta donde están guardada la
configuración para que el sistema inicie
Home, contiene un sub conjunto de
carpetas
Media, cuando conectas una usb, se ven
aquí los archivos.
Opt, aplicaciones externas que no se
guardan en usr.
Directorios Principales en GNU/LINUX
La estructura de los directorios de Linux, se encuentra
definida en el denominado FHS (Filesystem Hierarchy
Standard) que por sus siglas en inglés, quiere decir
estándar de jerarquía para los sistemas de archivos.
El directorio /etc
Almacena los archivos de configuración tanto en
cuanto a componentes del sistema operativo se refiere
así como de los programas y aplicaciones instaladas
después de instalar el sistema operativo.
El directorio /usr
En este directorio se almacenan todos los archivos de
solo lectura y relativos a las utilidades de usuario,
incluyendo todo el software instalado a través de los
gestores de paquetes de cada distribución.
El directorio /boot
Este directorio incluye todos los ejecutables y archivos
que son necesarios en el proceso de arranque del
sistema, y que deberán ser utilizados antes que el
kernel empiece a dar las órdenes de ejecución de los
diferentes módulos del sistema