Autor Tema: Cruso de Bash Parte 1  (Leído 1127 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mick7seven
  • Ex Rango
  • *
  • Mensajes: 21
    Ingreso: Octubre de 2014
  • Sexo: Masculino
  • ve
  • Solo el conocimiento te hará libre
    • Ver Perfil
Cruso de Bash Parte 1
« on: 20 Octubre de 2014, 03:18 pm »
Saludos a todos he tomado la iniciativa de iniciar un pequeño curso de bash, ya que lo considero muy importante  dentro del mundo de GNU/Linux asi que empezare por dar una definicion, para luego empezar a conocerlo un poco y terminar haciendo unos cuantos codigos que de seguro es lo q la mayoria aquiere cuando entra a todo post de programacion xD

Definicion

BASH: (Bourne again shell) es un shell de unix es decir un interprete de ordenes o comandos unix, Bash es la shell por defecto de la mayoria de los sistemas GNU/Linux, pero no se limita a esto lo he visto corre en Mac OS X, y en windows.

La sintaxis de Bash se puede decir que es un conjunto de las sintanxis de Shell, si estamos un poco perdidos veamos a Bash como el lenguaje que se ejecuta en sa ventanita negra llamada Terminal, no hondare mucho en el tema de la sintaxis por los momentos porque es algo que iremos viendo poco a poco.

Hola Mundo

Como siempre en programacion no hay nada mejor que hacer nuestro primer programa "Hola Mundo", asi que aqui les dejo como se haria el hola mundo en Bash.


Código: [Seleccionar]
#!/bin/bash
# Mi Primer Programa en Bash
echo "Hola Mundo"

Esto nos mostrara como salida la cadena Hola Mundo, la primera linea lo que hace es un llamado a nuesta shell BASH, que por defecto biene ubicada en /bin/bash con esto no quiero decir que esta no puede ubicarse en otro directorio del sistema, el simbolo "#" se usa para comentar una linea, como podemos ver en la 2da linea de nuestro programa.

En nuestra tercera linea tenemos el comando echo, al igual que en Batch o PHP nos sirve para imprimir el texto en la pantalla.

como podemos ver Bash funciona como nuestra terminal, por que usa esa sintaxis que es muy simple, por lo que ya se deben ir imaginando que esto nos sirve para automatizar procesos.

Variables

Bueno ya sabemos como es nuestra estructura basica, asi que podemos entrar en el tema de las Variables, en bash como en cualquier otro lenguaje existen variables que nos seran utiles cuando una situacion las amerite.

Las variables son un espacio de memoria donde almacenamos datos y que puede ser usado en cualquier momento, podemos ver las variables como una caja en donde se guarda una informacion para que no se pierda por que luego puede ser usada.

en Bash la asignacion de variables es de una forma muy sencilla solo hay que colocar el nombre de la variable e igualarla al valor que va a guardar.

Código: [Seleccionar]
#!/bin/bash
# Trabajando con Variables
texto="Hola Mundo"
Numero=7

Como podemos ver la asignacion de un valor a una variable es muy sencilla, solo debemos tener algo en cuenta y es que las variables en Bash son sensibles a las mayusculas y las minusculas es decir que texto, Texto y texTo son 3 variables diferentes.

Una de las cosas que hace tambien a Bash simple en el uso de variables es que no hay que asignarle el tipo de variable que se va a usar como en otros lenguajes donde tienes que estrictamente decir de que tipo es tal o cual variable.

ya que sabemos como asignar un valor a una variable nos hace falta saber como extraer de las variables los datos que en ellas hemos asignado, ya que sin saber llamarlas no nos serviran de nada.

De nuevo nos arropa la simplicidad de bash ya que para poder extraer el valor de una variable solo debemos anteponer el simbolo de dolar $ al nombre de la varible.


Código: [Seleccionar]
#!/bin/bash
#Asignando un valor a una variable
texto="Hola Mundo"
#Mostrando el contenido de la variable $texto por pantalla
echo $texto

Como en cualquier lenguajes la variable es reemplazada por su valor al ser invocada, por eso son tan utiles para almacenar datos, bien sea texto, numeros, entre otros.

Comandos básicos en BASH


Comando [Opciones]Descripción del comandoEjemplo de uso
cat fich1 [...fichN]Concatena y muestra un archivoscat /etc/passwd
cd [dir]Cambia de directoriocd /tmp
chmod permisos fichCambia los permisos de un archivochmod +x miscript
chown usuario:grupo fichCambia el dueño un archivochown nobody miscript
cp fich1...fichN dirCopia archivoscp foo foo.backup
diff [-e]arch1 arch2Encuentra diferencia entre archivosdiff foo.c newfoo.c
du [-sabr] fichReporta el tamaño del directoriodu -s /home/
file archMuestra el tipo de un archivofile arc_desconocido
find dir test acciónEncuentra archivos.find . -name ``.bak -print
grep [-cilnv] expr archivosBusca patrones en archivosgrep mike /etc/passwd
head -count fichMuestra el inicio de un archivohead prog1.c
mkdir dirCrea un directorio.mkdir temp
mv fich1 ...fichN dirMueve un archivo(s) a un directoriomv a.out prog1
mv fich1 fich2Renombra un archivo.mv .c prog_dir
less / more fich(s)Visualiza página a página un archivo. less acepta comandos vi.less muy_largo.c
ln [-s] fich accesoCrea un acceso directo a un archivoln -s /users/mike/.profile .
lsLista el contenido del directoriols -l /usr/bin
pwdMuestra la ruta del directorio actualpwd
rm fichBorra un fichero.rm foo.c
rm -r dirBorra todo un directoriorm -rf prog_dir
rmdir dirBorra un directorio vacíormdir prog_dir
tail -count fichMuestra el final de un archivotail prog1.c
at [-lr] hora [fecha]Ejecuta un comando mas tardeat 6pm Friday miscript
cal [[mes] año]Muestra un calendario del mes/añocal 1 2025
date [mmddhhmm] [+form]Muestra la hora y la fechadate
echo stringEscribe mensaje en la salida estándarecho ``Hola mundo
finger usuarioMuestra información general sobre un usuario en la redfinger nn @maquina.aca.com.co
idNúmero id de un usuarioid usuario
kill [-señal] PIDMatar un procesokill 1234
man comandoAyuda del comando especificadoman gcc, man -k printer
passwdCambia la contraseña.passwd
ps [axiu]Muestra información sobre los procesos que se están ejecutando en el sistemaps -ux , ps -ef
who / rwhoMuestra información de los usuarios conectados al sistema.who


Bueno con esto finalizo la primera entrega del curso de bash, espero animarlos al mundo del scripting, la proxima entrega Hablare sobre las estructuras de control (Condicionales y Ciclos).
« Última Modificación: 20 Octubre de 2014, 03:25 pm por mick7seven »