09 abril 2014

Chuletas de Bash (II)

Esta es una serie que me sirve de guía para acrodarme de las cuatro cosas básicas de bash. Es caótico y desordenado, pero a mi me va bien. Lo publico por si a alguien le resulta de utilidad.

Si no sigues la serie del principio te recomiendo que lo hagas, es caótica, pero no tanto. A los que seais informáticos puristas tal vez os duela a la vista algo que haga o diga, pero lo que digo siempre, soy industrial... es lo que hay Dicho esto sólo advertir que en este segundo capitulo iré más al grano, si algo no se entiende, ponedlo en comentarios que para eso están y si eso ya hacemos cambios. Bueno al tema.

Vimos como crear variables y expandirlas. Ahora vamos a ver unos cuantos especiales.

$0 nos devuelve el path
$1 nos daria el primer argumento
$2 el segundo, $3 el tercero...
$# nos da el número de argumentos
$@ todos los argumentos


Vamos a hacer un sencillo script, al que llamaremos script02.sh:

#!/bin/bash
echo ""
echo "* Script full command: " $0
echo "* Script first argument: " $1
echo "* Script second argument: " $2
echo "* ..."
echo "* Script number of arguments: " $#
echo "* Script all arguments: " $@
echo ""


Cambiamos los permisos (ver entrada anterior). Y ejecutamos
~$ ./script02.sh escriboCualquierCosa 1237721

Obtenemos:
* Script full command:  ./script02.sh
* Script first argument:  escriboCualquierCosa
* Script second argument:  1237721
* ...
* Script number of arguments:  2
* Script all arguments:  escriboCualquierCosa 1237721


Y esto es todo por hoy.

03 abril 2014

Chuletas de Bash (I)

Si algo no se entiende ya me preguntáis en los comentarios.

Nota cuando escriba un comando en la terminal lo precederé del prompt siguiente ~$, en MSDOS era el famoso C:\> pero evidentemente el promt no forma parte de la orden, no hay que escribirlo.

Todos los scripts de bash empiezan por:
#!/bin/bash
Esto indica donde debe ir a buscar el script el interprete de comandos.

La primera comando que se debe aprender es echo. echo imprime lo que venga detras por la pantalla. es decir si escribimos en la terminal:
~$ echo "ei, ¿cómo va eso?"
Obtendré:
ei, ¿cómo va eso?

Los comentarios en los scripts se ponen con una almohadilla #. Por ejemplo:
# Esto es un comentario

Las variables son como unos contenedores que guardan "cosas". Para expandir la variable (acceder a su contenido) hay que poner el símbolo $ (que no tiene nada que ver con el prompt, casualidades de la vida). por ejemplo:
a=1 --> guarda el valor 1 en la variable a.
b=2 --> ídem con el valor 2 en la variable b.
echo "La variable a vale:" $a --> nos devuelve La variable a vale: 1
c=$a+$b --> No nos devuelve 3 nos devuelve 1+2. Luego veremos por qué.

Vamos a hacer el primer script. Lo vamos a llamar script01.sh:
#!/bin/bash
a=1
echo "a vale" $a

Guardamos. Si ahora ejecutamos el comando:
~$ ls -l 
veremos algo como:
-rw-r--r-- 1 user01 groupA 1 35 Apr 3 11:57 script01.sh
Vamos a fijarnos en la información por partes -rw-r--r-- ,son 10 caracteres, del primero nos vamos a olvidar de momento. los 3 (rw-)siguientes corresponden al usuario y significa que el usuario que ha creado el archivo (user01, en nuestro caso) tiene ciertos permisos el primero es la r de read (lectura), el segundo es w de write escritura, el tercero es un guión que significa que no tiene permiso para ejecutarlo. Los tres siguientes digitos corresponden al grupo que solo tiene permiso de lectura y los tres últimos son para todo el resto de usuarios.

Como nosotros queremos ejecutar el scrip debemos añadir el permiso de ejecución. Lo haremos mediante el comando chmod (que deberemos ejecutar con permisos de administrador, así que ira precedido por sudo), con el mode u+x esto quiere decir algo como "usuario añadimos ejecucion" :
~$ sudo chmod u+x script01.sh

Si ahora ejecutamos el comando:
~$ ls -l 
veremos algo como:
-rwxr--r-- 1 user01 groupA 1 35 Apr 3 11:57 script01.sh

Ahora ya podemos ejecutar el script:
~$ ./script.sh

Obtendremos:
a vale: 1

Vaya, me ha quedado una entrada algo más larga de lo que quería la próxima será mas condensada.  y presupondrá ciertos conocimientos, si alguien no sabe alguna cosa ya dejará algún comentario.


Chuletas de bash (Introducción)

Siguiendo el nuevo estilo algo caótico de este blog. Me propongo ir haciendo minientradas o no tan mini de apuntes rápidos de bash.

Para quien no lo sepa Bash es un interprete de comandos, http://es.wikipedia.org/wiki/Bash. Y si dicho así puede parecer poca cosa, sin embargo la cantidad de cosas que nos permite hacer (algunas con la ayuda de programas para la terminal), es increíble.

La idea de estas chuletas es para la programación de scripts en bash. Y antes de nada he de decir que no soy informático. Sólo ingeniero industrial, por lo tanto si digo algo que no sea exacto, puro o lo que sea y alguien siente que su calma interior se destruye, que respire profundamente y cambie de blog. Avisados quedáis.

Conectar un dominio a un hosting

Supongamos que tenemos un dominio que acabamos de comprar en GoDaddy www.godaddy.com (por ejem y queremos unirlo con nuestro hosting por ejemplo www.hostinger.es.
Para hacerlo:
  • debemos ir a hostinguer y decirle que queremos un nuevo hosting, pero que en vez de un subdominio suyo, tenemos el nuestro propio.




    • Después vamos a Godaddy a dominios, todos los dominios, elegimos el que toque. Y una vez dentro le damos a administrar en el apartado de Servidores de Nombres (DNS, por su nombre en ingles).


    • Cambiamos los DNS por los que nos proporcione el hosting. En el caso de hostinguer se encuentran en cuenta --> detalles, y son: ns1.hostinger.es y ns2.hostinguer.es.
    • En 24 horas máximo ya tendremos el cambio realizado. A mi me ha tardado menos de una hora, pero ya se sabe...

    01 abril 2014

    Copiar y pegar en nano (editor de textos para Linux)

    Una para newbies. Si usáis el editor de textos nano en linux, veréis que hacer copy-paste no es tan evidente como por ejemplo cortar y pegar. De todas formas vamos a repasar las tres.

    • Cortar se hace con Ctrl+K
    • Copiar Alt+6
    • Pegar Ctrl+U


    La ayuda es Ctrl+G, donde están todas las combinaciones de acceso rápido.