miércoles, 17 de abril de 2013

Shell


¿Qué son las Shells?
Podríamos decir que el Shell es un material que se halla entre el núcleo del sistema y el mundo exterior. A pesar que muchos usuarios piensan que un Shell es solo interprete de comandos interactivo. Un shell es realmente un lenguaje de programación en el cual cada sentencia corre un comando. Es un lenguaje fuera de lo común ya que debe satisfacer dos aspectos importantes:
1.      Interactividad.
2.      Programación de la ejecución de un programa.

Pequeña historia sobre las Shells
Actualmente existen varios tipos de Shell, sin embargo, la Bouner Shell fue la primera usada para propósitos generales.
Al principio, era muy limitada, así que solo se usaba como una herramienta para correr otras herramientas. Existían las variables, ciclos, y sentencias Unix y sus derivados, incluyen la Bouner Shell. Y la mayoría de las Shell actuales, son derivadas de esta.

Steve Bouner, creador de la Bouner Shell

Tipos de Shell
Al igual que las distribuciones de Linux, existen varios tipos de Shells, cada una orienta a satisfacer diferentes necesidades que los diferentes tipos de usuarios pudieran tener. Por mencionar algunas:
 1.      C Shell
 2.      Korn Shell
 3.      Bouner Again Shell

La Shell es
Un programa que actúa como interfaz entre el usuario y el sistema operativo.
Un software que atiende las ordenes tecleadas por el usuario y las traduce a instrucciones en la sintaxis interna del sistema.
Es afortunadamente algo más que un intérprete de comandos. Entre sus funciones destacan:
 1.      Interpretar, ejecutar órdenes y comandos.
 2.      Configurar el entorno.
 3.      Asignar valores a variables.
 4.      Sustituir variables por su valor.
 5.      Re direccionar entradas y salidas.
 6.      Generar nombres de archivos.
 7.      Encauzar listas de órdenes o tuberías.
 8.      Es un completo lenguaje intérprete de programación.

Operadores de comparación de cadenas
 S1 = s2
 s1 coincide con s2
 s1 != s2
 s1 no coincideco s2
 s1 < s2
 s1 es alfabéticamente anterior a s2, con el local actual
 s1 > s2 es alfabéticamente posterior a s2, co el local actual
 -n s1
 s1 no es nulo (contiene uno o mas caracteres)
 -z s1
 si es nulo

domingo, 14 de abril de 2013

Estaciones del año


Estación

#!/bin/bash
clear
# Indica la estación del año aproximada segun el mes
case $1 in
diciembre|enero|febrero) echo Verano;;
marzo|abril|mayo) echo Otoño;;
junio|julio|agosto) echo Invierno;;
septiembre|octubre|noviembre) echo Primavera;;
*) echo este mes no existe;;
esac

Horóscopo chino


Horóscopo

#!/bin/bash
clear
read -p "En que ano naciste (usa 4 cifras) : " ANO
let RESTO=ANO%12
case $RESTO in
0) AN="el MONO" ;;
1) AN="el GALLO" ;;
2) AN="el PERRO" ;;
3) AN="el CERDO" ;;
4) AN="la RATA" ;;
5) AN="el BUEY" ;;
6) AN="el TIGRE" ;;
7) AN="el CONEJO" ;;
8) AN="el DRAGON" ;;
9) AN="la SERPIENTE" ;;
10) AN="el CABALLO" ;;
11) AN="la CABRA" ;;
*) echo "Imposible, el resto de dividir entre 12 va de 0 a 11 siempre."
esac
echo "Si naciste en $ANO según el horóscopo chino te corresponde" $AN

miércoles, 10 de abril de 2013

Programa que suma los número pares y multiplica los impares


Este programa lee la cantidad de n número donde suma los números pares y multiplica los números impares

#!/bin/sh
clear
read -p "Ingrese un numero: " num
suma=0
multi=1
for i in $(seq 1 $num); do
echo "número:" $i
read nume
if [ $(($nume%2)) -eq 0 ]; then
suma=$(($nume+$suma))
else
multi=$(($nume*$multi))
fi
done
echo La suma de los números par es: $suma
echo La multiplicación de los número impar es: $multi

sábado, 6 de abril de 2013

Programando en Shell


Programa que imprime 5 números
#!/bin/sh
for i in $(seq 1 5); do
echo $i
done

Tabla de multiplicación
#!/bin/sh
echo Digite un numero
read num
for i in $(seq 1 12); do
echo $num x Si = $(($num*$i))
done

Dos formas diferentes de for
#!/bin/sh
echo Ingrese un nombre
read nom
for i in $(seq 1 8); do
echo $i=$nom
done

#!/bin/sh
for i in $(seq 1 10); do
echo Soy ingeniero
done

Hacer un programa con el while

#!/bin/sh a seq 1 5
i=1
while [ $i -lt 6 ]; do
echo $i
i=$(($i+1))
done

Programa que diga si un número es positivo o negativo
#!/bin/sh
echo Ingrese un numero
read i
if [ $i -gt -1 ]; then
echo $i es positivo
else
echo $i es negativo
fi

Programa que diga si un número es mayor de 100
#!/bin/sh
echo Ingrese un numero
read i
if [ $i -ge 100 ]; then
echo $i es mayor que 100
else
echo $i es menor que 100
fi

Programa que diga si un número es divisible entre 101
#!/bin/sh
echo Ingrese un numero
read i
if [ $(($i%101)) -eq 0 ]; then
echo $i es disible entre 101
else
echo $i es no disible entre 101
fi

Programa que diga si un número es par o impar
#!/bin/sh
echo Ingrese un numero
read i
if [ $(($i%2)) -eq 0 ]; then
echo $i es par
else
echo $i es impar
fi

Programa que la cantidad de n número y que diga cuales son pares e impares
#!/bin/sh
echo Ingrese un numero
read num
for i in $(seq 1 $num); do
echo número
read nume
if [ $(($nume%2)) -eq 0 ]; then
echo el número es par
else
echo el número es impar
fi
done



Programa que imprime una frase al revés
#!/bin/bash
echo “Introduce una frase”
read frase
esarf=””
for ((i=$((${#frase}-1));i>=0;i--)) {
esarf=${esarf}${frase:$i;1}
}
echo “’${frase}’ al revés es ‘${esarf}’”

Hacer un programa que lee 10 números donde sume los números pares y multiplique los impares

Hacer un programa que imprima uno de los días de las semanas

Comando de Linux en comparación del DOS

jueves, 4 de abril de 2013

Sentencia case

Se utiliza cuando para los distintos valores de una variable o expresión existen distintos conjuntos de sentencias a ejecutar, por eso recibe el nombre de Sentencia Alternativa Múltiple  La sentencia Case tiene el siguiente formato:

#!/bin/sh
clear
read -p "Invocar con numero del 0 al 6: " dia
case $dia in
0) di="Domingo" ;;
1) di="Lunes" ;;
2) di="Martes" ;;
3) di="Miércoles" ;;
4) di="Jueves" ;;
5) di="Viernes" ;;
6) di="Sabado" ;;
*) di="Un dia raro, pues no existe" ;;
esac
echo "El dia es" $di

martes, 2 de abril de 2013

Programa que imprime una frase al reves



#!/bin/sh
clear
read -p "Introduce una frase" frase
longitud=${#frase}
while [ $longitud -ge 0 ]; do
esarf=${esarf}${frase:$longitud:1}
longitud=$((longitud-1))
done
echo $frase "al revés es" $esarf

La salida que dará este programa será la siguiente:


Introduce una frase: Permisos de archivos
Permisos de archivos al reves es sovihcra ed sosimreP