Capitulos de este wiki
  1. 1 Guías para colegios con plataforma de referencia S-Helio 1.1
  2. 2 Primera exploración de Linux desde la perspectiva de un usuario
  3. 3 Software de libre redistribución
  4. 4 Linux
  5. 5 Sistema de usuarios y manejo de clave
  6. 6 Escritorio y herramientas Gnome
  7. 7 Directorios y archivos
  8. 8 Disquetes y CDROM
  9. 9 Búsqueda y consulta de documentación
  10. 10 Linux desde la perspectiva de un usuario con experiencia
  11. 11 Archivos y permisos
  12. 12 Información personal y comunicación con otros usuarios
  13. 13 Servicios de la Intranet
  14. 14 Edición de texto
  15. 15 Linux desde la perspectiva de un usuario con mas experiencia
  16. 16 Sistemas para preparar documentos (I)
  17. 17 Sistemas para preparar documentos (II)
  18. 18 Bash y el juego de herramientas
  19. 19 Procesos y tareas
  20. 20 Scripts basicos para bash (I)
  21. 21 Scripts basicos para bash (II)
  22. 22 Configuración de una sesión
  23. 23 Desarrollo de habilidades para administrar computadores con Linux
  24. 24 El rol del administrador de red
  25. 25 Apagado y encendido de una red
  26. 26 Administración de usuarios (I)
  27. 27 Administración de usuarios (II)
  28. 28 Administración de archivos (I)
  29. 29 Administración de archivos (II)
  30. 30 Administración de programas (I)
  31. 31 Administración de programas (II)
  32. 32 Colaboración y soporte
  33. 33 Administración de Linux en computadores aislados
  34. 34 Inicialización del sistema
  35. 35 Kernel y módulos
  36. 36 Hardware basico y Linux (I)
  37. 37 Hardware basico y Linux (II)
  38. 38 Dispositivos y Linux (I)
  39. 39 Dispositivos y Linux (II)
  40. 40 Dispositivos y Linux (III)
  41. 41 Instalación de Debian
  42. 42 Localización y configuración de algunos programas
  43. 43 Administración de una red con Linux
  44. 44 Redes, protocolos e Internet
  45. 45 Dispositivos para interconexión y Linux
  46. 46 Direcciones, enrutamiento y transporte
  47. 47 Protocolos de soporte y de usuario (I)
  48. 48 Protocolos de soporte y de usuario (II)
  49. 49 Protocolos de soporte y de usuario (III)
  50. 50 Protocolos de soporte y de usuario (IV)
  51. 51 Protocolos de soporte y de usuario (V)
  52. 52 Protocolos de soporte y de usuario (VI)
  53. 53 Apéndice A. Plataforma de referencia S-Helio 1.1
  54. 54 Apéndice B. Sobre estas guías
  55. 55 Apéndice C. Actualización del kernel de Debian Linux (I)
  56. 56 Apéndice C. Actualización del kernel de Debian Linux (II)
  57. 57 Apéndice D. Respuestas a los ejercicios (I)
  58. 58 Apéndice D. Respuestas a los ejercicios (II)
  59. 59 Apéndice D. Respuestas a los ejercicios (III)

Manual Aprendiendo a aprender Linux - Scripts basicos para bash (II)

21 - Scripts basicos para bash (II)

[editar]
Curso gratis creado por Vladimir Támara, Jaime Irving Dávila, Pablo Chamorro e Igor Támara. Extraido de: http://es.tldp.org/Manuales-LuCAS/AA_Linux_colegio-1.1/AA_Linux_colegio-1.1-html/
14 de Febrero de 2006


En un script puede emplear cualquier programa o comando, junto con redireccionamiento, procesos y control de tareas. bash ignora comandos que comienzan con el caracter '#'. Esto es útil para agregar comentarios explicativos a los scripts.

Caracter empleado al comienzo de líneas en scripts para bash que indica que la línea entera es un comentario.

A continuación introducimos algunos comandos de bash y programas útiles al hacer scripts.

Comando internto de bash que lee una cadena de la entrada estándar y la asigna a una variable de ambiente (o en su defecto a la variable REPLY).

Comando interno de bash que permite crear alias para ciertos comandos.

Comando interno de bash que permite eliminar alias creados con el comando alias.

Programa que recibe el nombre de un archivo y retorna la parte que corresponde al directorio.

Programa que recibe el nombre de un archivo y retorna la parte que corresponde al nombre sin directorio.

Programa que retorna el nombre de la máquina en la que se ejecuta.

Programa que retorna el nombre del usuario que lo ejecuta.

Programa que retorna identificación y grupo(s) del usuario que lo ejecuta.

Comando interno de bash que permite cambiar atributos en variables de ambiente.

read

Lee una línea de entrada estándar y asigna las palabras a las variables que sigan al comando read. Puede especificarse un mensaje que se presentará como prompt antes de empezar a leer con la opción -p mensaje. El siguiente ejemplo lee dos palabras en las variables NOMBRE y APELLIDO:

read -p "Teclee nombre y apellido: " NOMBRE APELLIDO

Si la línea leída tiene más palabras que la cantidad de variables, el resto serán ignoradas. Si tiene menos palabras, las primeras variables (de izquierda a derecha) serán empleadas y el resto quedarán en blanco (i.e con la cadena vacía ""). En caso de que no se den nombres de variables, la línea leída quedará en la variable REPLY.

alias

Con este comando puede definir alias para comandos, después de definir un alias bash lo remplazará por el comando completo. Por ejemplo un alias para abreviar ls -l puede ser ll, que se definiría como:

alias ll="ls -l" Puede listar los alias definidos con la opción -p del comando alias.

unalias

Permite eliminar alias creados con el comando alias, por ejemplo para eliminar el alias ll se emplea:

unalias ll

Si se emplea la opción -a, el comando unalias elimina todos los alias definidos.

dirname

Recibe como primer parámetro el nombre completo de una archivo, incluyendo su ruta y envía a salida estándar sólo la ruta. Por ejemplo:

dirname /usr/doc/xterm/README.Debian

presenta en salida estándar /usr/doc/xterm.

basename

Análogo a dirname, pero envía a salida estándar el nombre del archivo.

hostname

Envía a salida estándar el nombre del computador en la red, esto también puede verse en la variable de ambiente HOSTNAME. Con la opción -f, el programa hostname presenta el nombre completo, con la opción -i la dirección IP, con la opción -d el dominio DNS, con la opción -a presenta nombres alternos de su máquina y con la opción -y el dominio NIS
este programa extrae parte de la información del archivo /etc/hosts y de /etc/hostname.

whoami

Retorna el nombre del usuario que lo ejecuta. También puede verse en la variable de ambiente USER.

id

Retorna nombre y número del usuario que lo ejecuta, así como nombre y número del grupo o grupos a los que pertenezca. Con la opción -g sólo retorna el número del grupo principal, con -u retorna sólo el número del grupo principal, con -G retorna los números de todos los grupos a los que pertenece. Estas opciones pueden seguirse de n para presentar nombres en lugar de números.

declare

Las variables de ambiente tienen atributos que pueden examinarse o cambiarse con este comando interno de bash. Los atributos pueden ser sólo lectura (opción -r), exportable (opción -x) y variable entera (opción -i). Una variable de sólo lectura no puede ser modificada, y una variable entera sólo puede asociarse con números. [3]. Para examinar las variables que tengan un cierto atributo se emplea declare seguido del código de la opción, por ejemplo para examinar las variables con atributo de sólo lectura declare -r. Para cambiar un atributo a una variable se emplea la opción (precedida de - o + para activar y desactivar) seguida del nombre de la variable, por ejemplo declare -i N pone el atributo de variable entera a N.


  • Recomendamos de forma especial consultar la página del manual de bash. Hay algunas partes que complementan lo que se ha presentado en esta guía:
    • bash puede hacer más expansiones de parámetros, con la sintaxis ${...}
      por ejemplo sustituciones en el valor de una variable
      . Puede consultar la información completa sobre este tema en la sección "expansión de parámetros".
    • Pueden hacerse scripts para bash con otras características que no se han presentado en esta guía: if, case, while, for, function.
  • El intérprete de comandos es una parte importante de la filosofía Unix, el libro clásico sobre este tema es de Brian. W. Kernighan y Rob Pike "El Entorno de Programación UNIX", Prentice-Hall Hispanoamericana. Este libro explica y muestra el uso de csh, un predecesor de bash
    la mayoría de características de csh están disponibles en bash.
  • En Internet puede consultar "Advanced Bash-Scripting Guide: A complete guide to shell scripting, using Bash" de Mendel Cooper, disponible en: http://linuxdoc.org/LDP/abs/html/index.html o Programación en BASH - COMO de introducción http://lucas.hispalinux.es/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/Bash-Prog-Intro-COMO.html


1. 2. 3. [[http://es.tldp.org/Manuales-LuCAS/AA_Linux_colegio-1.1/AA_Linux_colegio-1.1-html/x3772.htm#script.variables.2 El programa man presenta páginas del manual, empleando el programa especificado en la variable de ambiente PAGER o en su defecto con el programa less (ver Lectura bash y el juego de herramientas). Modifique y exporte la variable PAGER para que man emplee el programa more para presentar información y pruebe el cambio.]] 4. 5. 6. Haga un script que cada 90 minutos presente el mensaje "Hacer tareas". //Ayuda:// **source**. 7. 8.

1. Cree un script que sea interpretado por bash, que al ejecutarse busque entre sus directorios, todos los archivos, ordene los nombres alfabéticamente y le envíe un correo con esa información. Ayuda: Puede emplear la opción -R de ls para listar subdirectorios, y la opción -u de sort.



#!/bin/bash cd $HOME ls -R | sort -u | mail $USERNAME@$HOSTNAME

2. La variable de ambiente HOME contiene el nombre de su directorio personal. Comprúebelo y después empleela para cambiarse a su directorio. Después cambie esta variable y explique que ocurre con el comodín '~'.

echo $HOME; cd $HOME El comodin ~ es remplazado por el valor de la variable $HOME.

3. El programa man presenta páginas del manual, empleando el programa especificado en la variable de ambiente PAGER o en su defecto con el programa less (ver Lectura bash y el juego de herramientas). Modifique y exporte la variable PAGER para que man emplee el programa more para presentar información y pruebe el cambio.



export PAGER=more man man

4. ¿Qué hace el comando echo `ls` ? (note que se usan apóstrofes invertidos).

Ejecuta el comando ls y el resultado del mismo como cadena lo presenta con el comando echo

5. ¿Qué hace el comando N=6 echo "'1+$N' = $((1+$N))" ? Después de dar su respuesta, compruébela empleando un intérprete de comandos.

Presenta 1+$N = 7.

6. Haga un script que cada 90 minutos presente el mensaje "Hacer tareas". Ayuda: source.

El archivo puede ser recuerda.sh, su contenido:

#!/bin/bash sleep 90m echo "Hacer tareas" después ejecutarlo.

7. Cree un script que al ser ejecutado, cree un archivo script2. El archivo script2 creado debe poner la variable PATH en el valor que tenga cuando el primer script sea ejecutado, añadir a tal variable la ruta /opt/bin y debe crear un alías que cuando se ejecute muestre el contenido de la variable PATH (no olvide cambiar el modo del archivo script2 generado para que sea ejecutable).



#!/bin/bash echo 'PATH=$PATH:/opt/bin' > script2 echo 'alias sp="echo $PATH"' >> script2 chmod +x script2

8. Haga un script que después de ejecutarse pida al usuario 2 números y después presente la suma, la resta, el producto y la división.



#!/bin/bash read -p "Numeros: " A B echo $((A+B)) $((A-B)) $((A*B)) $((A/B))

Notas


|| [1] || En rigor lo interpreta con /bin/sh pero en Debian /bin/sh es un enlace a /bin/bash ||
|| [2] || En la expresión pueden emplearse los operadores - (unario y binario), + (unario y binario), para elevar a una potencia, * para multiplicar, / para divir, % para obtener residuo de una división. Hay operadores que operan a nivel de bits (representación binaria de los números que operan): ~ para negar bits, & para hacer "Y" entre bits de operandos y | para efectuar "O". También pueden emplearse valores booleanos
0 se interpreta como falso y 1 como verdadero
, pueden compararse números con los operadores >, <, <= (menor o igual), >= (mayor o igual),
(igualdad), != (diferentes) y pueden operarse booleanos con ! para negar, && como conjunción (Y) y || como disyunción. Los números pueden escribirse en decimal, o en otras bases empleando como prefijo del número la base seguida del caracter '#' (también puede escribirse números en octal iniciándolos con 0 o en hexadecimal iniciándolos con 0x). || || [3] || Otros atributos pueden ser "función" -f y arreglo -a ||
[editar]

14 opiniones

ESTA SUPER COMPLETO

HOLA:

BUENAS NOCHES SOY UNA ESTUDIANTE NUEVA EN ESTA CUESTION DE LINUX ME GUSTARIA APRENDER MAS DETALLES DE LINUX PERO NO CONFIO MUCHO EN LA INFORMACION QUE HAY EN LA RED ASI QUE AGRADECERIA SI PUDIERAN DAR DETALLITOS BASICOS DE LINUX.

ME REFIERO A QUE APLICACIONES TIENE EN SI PARA QUE ME SIRVE SI ES LO MISMO UNIX KE LINUX NO SE TODO EL MUNDO LINUX.

AGRADEZCO SU

ATENCION UNA ESTUDIANTE MAL INFORMADA
ayuda

me podrian decir que hago ya que el computador al encender sale un cuadro donde dice erroe en comunicacion con kernel se pega y esta lento
Excelente.

Que buen curso, excelente soporte a usuario. Si alguien sabe donde puedo encontrar uno asi en unix, le agradezco que me deje direccion de la pagina.
Saludos.

Estoy buscando unos protocolos de comunicacion de unos dispensarios marca tokheim, y gilbarco , para sistemas administrativo , (son bombas de gasolina )para gasolineras , si usted los tiene y puede vendermelos, contesteme a mi correo, gracias.
Lo mejor.

Es muy lleno de conocimiento pero me gustaria saber sobre la coeccion de la cpu.
1 2 3 | siguiente >

Cursos gratis relacionados con 'Manual Aprendiendo a aprender Linux'

Manual Compacto para nuevos usuarios.
Completo curso acerca de los virus informáticos, historia, clasificación, protección...

Autor y licencia de 'Manual Aprendiendo a aprender Linux'


Curso gratis de Vladimir Támara, Jaime Irving Dávila, Pablo Chamorro e Igor Támara. Extraido de: http://es.tldp.org/Manuales-LuCAS/AA_Linux_colegio-1.1/AA_Linux_colegio-1.1-html/ CopyLeft
Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.