Aunque sea duro volver al trabajo, siempre habrá un fin de semana. Aqui os dejo un par de temitas para hacerlo más llevadero. :)
"Si el problema tiene solución, preocuparse no vale de nada y si el problema no tiene solución no vale de nada preocuparse."
domingo, 21 de octubre de 2007
sábado, 20 de octubre de 2007
Abra la boca y diga : AAAAaaaa!!!

<< Subase la camisa
>> Doctor, Doctor
<< A ver hombre haga el favor
>> Solo me duele el pie Doctor
...
Primero los cd's luego los dvd's las memorias Disk on Flash... Esto eran los medios de almacenamiento que usaba hasta que me dí cuenta que con el tiempo se jodían. De hecho e de la colección de cd's me queda la mitad. Cuando había asumido esto me decante por usar solo el disco duro y si me quedo sin espacio me compro otro y fiesta. Mas que nada por la accesibilidad a los datos. No tener que andar buscando cd's y tal.
Pero por desgracia también se estropean. De hecho el año pasado perdí un disco duro.
Ha sido esta semana cuando me entere de la existencia de la tecnología S.M.A.R.T que no es nada nueva. Y que sirve para darnos un informe de los fallos que se producen en el disco duro. De esta manera podemos saber de antemano cuanta vida le queda a nuestro disco duro. Y salvar los datos en otro dispositivo antes de que sean inaccesibles para nosotros (por que se haya roto el disco).
S.M.A.R.T (Self Monitoring Analysis and Reporting Technology) nos da información de distintos parámetros del disco duro como : velocidad de los platos en el disco, sectores defectuosos, errores de calibración, temperatura del disco, tasa de errores de búsqueda Seek ,....
Para tener toda esta información disponible desde nuestro Ubuntu deberemos cumplir con los siguientes requisitos :
- Nuestra placa y BIOS soporte esta función de S.M.A.R.T
- Nuestro disco duro lo tenga también
- Tener instalado el paquete : smartmontools
Si todo ha salido como debiera , ahora dispondremos de dos programas más en nuestro ubuntu que nos aportaran info sobre el estado del disco : smartd y smartctl.
Más info en : WikiPedia , SigT
jueves, 18 de octubre de 2007
Veo Veo ...

> Que ves ?
< Una Cosita
> Y de que color es ?
....
Por fin y después de medio añito ya con Ubuntu por fin me entero por que le llaman servidor de X al sistema grafico de Linux.
Lo que voy a explicar en este post es como ejecutar en una maquina una aplicación y que el entorno gráfico (la ventana ) se muestre en otro equipo. Para ello habra que decirle al servidor de la X que envie la información a una IP. Y en el equipo que queremos visualizar la aplicación configurar el cliente para que procese la información enviada por el servidor y la muestre por pantalla.
Esta solución para ver las aplicaciones desde otro equipo consume mucho ancho de banda, asi que abstenerse de usar esto a traves de internet; a menos que tengais una señora conexión. Esto es práctico para entornos LAN.
En el equipo donde queremos que se visualice la aplicación tenemos que configurar el cliente en este caso usaremos gdm. Para que todo este bien verificar que en el fichero : /etc/gdm/gdm.conf tiene la propiedad disalowedTCP a false Una vez comprobado esto ejecutar :
$ xhost +En el equipo donde se ejecuta la aplicación os podeis meter en el por ssh y realizar la siguiente modificación :
// reiniciamos las X para que guarde los cambios
$ /etc/init.d/gdm restart
$ EXPORT DISPLAY= ip_cliente :0.0
$ ejecutar la aplicacion que querais que se vea en el otro equipo
Como veis es muy sencillo de realizar y nos da la posilibidad de tener el equipo donde corre la aplicación sin monitor.
domingo, 7 de octubre de 2007
Memoria de Pez

La solución Recoll un buscador al más puro estilo de Google. Además reconoce los siguientes tipos de ficheros para realizar su busqueda : msword, ogg, pdf, postscript, ms-excel, ms-powerpoint, calc, cal-template,.... Lo malo es que genera una base datos para indexar las búsquedas, no es muy rápido haciéndolo (pero así hace las búsquedas mu rapido), por culpa de esto hay que acordarse de regenerar este indice para que aparecezcan los nuevos ficheros generados. Pero esto tiene fácil solución con ayuda de nuestro queridisimo cron (leer post : El tiempo es oro). Para regenrar el indice basta con ejecutar el siguiente comando :
$ recollindexOs podéis bajar el paquete *.deb para ubuntu de esta dirección web. Su instalación es muy sencilla doble-click sobre el fichero descargado y fiesta. El aspecto del Recoll es el siguiente y si sois como yo que nunca sabe donde guarda la musica (lee los ide3 tags de los mp3) o un documento con info que quiero leer es una buena solución.

miércoles, 26 de septiembre de 2007
El tiempo es Oro

No se porque pero muy pocas veces consigo que el ordenador trabaje por mi, siempre acabo reinventando la rueda y al final trabajo para el ordenador.
Para no caer en este error. Voy a explicaros como programar tareas en ubuntu. Deciros donde se ubican los programas que trae ubuntu y podáis empezar a investigar que hacen esos programas y así os iréis enterando de que hay un montón de cosas que están hechas ya y no existe la necesidad de volverlas a programar.
El programa que vamos a usar para programar las tareas es el cron que viene de serie con ubuntu. Si queréis tener un interface gráfico para este programa os podeis bajar el gnome-sheulde e instalarlo. Tal que asi:
fichero de instalación : gnome-shedule_INSTALL.sh
Primero crear y editar el fichero de instalación: $gedit gnome-shedule_INSTALL.sh
#!/bin/bash
sudo apt-get install gnome-shedule
le dais permisos de ejecución : $chmod +x gnome-shedule_INSTALL.sh
y lo ejecutais : $./gnome-sheduler_INSTALL.sh
Si todo ha salido bien deberías tener un lanzador en : Aplicaciones/Herramientas del Sistema/Horario si hacéis click sobre él, os debería de aparecer el siguiente formulario :

Para programar una tarea basta con hacer click en el botón de nuevo. donde se nos preguntara si lo que queremos es que se repita la tarea con una frecuencia ó que solo se ejecute una vez. En función de nuestra selección se nos presentaran los siguientes formularios para terminar de completar la definición de la tarea y cuando ha de ejecutarse.
En la siguiente imagen podéis ver lo sencillo que es programar una tarea.
En la siguiente imagen podéis ver lo sencillo que es programar una tarea.

Para programar una tarea que no sea repetitiva lo único que cambia es que en vez de especificar un frecuencia de ejecución, se nos da la posibilidad de escoger fecha y hora.
Ahora bien para los amantes de la consola. O la gente que quiera saber por que en vista previa pone */2 * * * * ls vamos a explicar como configurar el cron desde la linea de comandos. El programa debería estar en /usr/bin/cron y para inicializarlo, pararlo o reiniciarlo, pues como todos los servicios. Nos vamos /etc/init.d/ y visualizamos el fichero /etc/init.d/cron que tiene este aspecto :
#!/bin/shComo podéis ver si os fijáis en este script de sh acepta los siguientes parametros : start , stop, restart, reload, force-reload esto es así para todos los servicios de ubuntu. Los scripts que se encuentran en este directorio se ejecutan cuando arranca el sistema, entonces si no queremos que se ejecute al servicio al inicio lo que debemos hacer es quitarle los permisos de ejecución al servicio en cuestión. Para ello basta con hacer lo siguiente :
# Start/stop the cron daemon.
#
### BEGIN INIT INFO
# Provides: cron
# Required-Start: $syslog $time
# Required-Stop: $syslog $time
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Regular background program processing daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO
test -f /usr/sbin/cron || exit 0
#LSBNAMES='-l' # Uncomment for LSB name support in /etc/cron.d/
. /lib/lsb/init-functions
case "$1" in
start) log_daemon_msg "Starting periodic command scheduler" "crond"
start-stop-daemon --start --quiet --pidfile /var/run/crond.pid --name cron --startas /usr/sbin/cron -- $LSBNAMES
log_end_msg $?
;;
stop) log_daemon_msg "Stopping periodic command scheduler" "crond"
start-stop-daemon --stop --quiet --pidfile /var/run/crond.pid --name cron
log_end_msg $?
;;
restart) log_daemon_msg "Restarting periodic command scheduler" "crond"
start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/crond.pid --name cron
start-stop-daemon --start --quiet --pidfile /var/run/crond.pid --name cron --startas /usr/sbin/cron -- $LSBNAMES
log_end_msg $?
;;
reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "crond"
# cron reloads automatically
log_end_msg 0
;;
*) log_action_msg "Usage: /etc/init.d/cron {start|stop|restart|reload|force-reload}"
exit 2
;;
esac
exit 0
$ cd /etc/init.dBueno ahora vamos a configurar el cron ya que sabemos como iniciarlo y pararlo. Como todos los programas su configuración esta en /etc si hacemos :
$ chmod -x nombre_servicio
$ ls /etc | grep cronComo veis hay 5 directorios y un fichero (crontab). Los directorios contienen scripts que se ejecutaran con una cierta frecuencia. Si visualizamos el fichero crontab entenderemos por que esto es así y la linea de vista previa comentada antes.
cron.d //Los scripts en este directorio se ejecutan al arranque del cron
cron.daily //Los scripts dentro de este directorio se ejecutan diariamente
cron.hourly //Aqui cada hora
cron.monthly // Cada mes
crontab // fichero de configuración
cron.weekly // Cada semana
# /etc/crontab: system-wide crontabLos campos y los valores permitidos son :
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
m --> minutos --> 0-59 y *
h --> horas --> 0-23 y *
dom --> dia del mes --> 1-31 y *
mon --> mes --> 1-12 y *
dow --> dia de la semana --> 0-7 y *
user --> usuario --> indica con que permisos de usuario del sistema se va a ejecutar el comando.
command --> comando a ejecutar --> comando que se encuentre en algún path de los indicados en PATH.
El valor * significa todos los valores. Quiero decir que si el campo minuto tiene el valor de * se ejecutara cada minuto. Si por ejemplo ponemos */10 se ejecutará cada diez minutos. Otra alternativa seria poner 0,10,20,30,40,50. Si queremos otra interface para configurar el cron, podemos usar el comando :
$ crontab -e
Se nos abre un fichero con la misma sintaxis, pero con la peculiaridad de que estas tareas se ejecutaran para el usuario que ha ejecutado el comando.
Y que pasa si queremos que las tareas no se ejecuten a una hora determinada o con una frecuencia determinada, sino lo que queremos es que se ejecute una tarea cuando suceda algo en el sistema. Vamos que podamos programar tareas en función de algún evento que suceda. Pues la solución para esto es el icron . Este servicio no viene de serie en Ubuntu. En esta dirección tenéis la info necesaria para instalarlo.
icrontab -e : abre la tabla para la edición
icrontab -l : lista el contenido de la tabla
icrontab -r : borra el contenido de la tabla
La tabla tiene el siguiente formato
ruta evento comando
Eventos disponibles
IN_ACCESS Acceso de lecturaParametros para los comandos :
IN_MODIFY Acceso de escritura
IN_ATTRIB Metadatos Modificados (inodo o atributo)
IN_CLOSE_WRITE Fichero abierto para escritura y luego cerrado
IN_CLOSE_NOWRITE Fichero abierto sin escritura y luego cerrado
IN_CLOSE Fichero cerrado
IN_OPEN Fichero abierto
IN_MOVED_FROM Fichero movido a otro directorio
IN_MOVED_TO Fichero movido a este directorio
IN_MOVED Fichero movido
IN_DELETE Fichero borrado
IN_DELETE_SELF El directorio supervisado ha sido borrado
IN_ALL_EVENTS Que ocurra algun evento de los mencionados
$@ Proporciona la rutaAlá pos ahora ya sabemos como hacer para que nuestro sistema haga cosas de forma repetitiva, en un momento determinado o cuando suceda algo. Es decir ya tenemos la capacidad para programar algo. Ahora solo nos hace falta los programas que lanzar. Para ello investigar en /usr/bin y en /usr/sbin
$# Nombre del fichero que ha disparado el evento
$% Muestra el evento disparado
$$ El propio signo dolar
martes, 18 de septiembre de 2007
Internet : La red de Redes

Si le llaman la red de redes es por algo y estoy convencido que la mayoría de la gente lo asocia con el internet explorer. Y que en internet lo único que hay son paginas web. Y se olvidan que internet son un montón de ordenadores conectados entre si con un protocolo en común "internet protcol" IP. Que nos aporta esto??? el poder identificar los ordenadores en la red y poder acceder a ellos. Y esto para que sirve ?? pues para permitir a los programas que tenemos en nuestro ordenador hablar con otros programas de otros ordenadores, con esto quiero decir que puedan localizar al programa con el que se quiere hablar.
Dado que lo que se hace es dar la posibilidad de localizar un ordenador en la red para que hablen dos programas entre si, aquí es donde aparecen los conceptos de cliente y servidor. Donde el servidor es un programa que espera a que le hablen, le pregunten,.... y el cliente es el programa que hace las preguntas,... Un servidor web es un programa que espera que le pidan paginas web y el "internet explorer" , "firefox",... son clientes que le piden al servidor una pagina especifica. En este post no voy a explicar como montar un servidor web ni configurarlo (todo se andará), pero aprovechando el ejemplo del post : Trankilo pero Expectante, donde se explicaba como obtener la ip publica con la que se conectaba el router de una tipica red LAN casera. Voy a explicar como tener a nuestro ordenador localizado en la red y poder acceder a él desde cualquier ordenador que tenga internet. Seguidamente daré las pautas mínimas para montar un servidor de ftp y scp en nuestra maquina con Ubuntu y de esta manera tendremos acceso a los archivos de nuestra maquina desde cualquier sitio con internet. También servirá para poder enviarlos ficheros a nuestro ordenador.
Nota : RECORDAR que esto es para un router especifico, "Xavi 7868r". En este script se ha modificado un poco para que pueda aceptar parámetros. Si combinamos este script en expect con este otro en bash. conseguimos que se nos mande a una dirección de correo electrónico nuestra IP pública.
#!/usr/bin/expect
set ipaddr [lindex ${argv} 0]
set usr [lindex ${argv} 1]
set pwd [lindex ${argv} 2]
spawn telnet ${ipaddr}
set timeout 600
expect -nocase "Login: " {
sleep 1
send "${usr}\r"
sleep 1
} timeout {
send_user "ERROR: Timeout intentando copia SCP"
exit 1
}
set timeout 600
expect -nocase "Password: " {
sleep 1
send "${pwd}\r"
sleep 1
} timeout {
send_user "ERROR: Timeout intentando copia SCP"
exit 1
}
send -- "ip list interfaces\r"
sleep 3
send -- "user logout\r"
interact
#/bin/bashEste script lo que hace es ejecutar el script de expect y guardar en el fichero "ip.publica" la ip publica de nuestro router y con el programa mail enviarlo a una dir de correo electrónico. Ahora ya tenemos 2 scripts que nos permiten enviar nuestra Ip a dirección de correo electrónico. Ahora lo que nos falta para que este todo perfecto es que esta tarea se repita o que se realice cuando nos cambie la ip del router. Lo de enviar la ip cuando cambie os lo dejo para vosotros (el comando diff de bash compara ficheros). Ahora lo que queda es configurar el cron o el icron para que realice la tarea de consulta de ip pública y el envío de mail a dir de correo si miráis el post : El tiempo es Oro viene explicado como configurar el cron y el icron para que realicen estas tareas.
expect -f Obtener.Ip.Publica 192.168.1.1 1234 1234 | grep "ppp-0" > ip.publica
mail -s "jeje" direccion@gmail.com < ip.publica
192.168.1.1 ip del router
1234 usuario del router
1234 password del router
"jeje" asunto del mail que se envia
Con esto siempre que estemos en un equipo con internet, podremos consultar nuestra cuenta de correo y ver cual es la ip de nuestro equipo. La finalidad de todo esto es poder cojer o enviar ficheros para nuestro equipo. Para ello habrá que instalar con un servidor que nos permita envío y la recepción de ficheros. La opción mas fácil es usar SCP pero windows no da soporte por defecto para este protocolo. Ubuntu lo trae por defecto. Hay que activar el servicio del ssh y configurar el fichero /etc/shh. Para los casos que no tengamos la disponibilidad de usar scp podemos montar un servidor de ftp. Ya que windows y el internet explorer trae un cliente de ftp por defecto. Para instalar un servidor de ftp basta ejecutar la siguiente linea de comandos.
$ sudo apt-get install vsftpdPara configurar este servidor de ftp hay que editar este fichero de configuración : /etc/vsftpd.conf las opciones que nos permite son las siguientes :
anonymous_enable Si el valor de esta directiva es YES cualquier usuario se puede conectar al servidor dando el nombre de usuario anonymous o ftp. Por razones de seguridad se debe poner NO (anonymous_enable=NO)Para iniciar parar o reiniciar el servidor de ftp usar :
local_enable Esta línea indica que si se permite o no el acceso de usuarios locales a sus respectivas carpetas privadas. Si se permite el acceso habría que poner local_enable=YES (local_enable=NO en caso contrario).
chroot_local_user Permite enjaular a los usuarios dentro de su propio directorio personal. Si en el fichero de configuración aparece chroot_local_user=NO, entonces el usuario tiene acceso a todo el sistema de archivos, en función de los permisos asignados. Cuando un usuario local se conecta y en el fichero de configuración aparece chroot_local_user=YES, entonces enjaulamos a los usuarios dentro de su propio directorio personal, sin posibilidad de acceder a todo el sistema de ficheros. Se mejora por tanto la seguridad.
write_enable Con esta directiva se puede permitir o denegar la subida de ficheros al servidor FTP. Si se permite que los usuarios suban archivos al servidor FTP habría que poner write_enable=YES.
local_umask Se pueden establecer los permisos con los que quedará el archivo al subirlo al servidor FTP. local_umask=022 indicará que los permisos de los archivos serán 644, es decir, lectura y escritura para el propietario del fichero, y sólo lectura para el grupo y los demás.
anon_upload_enable Esta directiva indica si los usuarios anónimos pueden cargar archivos en el servidor. anon_upload_enable=YES permite que los usuarios anónimos puedan subir ficheros.
anon_mkdir_write_enable Si esta directiva tiene el valor YES se permitirá la creación de directorios en el servidor.
ftpd_banner Con esta directiva se puede mostrar un mensaje de bienvenida cuando un usuario se conecte al servidor FTP. ftpd_banner=?Bienvenido a mi servidor FTP?. anon_max_rate Se utiliza para limitar la tasa de transferencia a usuarios anónimos. En el siguiente ejemplo se limita la tasa de transferencia a los usuarios anónimos a 10Kb/s: anon_max_rate=1024
local_max_rate Se utiliza para limitar la tasa de transferencia en bytes por segundo a los usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 10Kb/s: local_max_rate=1024
max_clients Indica el número máximo de cliente que podrán conectarse simultáneamente al servidor. En el siguiente ejemplo son 5: max_clients=5
# sudo /etc/init.d/vsftpd {start|restart|stop}Ahora si lo que queremos es usar el scp o el ssh, necesitaremos instalarnos un servidor de ssh. Para ello más de lo mismo :
# sudo apt-get install openssh-serverAsí instalamos el servidor y para configurarlo en /etc/ igualito que el servidor de ftp distintas opciones pero más de mismo. Si la maquina que estamos usando tiene linux (la que no es la nuestra) y queremos acceder a nuestro equipo de casa. Lo tenemos ya todo de serie. Con estos comandos ya podemos subir / bajar / controlar nuestro equipo remotamente. Para ello :
# ssh ip // abrimos una sesion en nuestro equipoDonde la ip es la que leemos de nuestra cuenta de correo. Advertencia si estamos detrás de un router abra que direccionar los puertos a nuestra maquina. Para ello hay que modificar los parámetros de NAT del router. Donde hay que especificar los puertos del router externos los direccione a nuestra IP local de la maquina a tal puerto. Por defecto el ftp usa el puerto 21 y el ssh el 22. Esto se puede configurar a gusto de cada uno. En los ficheros de configuración de los servidores.
# ftp ip // abrimos una sesión de ftp para subir o bajar ficheros
# scp ip // abrimos una sesión de scp para subir o bajar ficheros
Si por el contrario estamos trabajando con Windows necesitaremos de unos programas para poder abrir estas sesiones contra nuestra maquina para ello descargarse estos programas que son libres y gratuitos :
ssh : usar el puttyAlá pos ya tenemos acceso a nuestro equipo de casa y tenemos la posibilidad de lanzar comandos desde la consola en nuestra maquina de casa(ssh) y de subir y bajar ficheros a nuestro equipo de casa gracias al servidor de (ftp y scp). Ya no tenemos que cargar con nuestra pinza de usb, cd, dvds u medios de almacenamiento para transportar nuestros datos. Lo único que necesitamos es una conexión a internet.
scp : usar el winSCP
ftp : usar Filezilla
Para los que no quieran tener el equipo de casa siempre encendido. Existe una forma de encenderlo remotamente. Para ello la tarjeta de red que usemos y nuestra placa base ha de tener la característica de WOL (wake on lan). También es necesario un programa externo que nos permita enviar a nuestra maquina un Magic Packet, para que encienda el equipo. Pero esto os lo dejo a vosotros para que investigues algo.
Etiquetas:
aplicaciones linux,
clientes,
scripts,
servidores,
ubuntu
domingo, 2 de septiembre de 2007
Scripts en Bash

Esta es la versión que me vino a mi instalada con la versión 7.04 de Ubuntu. Por que usar scripts en bash u otro interprete de comandos. En linux casi todo es un fichero, y los comandos de bash nos permiten manipular ficheros, los programas equivalen a comandos. A parte de esto bash permite el uso de variables , operaciones matemáticas, trabaja con expresiones regulares, permite capturar las señales del sistema,...
$ echo $shell
/bin/bash
$ echo $BASH_VERSION
3.2.13(1)-release
Para escribir un scirpt es bash es muy sencillo solo hay que editar un fichero y darle permisos de ejecución. El fichero es de texto plano. Otra característica de los interpretes de comandos es que son lenguajes interpretados no compilados. Vamos con el primer ejemplo un "Hola Mundo" que clásico.
Vamos a usar los siguientes comandos : echo, touch, chmod y cat. "echo" lo que hace es sacar por la salida standard (la pantalla) lo que se le pasa por parámetro, puede ser texto o una variable que es lo que vimos en el ejemplo de antes. "touch" lo usaremos para crear un fichero vacio y "chmod" para cambiarle los permisos al fichero y hacerlo de esta manera ejecutable. "cat" muestra el contenido de un fichero.
Que vamos a hacer en nuestro primer script. Crearemos un fichero vacio con touch, con echo iremos direccionando la salida standard al fichero que hemos creado para ir escribiendo en el. Después le daremos permisos de ejecución al usuario. Una vez hecho esto ejecutaremos el script para ver el resultado y visualizaremos el contenido de nuestro script.
¿? Como es el formato de un fichero para que sea interpretado como un script. Pues el formato es muy sencillo. La primera linea ha de especificar la ubicación del interprete que se va a usar. El resto de lineas equivalen a los comandos. Para escribir los comentarios se usa el caracter de escape #.
Vamos allá para crear nuestro primer script abrir una terminal ( Aplicaciones/Accesiorios/Terminal) hacer click e introducir lo siguiente :
#!/bin/bash
#
# Esto es un comentario
#
comando
comando
comando
.....
$ touch Hola_Mundo.sh
$ echo '#!/bin/bash' > Hola_Mundo.sh
$ echo '#' >> Hola_Mundo.sh
$ echo '# 1º script : Hola Mundo' >> Hola_Mundo.sh
$ echo '#' >> Hola_Mundo.sh
$ echo 'echo "Hola Mundo"' >> Hola_Mundo.sh
$ chmod +x Hola_Mundo.sh
$ ./Hola_Mundo.sh
Hola Mundo
$ cat Hola_Mundo.sh
#!/bin/bash
#
# 1º script : Hola Mundo
#
echo "Hola Mundo"
En los scripts venideros abstenerse de crealos así. Quiero decir las próximas veces que vayáis a hacer un script usar un editor de textos ("gedit" Aplicaciones/Accesorios/Editor de Textos) o si os gusta más la consola podéis usar el vi o el Emacs. En este ejemplo lo hemos hecho así para que aprendieses más de un comando y no solo el echo. Para introduciros en el mundo de las tuberías. A ver si os ibais a pensar que la imagen que esta en el post no tenia nada que ver con su contenido. Por cierto si hacéis click sobre la imagen podéis echaros una partidilla , es un juego :).
Las tuberías lo que vienen a hacer en linux es controlar los flujos de datos generados por los programas, pudiendo coger la salida de un programa y pasársela a otro como parámetro. En este ejemplo que acabamos de hacer no hay ninguna tubería pero si direccionamientos. El carácter que se usa para los direccionamiento es el ">" ó "<". Con este carácter podemos coger la salida de un programa y enviársela a otro programa o a un fichero como en este caso. También se puede hacer al revés coger el contenido de un fichero y pasárselo a un programa. En el ejemplo usamos el > para pasar la salida del echo a un fichero. Luego de este usamos ">>" para que escriba a modo "append" en el fichero, quiero decir añadiendo lineas y no sobreescribiendo la primera.
En este ejemplo también se muestra la forma de ejecutar un script, se puede hacer de 2 maneras :
$ ./ [script]
ó
$ source [script]
Bueno si el tema os ha parecido interesante podéis esperar a que escriba el siguiente post sobre el tema o ir leyéndoos este manual sobre bash que ta bastante bien para gente que se inicia en el mundillo. Si con ese no os llega seguir con este bash avanzado.
Suscribirse a:
Entradas (Atom)