Está en la página 1de 6

Shell Scripting

En los términos más simples, un script de shell es un archivo que contiene una serie de
comandos. El shell lee este archivo y ejecuta los comandos como si se hubieran ingresado
directamente en la línea de comandos.

El shell es algo único, ya que es una poderosa interfaz de línea de comandos para el sistema y
un intérprete de lenguaje de scripting. La mayoría de las cosas que se pueden hacer en la línea
de comandos se pueden hacer en scripts, y la mayoría de las cosas que se pueden hacer en
scripts se pueden hacer en la línea de comandos.

Navegación

 pwd: Imprimir directorio de trabajo


 cd: Cambiar directorio
 ls: Listar archivos y directorios

cd

Para cambiar el directorio de trabajo se usa el comando cd. Para hacer esto, escriba cd seguido
de la ruta de directorio de trabajo deseado.

Un nombre de ruta es la ruta que toma a lo largo de las ramas del árbol para llegar al
directorio que desea. Los nombres de rutas se pueden especificar de una de dos maneras
diferentes:

 Rutas de acceso absolutas


 Rutas de acceso relativas

Ruta de acceso absoluta

Comienza con el directorio raíz y sigue la rama de árbol por rama hasta que se completa la ruta
al directorio o archivo deseado.

Por ejemplo: Existe un directorio del


sistema en el que la mayoría de los
programas están instalados. La ruta del
directorio es /usr/bin.

Esto significa que desde el directorio raíz


(/) hay un directorio llamado usr que
contiene un directorio llamado bin.
Cuando un nombre de ruta absoluto comienza desde el directorio raíz y conduce a su destino,
un nombre de ruta relativo comienza desde el directorio de trabajo. Para hacer esto, usa un
par de notaciones especiales para representar posiciones relativas en el árbol del sistema de
archivos. Estas notaciones especiales son "." (Punto) y ".." (Punto punto).

‘.’ Se refiere al directorio de trabajo

‘..’ Se refiere al directorio principal del directorio de trabajo

Digamos que se quiere cambiar el directorio de trabajo al padre de /usr/bin que es


/usr, se podría hacer de dos maneras distintas:

 Como ruta absoluta: cd /usr


 Con un nombre de ruta relativo: cd ..

Del mismo modo, podemos cambiar el directorio de trabajo de /usr a /usr/bin de dos
maneras diferentes:

 Usando una ruta de acceso absoluta: cd /usr/bin


 Usando un nombre de ruta relativo: cd ./bin

Looking Around

 ls: Lista de archivos y directorios


 less: Ver archivos de texto
 file: Clasificar los contenidos de un archivo
ls

El comando ls se usa para listar el contenido de un directorio. Es probablemente el comando


de Linux más comúnmente usado. Se puede utilizar de varias maneras diferentes.

Mando Resultado
ls Listar los archivos en el directorio de trabajo
ls / bin Liste los archivos en el directorio / bin (o cualquier otro directorio que desee
especificar)
ls -l Listar los archivos en el directorio de trabajo en formato largo
ls -l / etc / bin Liste los archivos en el directorio / bin y el directorio / etc en formato largo
ls -la .. Enumere todos los archivos (incluso los que tengan nombres que comiencen
con un carácter de punto, que normalmente están ocultos) en el padre del
directorio de trabajo en formato largo

less

Programa que permite ver archivos de texto. Esto es muy útil ya que muchos de los archivos
utilizados para controlar y configurar Linux son legibles para el ser humano.

Manipulación de archivos

 cp - copia archivos y directorios


 mv - mueve o renombra archivos y directorios
 rm - eliminar archivos y directorios
 mkdir - crear directorios

Estos cuatro comandos están entre los comandos de Linux más utilizados. Son los comandos
básicos para manipular tanto archivos como directorios.

Wildcards

Los wildcards (comodines) le permiten seleccionar nombres de archivos basados en patrones


de caracteres. La siguiente tabla enumera los wildcards (comodines) y lo que seleccionan:

Wildcard Sentido
* Coincide con cualquier carácter
? Coincide con cualquier carácter individual
Coincide con cualquier carácter que sea
miembro de los caracteres establecidos. El
conjunto de caracteres también puede
[ characters]
expresarse como una clase de caracteres
POSIX como uno de los siguientes:
Clases de caracteres POSIX

[: alnum:] Caracteres alfanuméricos

[:alfa:] Caracteres alfabéticos

[:dígito:] Numerales

Caracteres alfabéticos en
[:Superior:]
mayúsculas

Caracteres alfabéticos en
[:inferior:]
minúsculas

Coincide con cualquier carácter que no sea


[! characters]
miembro de los caracteres establecidos

Usando wildcards, es posible construir criterios de selección muy sofisticados para los nombres
de archivo:

Pattern Matches
* Todos los nombres de archivos
Todos los nombres de archivos que
g*
comiencen con el carácter "g"
Todos los nombres de archivos que
b*.txt comiencen con el carácter "b" y terminan con
los caracteres ".txt"
Cualquier nombre de archivo que comience
Data??? con los caracteres "Data" seguidos
exactamente de 3 caracteres más.
Cualquier nombre de archivo que comience
[abc]* con "a", "b" o "c" seguido de cualquier otro
carácter
Cualquier nombre de archivo que comience
[[:upper:]]* con una letra mayúscula. Este es un ejemplo
de una clase de carácter.
Otro ejemplo de clases de caracteres. Este
patrón coincide con cualquier nombre de
BACKUP.[[:digit:]][[:digit:]] archivo que comience con los caracteres
"BACKUP", seguido de exactamente dos
numerales.
Cualquier nombre de archivo que no termine
*[![:lower:]]
con una letra mayúscula.

Nota: Se puede usar wildcards con cualquier comando que acepte argumentos de nombre de
archivo.
Scripts Shell

En los términos más simples, un script de shell es un archivo que contiene una serie de
comandos. El shell lee este archivo y ejecuta los comandos como si se hubieran ingresado
directamente en la línea de comandos.

El shell es algo único, ya que es una poderosa interfaz de línea de comandos para el sistema y
un intérprete de lenguaje de scripting. Como veremos, la mayoría de las cosas que se pueden
hacer en la línea de comandos se pueden hacer en scripts, y la mayoría de las cosas que se
pueden hacer en scripts se pueden hacer en la línea de comandos.

Hemos cubierto muchas funciones de shell, pero nos hemos centrado en las funciones que se
usan más a menudo directamente en la línea de comandos. El shell también proporciona un
conjunto de características que normalmente se usan (pero no siempre) al escribir programas.

Contenido

1. Escribir tu primer script y hacerlo funcionar


2. Edición de los scripts que ya tienes
3. Aquí los scripts
4. Variables
5. Sustitución de comandos y constantes
6. Funciones de Shell
7. Algún trabajo real
8. Control de flujo - Parte 1
9. No te metas en problemas
10. Entrada de teclado y aritmética
11. Control de flujo - Parte 2
12. Parámetros posicionales
13. Control de flujo - Parte 3
14. Errores y señales y trampas (¡Oh!) Parte 1
15. Errores y señales y trampas (¡Oh!) Parte 2

Escribir tu primer script y hacerlo funcionar

Para escribir con éxito un script de shell, tienes que hacer tres cosas:

 Escribe un script
 Darle al shell permiso para ejecutarlo.
 Ponlo en algún lugar donde el Shell pueda encontrarlo.

Escribe un script

Un script de shell es un archivo que contiene texto ASCII. Para crear un script de shell, utiliza
un editor de texto. Un editor de texto es un programa, como un procesador de textos, que lee
y escribe archivos de texto ASCII.. Aquí hay una lista de algunos de los más comunes:
Nombre Descripción Interfaz
vi, vim El abuelo de los editores de texto de Unix, vi es famoso por línea de comando
su estructura de comando difícil y no intuitiva. En el lado
positivo, vi es potente, ligero y rápido. Learning vi es un rito
de paso de Unix, ya que está disponible universalmente en
sistemas similares a Unix. En la mayoría de las distribuciones
de Linux, se usa una versión mejorada del editor vi
tradicional llamado vim .
Emacs El verdadero gigante en el mundo de los editores de texto es línea de comando
Emacs by Richard Stallman . Emacs contiene (o se puede
hacer que contenga) todas las características jamás
concebidas para un editor de texto. Cabe señalar que los fans
de vi y Emacs luchan contra guerras religiosas amargas sobre
cuál es mejor.
nano nano es un clon gratuito del editor de texto suministrado con línea de comando
el programa de correo electrónico pine . nano es muy fácil de
usar pero es muy corto en
características. Recomiendo nano para los usuarios
primerizos que necesitan un editor de línea de comandos.
gedit gedit es el editor que se suministra con el entorno de gráfico
escritorio Gnome.
kwrite kwrite es el "editor avanzado" suministrado con KDE. Tiene gráfico
resaltado de sintaxis, una característica útil para
programadores y escritores de guiones.