Noticias interesantes sobre Linux, sistema operativo que cada vez está ganando más adeptos.
miércoles 31 de marzo de 2010
Como Migrar a PostgeSQL en el Menor Tiempo Posible
http://www.howtoforge.com/how-to-easily-migrate-a-postgresql-server-with-minimal-downtime
| Reacciones: |
lunes 29 de marzo de 2010
10 Ejemplos Utiles del Comando netstat
En este articulo se revisara 10 ejemplos practicos sobre el uso del comando netstat.
1) Listar todos los puertos (Abiertos y No abiertos)
Listar todos los puertos usando netstat -a
# netstat -a | more
Listar todos los puertos TCP usando netstat -at
# netstat -at
Listar todos los puertos UDP usando netstat -au
# netstat -au
2) Listar todos los sockets que esten estado Listening
Listar solo los puertos en Listening usando netstat -l
# netstat -l
Listar solo los puertos TCP que esten en Listening usando netstat -lt
# netstat -lt
Listar solo los puertos UDP que esten en Listening usando netstat -lu
# netstat -lu
Listar solo los puertos UNIX que esten en Listening usando netstat -lx
# netstat -lx
3) Mostrar las estadisticas de cada protocolo
Mostrar las estadísticas de cada puerto usando netstat -s
# netstat -s
Mostrar estadísticas para puertos TCP o UP usando netstat -st o netstat -su
# netstat -st
# netstat -su
4) Mostrar PID y nombre de programa en la salida de netstat usando netstat -p
La opción netstat -p puede ser combinada con cualquier otra opción. Esto agregara el "PID/Nombre Programa" a la salida del netstat. Esto es muy útil cuando se esta depurando para identificar que programa esta ejecutándose en un puerto en particular.
# netstat -pt
5) No mostar el host, puerto y nombre del usuario en la salida del netstat
Cuando no quieres que se muestre el nombre del host, puerto y el usuario usa la opción netstat -n. Esto mostrara en números , en vez de el nombre del host, puerto y el usuario.
Esto también aumenta la velocidad de la salida ya que netstat no realiza ningún look-up
# netstat -an
Si no deseas que se muestren solo alguno de estos tres (puerto, host o usuario) usa lo siguiente:
# netsat -a --numeric-ports
# netsat -a --numeric-hosts
# netsat -a --numeric-users
6) Imprimir la información de netstat continuamente
netstat imprimirá la información continuamente cada ciertos segundos
# netstat -c
7) Encontrar las familias de direcciones no soportadas en tu sistema
netstat --verbose
8) Mostrar información de ruteo de kernel usando netstat -r
# netstat -r
Nota: Usa netstat -rn para mostrar en formato numerico sin resolver el nombre del host.
9) Buscar en que puerto se esta ejecutando un programa
# netstat -ap | grep nombre del programa
10) Mostrar la lista de las interfaces de red
# netstat -i
Mostrar mas detalles sobre la informacion de las interfaces de red (similar a ifconfig)
# netstat -ie
| Reacciones: |
viernes 26 de marzo de 2010
Estado de Salida de un Comando Bash
Algunos de los comandos Unix que ejecutas en la linea de comandos son comandos shell. Por ejemplo ls, lpr y grep.
$ ls -alF
$ lpr archivo
$ grep "cadena" archivo
Comando Shell Exit
El valor de retorno de un comando es el estado exit o 128 + N si el comando es terminado por la señal N. El estado exit es usado para revisar el resultado (OK/falla) de la ejecución del comando. Si el estado de salida es 0 entonces el comando se ejecuto con exito. Si el comando falla el estado de salida no sera 0.
| Valor Exit | Estado Salida |
|---|---|
| 0 (Cero) | Exito |
| No 0 | Fallo |
| 2 | Uso incorrecto |
| 127 | Comando No encontrado |
| 126 | No es un ejecutable |
La variable Shell $?
La variable shell llamada $? es una variable interna especial la cual contiene el estado de salida del ultimo comando ejecutado.
- Después de la ejecución de la función shell, $? retorna el estado de salida del ultimo comando ejecutado en una función.
- Después de la ejecución de un código shell, $? retorna el estado de salida del ultimo comando ejecutado en el código.
Ejemplo de Código Shell que Explica el Estado de Salida
El siguiente es un código shell que muestra ejemplos de varios estados de salida de comandos:
$ cat exitstatus.sh
#! /bin/bash
echo -e "Ejecutado con Exito"
echo -e "====================="
echo "hola mundo"
# El estado de salida devuelve 0, porque el comando se ejecuto con exito
echo "Estado de Salida" $?
echo -e "Uso Incorrecto"
echo -e "====================="
ls --option
# Uso Incorrecto, por eso el estado de salida sera 2
echo "Estado de Salida" $?
echo -e "Comando no encontrado"
echo -e "====================="
bashscript
# El estado de salida devuelve 127, por que el codigo bash no encontro el comando.
echo "Estado de Salida" $?
echo -e "Comando no es un ejecutable"
echo -e "============================="
ls -l execution.sh
./execution.sh
# El estado de salida devuelve 126, por que no es un ejecutable
echo "Estado de Salida" $?
Ahora ejecuta el script exitstatus.sh para ver los resultados.
| Reacciones: |
Ejecutar Sentecias PostgreSQL desde Código Shell
Sintaxis
psql BASEDEDATOS USUARIO << EOF
declaracion 1;
declaracion 2;
.
.
declaracion n;
EOF
PostgreSQL: Ejecutando SQL desde código Shell
Provee todos los comandos postgreSQL entre el bloque EOF
#!/bin/sh
bd="test"
usuario="test"
psql $db $usuario << EOF
SELECT * FROM test;
EOF
PostgreSQL: Usando Variables en SQL en un código Shell
Puedes usar variables shell dentro del bloque EOF
#!/bin/sh
db="test"
usuario="test"
cond="tgs"
psql $db $usuario << EOF
SELECT * FROM test WHERE col_name = '$cond';
EOF
| Reacciones: |
ownCloud, Alternativa a Ubuntu One de Gnome y KDE
Aunque muchos han calificado el proyecto ownCloud como una alternativa a Dropbox más bien creo que es ownCloud la alternativa de Gnome y KDE a Ubuntu One. Aunque parezca mentira, dos competidores en el escritorio parece que se han aliado para colaborar y desarrollar un entorno de trabajo en la nube a la manera de los mencionados discos duros virtuales.
Parece que KDE se encargaría de desarrollar el backend, la trastienda de la aplicación y Gnome la parte del frontend, o dicho de otra manera, el interfaz que ve y utiliza el usuario. Se trataría de desarrollar una alternativa libre a Dropbox, dejando patente de esta manera que Ubuntu One utiliza una parte para su almacenamiento que no es totalmente libre. Y es que estos chicos son tan puntillosos con la pureza del open source, una pequeña mácula mancilla toda la honra del proyecto.
Leer más.
| Reacciones: |
jueves 25 de marzo de 2010
Uso Simplificado de SSH
Por ejemplo, supón que tienes 2 servidores a los cuales te conectas regularmente, el que esta en tu casa esta detras de un firewall. Ademas, supón tambien que usas dydns para acceder a tu direccion IP y tienes al shh escuchando en el puerto 12022 en vez del puerto por defecto que es el 22 (y tu firewall reenvia ese puerto a tu servidor). Entonces para conectarte necesitas ejecutar lo siguiente:
$ ssh -p 12022 ejemplo.dyndns.org
El segundo sistema es local y te conectas así:
$ ssh 192.168.1.15
El segundo no estan difícil de recordar, pero con un nombre seria más fácil. Puedes poner un nombre en el archivo /etc/hosts o puedes configurar un servidor DNS local, pero tambien puedes resolver el problema usando el archivo de configuracion de ssh.
Para crear un archivo de configuración ssh ejecuta el siguiente comando:
$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config
Ahora usa tu editor de texto favorito para editar el archivo e ingresa lo siguiente:
Host server1
HostName ejemplo.dyndns.org
Port 12022
Host server2
HostName 192.168.1.15
La opción "Host" inicia una nueva sesion, todas las opciones que siguen aplican a ese nuevo host hasta que una nuevo "Host" aparezca. La opción "Hostname" especifica el nombre real del host que ssh intentara conectarse. La opción "Port" obviamente indica el puerto al que va a conectarse.
Ahora te puedes conectar de una forma mas simple:
$ ssh server1
$ ssh server2
Estas son algunas de las opciones que puedes configurar en el archivo de configuración de ssh. Por ejemplo tambien puedes especificar si se habilita el acceso a X11. Puedes configurar un puerto de reenvio local y remoto. Echa una mirada a la pagina man (man ssh_config) para mas información sobre las opciones disponibles.
| Reacciones: |
miércoles 24 de marzo de 2010
Ubuntu para Usuarios Avanzados de Windows
Ubuntu es considerado la distribución mas amigable para usuarios nuevos que puede ser instalada en tu disco duro en simplemente 7 pasos.
Pero es también un hecho que mas del 90% de las computadoras viene con Windows pre-cargado lo cual hace que las personas no estén muy seguras de quitar Windows e instalar Linux en sus maquinas.
Tomas Hardware ha escrito un articulo el cual esta dirigido a mitigar el dolor de cambiar Windows a Linux a los usuarios avanzados de Windows. Esta escrito por un usuario que por mucho tiempo ha usado Windows como usuario, desarrollador, jugador, maniaco del performance. El articulo te lleva a través del proceso de instalación y buscar ayuda en linea.
| Reacciones: |
martes 23 de marzo de 2010
Instalar PowerDNS con MySQL en CentOS
| Reacciones: |
viernes 19 de marzo de 2010
Crear, Compilar y Ejecutar un Programa en Haskell
1) Escribir el programa "Hola Mundo" en Haskell
Crea el programa holamundo usando el editor Vim o cualquier otro de tu preferencia, como se muestra abajo:
$ vim holamundo.hs
-- Ejemplo Hola Mundo
main = putStrLn "Hola Mundo!"
Nota: los comentarios en Haskell empiezan con --
2) Asegúrate de tener instalado el compilador haskell
Te puedes asegurar si tienes instalado Haskell, ejecutando lo siguiente:
$ whereis ghc
ghc: /usr/bin/ghc /usr/share/man/man1/ghc.1.gz
Instalar Haskell
En caso no tener Haskell instalado, ejecuta lo siguiente:
$ sudo apt-get install ghc6
3) Compilar el programa Haskell
Compilar el programa haskell para que genere un ejecutable de Hola Mundo.
Compilar y obtener un a.out
$ ghc holamundo.hs
Compilar y obtener el ejecutable con otro nombre con la opción -o
$ ghc -o holamundo holamundo.hs
4) Ejecutar el programa Haskell
Ejecutarlo indicando el nombre del programa.
$./a.out
Hola Mundo!
$./holamundo
Hola Mundo!
| Reacciones: |
Android y sus Versiones
Tres son las principales versiones de Android hoy en día: 1.5, de nombre en clave Cupcake; 1.6 o Donut y 2.x, Eclair. Por supuesto también existieron versiones anteriores: la 1.0, con la que se lanzó el primer móvil Android del mercado, el HTC Dream o G1, de Octubre de 2008; y la 1.1, de Febrero de 2009, que solucionaba varios errores y añadía alguna que otra funcionalidad no demasiado importante.
| Reacciones: |
jueves 18 de marzo de 2010
El auto Roewe 350 Andara con Android

El Roewe 350 estaba basado en el concepto N1, el cual integraba sistema de navegación DVD/GPS basado en el sistema operativo de Google Android (v2.1). Tal como se espera el sistema sera capaz de mostrar un reporte del tráfico en tiempo real y averiguar la ruta mas efectiva desde el punto A al punto B. También se sospecha que se podrá incorporar una especia de tarjeta WWAN para revisar tu Gmail en el camino.
| Reacciones: |
miércoles 17 de marzo de 2010
Camaras Web Virtuales en Linux
Leer más.
| Reacciones: |
martes 16 de marzo de 2010
Como Depurar un Programa C en 5 Pasos
Escribir un Programa en C con errores para probar el depurador
Para aprender a depurar en C, crea el siguiente programa C que calcula e imprime el factorial de un numero. Sin embargo este programa C contiene algunos errores para el propósito de depuración.
$ vim factorial.c
# include <stdio.h>
int main()
{
int i, num, j;
printf ("Ingresar un numero: ");
scanf ("%d", &num );
for (i=1; i<num; i++)
j=j*i;
printf("El factorial de %d es %dn",num,j);
}
$ ./a.out
Ingresa un numero: 3
El factorial de 3 es 12548672
Ahora se vera como depurar usando gdb.
Paso 1. Compilar el programa C con la opción -g
Al compilar el programa C con la opción -g se le permite al compilador recolectar la información de depuración.
$ cc -g factorial.c
Paso 2. Configurar un punto de quiebre dentro del programa C
Sintaxis:
break numero_linea
Otros formatos
- break [nombre_archivo]:numero_linea
- break [nombre_archivo]:función
Entonces antes de iniciar el programa, coloca los siguientes puntos de quiebres en el programa factorial.
break 10
Breakpoint 1 at 0x804846f: file factorial.c, line 10.
Paso 3. Ejecutar el programa C en el depurador gdb
run [args]
Puedes iniciar el programa usando el comando run en el depurador gdb. Tambien puedes pasar argumentos a la linea de comando para el programa vía run args. El programa de ejemplo que se esta usando no requiere algun argumento en la linea de comando para ejecutarlo e iniciar el programa.
run
Starting program: /home/usuario/Debugging/c/a.out
Una vez que se haya ejecutado el programa C, este se ejecutaría hasta el primer punto de quiebre.
Breakpoint 1, main () at factorial.c:10
10 j=j*i;
Puedes usar varios comandos gdb para depurar el programa C, tal como se explicara en la siguiente sección.
Paso 4. Imprimir los valores de las variables dentro del depurador gdb
Sintaxis:
print {variable}Ejemplos:
print i
print j
print num
(gdb) p i
$1 = 1
(gdb) p j
$2 = 3042592
(gdb) p num
$3 = 3
(gdb)
Como se vio arriba, en el programa factorial.c no se inicializó la variable j. Entonces, la variable obtiene un valor basura resultando en un numero grande como valores del factorial.
Repara el problema inicializando la variable j con 1, compila el programa C y ejecútalo de nuevo.
Aunque después de repararlo parece que continúan algunos problemas en el programa, por que continua dando valores de factorial erróneos.
Por eso, coloca el punto de quiebre en la linea 10 y continua con la explicación en la siguiente sección.
Paso 5. Continuar con los comandos de gdb
Hay tres clases de operaciones de gdd que puedes escoger cuando el programa se detiene en un punto de quiebre. Estos son continuar hasta el siguiente punto de quiebre, detenerse en el mismo o detenerse sobre la siguiente linea de programa.
- c o continue: El depurador continuara hasta el siguiente punto de quiebre.
- n o next: El depurador ejecutara la siguiente linea como una sola instruccion.
- s o step: Igual que next pero no trata la funcion como una sola instruccion sino se va hasta la función y la ejecuta linea por linea.
Atajos de comandos gdb
Usa los siguientes atajos para las operaciones mas frecuentes de gdb
l – listar p – imprimir c – continuar s – paso ENTER: al presionar enter se ejecutaría el comando anteriormente ejecutado.
| Reacciones: |
viernes 12 de marzo de 2010
Como Buscar y Borrar Archivos y Directorios Vacios en Linux
Buscar directorios vacíos en el directorio actual usando find -empty
find . -type d -empty
Usa el siguiente comando para quitar todos los directorios vacíos en el directorio actual:
find . -type d -empty -exec rmdir {} \;Nota: No es recomendable remover directorios vacios de /etc/ o cualquier otro dicrectorio del sistema.
Buscar archivos vacíos en el directorio actual usando find -empty
find . -type f -empty
Nota: Por lo general los archivos vacíos son creados por algunos programas como place holders, archivos lock o como archivos socket para comunicación.
¿Cuantos archivos vacios se encuentran en el directorio actual (incluyendo sub-directorios)?
Para contar el numero de archivos vacíos en el directorio actual, usa pipe (|) y el comando wc -l
find . -type f -empty | wc -l
¿Cuantos archivos no vacíos se encuentran en el directorio actual y subdirectorios?)?
find . -type f -not -empty | wc -l
Nota: La opción -not del comando find revierte la opción que le sigue.
En todos los ejemplos anteriores, reemplaza el punto (.) con otra ruta donde quisieras hacer la búsqueda.
| Reacciones: |
jueves 11 de marzo de 2010
Usuarios y Dominios Virtuales con Postfix sobre Mandriva 2010.0
El servidor Postfix resultante sera capaz de SMTP-AUTH, TLS y quota (quota no esta integrado por defecto con Postfix, por eso se muestra como parchear el Postfix adecuadamente). Las contraseñas son guardadas encriptadamente en la base de datos. Ademas de eso, el tutorial cubre la instalación de Amavisd, SpamAssassin y ClaimAV de tal forma que el correo pueda ser escaneado para buscar spam o virus. Tambien se muestra la instalación de SquirreMail como interfaz para webmail cosa que los usuarios puedan leer y enviar correos y cambiar sus contraseñas.
La ventaja de usar una configuración "virtual" es que se obtiene una mejor performace que si se usa una configuración basada en usuarios de sistema reales. Con la configuración virtual tu servidor de correo puede manejar miles de dominios y usuarios. Ademas es mas facil de administrar por que solo tienes que lidiar con la base de datos MySQL cuando añades un usuario/dominio o editas uno existente. No mas comandos postmap para crear archivos db, no mas recargas del Postfix, etc. Para administrar la base de datos MySQL puedes usar la herramienta web phpMyAdmin la cual también se muestra como. La tercera ventaja es que los usuarios tiene una dirección de correo como nombre de usuario (en vez de nombre + una dirección de correo) lo cual es mas facil de entender y recordar.
Todo sobre Mandriva 2010.0.
Leer más.
| Reacciones: |
miércoles 10 de marzo de 2010
Declarar Arreglos en AWK
Arreglos Asociativos Awk
Awk solo soporta arreglos asociativos. Los arreglos asociativos son como los arreglos tradicionales con la diferencia que usan cadenas en vez de números como indices. Cuando usas un arreglo asociativo puedes imitar el arreglo tradicional usando una cadena numérica como indice.
Sintaxis:
nombredelarreglo[cadena]=valor
Accediendo a los elementos del arreglo Awk
Si deseas acceder a un elemento en particular en un array, puedes hacerlo a través de su indice — arreglo[indice], lo cual te devolverá el valor del asignado en ese indice.
Si deseas acceder a todos los elementos del arreglo, puedes usar una sentencia bucle para ir leyendo todo el arreglo.
Ejemplo:
for (var in arreglo)
hacer
Este bucle ejecuta una acción por cada valor diferente que fue usado en cada indice del arreglo con la variable var configurada en ese indice.
Quitando elementos de un arreglo Awk
Si deseas remover un elemento de un indice particular del array, se usa la sentencia awk delete. Una vez que hayas borrado un elemento de un array no se podrá recuperar luego.
Sintaxis:
delete arreglo[indice];
La siguiente sentencia borra todos los elementos de un arreglo. No hay una sola sentencia para borrar todos los elementos de un array, por tal motivo tienes que hacerlo a través de un bucle usando la sentencia awk delete.
for (var in arreglo)
delete arreglo[var]
| Reacciones: |
martes 9 de marzo de 2010
Nautilus y Flickr en Ubuntu
sudo dpkg -i nautilus-flickr-uploader_0.03-1_all.deb. El programa quedará accesible bajo esta ruta: Aplicaciones -> Internet -> Subir imágenes a FlickrLeer más.
| Reacciones: |
lunes 8 de marzo de 2010
Convertir Texto a Voz con espeak
Puedes ejecutar directamente el comando espeak en tu maquina Ubuntu sin ninguna instalación o configuración.
En este articulo se revisaran 8 ejemplos del comando espeak.
Ejemplo 1: Hablar palabras especificas en la linea a de comando
Este es su uso por defecto:
# espeak --stdout 'palabra a hablar' | aplay
Ejemplo 2: Hablar las palabras especificadas en stdin
Esto tomara las palabras interactivamente desde la entrada y la convertirá en discurso hablado
# espeak --stdout | aplay
Ejemplo 3: Hablar documentos
Esto convertirá el texto desde midocumento.txt a hablado
# espeak --stdout -t midocumento.txt | aplay
Ejemplo 4: Generar archivos de voces desde un documento de texto
Convierte el archivo de texto en un archivo de audio:
# espeak -t midocumento.txt -w miaudio.wav
Configurar espeak
Si te parece que lo hablado no es bueno, puedes configurar como se muestra a continuación:
Ejemplo 5: Listar todos los lenguajes disponibles
# espeak --voices
Pty Language Age/Gender VoiceName File Other Langs
5 af M afrikaans af
5 bs M bosnian bs
5 ca M catalan ca
5 cs M czech cs
5 cy M welsh-test cy
5 de M german de
5 el M greek el
5 en M default default
5 en-sc M en-scottish en/en-sc (en 4)
.......
Ejemplo 6: Escoger un lenguaje diferente
Lo siguiente usara "en-uk" - Ingles británico para traducir de texto a voz.
# espeak -v en-uk --stdout 'reading tips & tricks in TGS' | aplay
Ejemplo 7: Incrementar o disminuir el numero de palabras habladas por minuto
Por defecto se habla 160 palabras por minuto. Puedes reducirlo usando la opción -s:
# espeak -s 140 -f midocumento.txt | aplay
Ejemplo 8: Listar las voces disponibles en espeak para un idioma especifico
Lo siguiente mostrara todas la variaciones disponibles del idioma español que puedes usar para pasar de texto a voz:
# espeak --voice=es
Pty Language Age/Gender VoiceName File Other Langs
2 en-uk M english en/en (en 2)
3 en-uk M english-mb-en1 mb/mb-en1 (en 2)
2 en-us M english-us en/en-us (en-r 5)(en 3)
5 en-sc M en-scottish en/en-sc (en 4)
5 en M default default
.....
| Reacciones: |
Dubuntu, DB2 y Ubuntu
Dubuntu es perfecto para desarrollos pequeños donde no se puede invertir mucho presupuesto en licencias. También si eres un desarrollador de DB2 para sistemas z/OS, Dubuntu te sera muy útil para expandir tus conocimientos y habilidades en plataformas distribuidas.
Para descargar Dubuntu puedes ingresar al siguiente enlace:
http://www.idug.org/anil-dubuntu/dubuntu-appliance.html
| Reacciones: |
viernes 5 de marzo de 2010
La Nueva Version de Jolicloud Correra mas Rapido las Aplicaciones Web
- La plataforma para aplicaciones Web estará basada en Google Chrome en vez de Mozilla Prism.
- Hay un nuevo modo Escritorio diseñado para nettops y otras computadoras con pantallas de mas de 11 pulgadas.

El modo Escritorio hace bastante sentido, ya que hay muchas nettops con los mismos componentes (procesadores Intel Atom, Windows XP o 7, graficos integrados o NVIDIA ION). Pero el cambio de Prism a Chrome para las aplicaciones Web es algo bueno.
De acuerdo con la gente de Jolicloud, esto permitirá una experiencia de navegación más rápida, un uso mas eficiente de la memoria y soporte de extensiones Chrome para todas las aplicaciones Web. Tambien ayudara a la performance de netbooks y tablets basadas en ARM.
El navegador Web por defecto seguirá siendo Firefox. Pero el motor de renderizado de Chrome manejara todas las aplicaciones Web que hayas instalado en tu sistema.
Esta nueva versión también sera 100% compatible con las netbooks Intel que se encuentren en el mercado. Esto incluye sistemas con el antiguo Intel Celeron o el mas reciente Atom Pine Trail asi como con los graficos NVIDIA ION o acelerador de video Broadcom Crystal HD.
| Reacciones: |
Abrir Varias Paginas Cuando Firefox Inicie
Paso 1: Ir a la Ventana Opciones en Firefox
Ir a: Herramientas -> Opciones -> Pestaña Principal
Paso 2: Configurar Dos Paginas Web en el Campo Pagina de Inicio Separados por |
- En la lista desplegable "Cuando se inicie Firefox" escoger "Mostrar mi pagina de inicio".
- Ingresar varias paginas Web separadas por | (pipe).
Paso 3: Reiniciar Firefox
Guardar las opciones y reiniciar Firefox, lo cual abrirá automáticamente las paginas colocadas en diferentes pestañas.
| Reacciones: |
jueves 4 de marzo de 2010
Como Actualizar Twitter y Facebook Usando curl
Leer más.
| Reacciones: |
miércoles 3 de marzo de 2010
Ejemplos de Codigo Bash
Shell es llamado como shell interactivo cuando lee la entrada desde el usuario directamente.
Shell es llamado shell no-interactivo cuando lee los comandos desde un archivo y los ejecuta. En este caso shell lee cada linea del código en el archivo desde el principio hasta el final y ejecuta cada comando como si lo hubiera tipeado el usuario directamente.
Imprime el valor de la variable shell $-, para saber si el shell es interactivo o no.
# echo $-
himBH
Nota: La variable $- contiene una "i" lo cual indica que es interactivo.
Unix tiene una variedad de Shell. Bourne shell (sh), Bourne again shell (bash), C shell (csh), Korn shell (ksh), Tenex C shell (tcsh). Usa el comando where o whereis para encontrar donde esta localizado el shell especifico tal como se muestra a continuación:
# which bash
/bin/bash
# whereis bash
bash: /bin/bash /usr/share/man/man1/bash.1.gz
Puedes intercambiar entre los shells escribiendo el nombre del shell. Por ejemplo escribe csh para cambiar al C shell.
Escribir y Ejecutar Codigo Shell
Ejemplo 1. Código Bash de Hola Mundo
1) Crear un script escribiendo las siguientes lineas en un archivo usando tu editor favorito:
$ cat holamundo.sh
#!/bin/bash
echo Hola Mundo
2) Puedes escoger cualquier nombre para el archivo. El nombre del archivo no debe ser igual a cualquier comando de Unix o Linux.
3) El script siempre empieza con dos caracteres '#!' el cual es llamado she-bang. Esto indica que es un archivo de código y debe ser ejecutado usando un interprete (/bin/bash) especificado por el resto de la primera linea en el archivo.
4) Ejecutar el script tal como se muestra abajo:
$ bash holamundo.sh
Hola Mundo
5) Cuando ejecutas el comando "bash holamundo.sh", este inicia el shell no-interactivo y pasa el nombre del archivo como argumento a este.
6) La primera linea indica al sistema operativo cual es el shell que se usara para ejecutar el código.
7) En el ejemplo anterior el interprete bash es el que interpreta el código y ejecuta los comandos uno por uno desde el principio hasta el final.
8) Puedes ejecutar el código sin necesidad de usar el bash:
- Cambia los permisos del archivo para permitir que el usuario lo ejecute usando el comando chmod u+x holamundo.sh.
- El directorio que contiene el archivo debe estar incluido en la variable de entorno PATH. Si no esta incluida, puedes ejecutar el script especificando toda la ruta del mismo.
9) echo es un comando que muestra el argumento que se le da. Tambien se usa para imprimir el valor de una variable.
Ejemplo 2. Imprimir un Mensaje de Bienvenida al Logearse
Escribe el siguiente contenido en tu archivo ~/bash_profile. Si no existe crea un archivo con el siguiente contenido:
$ cat ~/.bash_profile
hname=`hostname`
echo "Bienvenido a $hname."
Cuando te logeas a un shell interactivo veras el mensaje de bienvenida tal como se muestra:
root@dev-db's password:
Bienvenido a dev-db
Ejemplo 3. Imprimir Información Relacionada al Sistema
Cuando te logeas a un shell interactivo podría mostrarte el nombre del kernel instalado en el servidor, la versión del bash y hora en el servidor.
$cat ~/.bash_profile
hname=`hostname`
echo "Bienvenido a $hname."
echo -e "Detalles del Kernel: " `uname -smr`
echo -e "`bash --version`"
echo -ne "Hora Servidor: "; date
Cuando lanzas un shell interactivo se imprime el siguiente mensaje:
root@dev-db's password:
Bienvenido a dev-db
Detalles del Kernel: Linux 2.6.18-128 x86_64
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Hora Servidor : Tue Feb 22 11:24:01 CET 2010
Ejemplo 4. Imprimir los Detalles del Ultimo Logeo
Si varios usuarios usan la misma maquina con el mismo login entonces detalles como la maquina desde donde se esta logeando y la hora del logoe, serian detalles muy útiles. Este ejemplo imprime detalles del ultimo logeo durante el inicio de un shell interactivo.
$ cat ~/.bash_profile
hname=`hostname`
echo "Bienvenido a $hname."
echo -e "Detalles del Kernel: " `uname -smr`
echo -e "`bash --version`"
echo -ne "Hora Servidor : "; date
lastlog | grep "root" | awk {'print "Ultimo logeo desde: "$3
print "Fecha y Hora del Ultimo Logeo: ",$4,$5,$6,$7,$8,$9;}'
Durante el inicio veras el siguiente mensaje:
root@dev-db's password:
Bienvenido a dev-db
Detalles del Kernel: Linux 2.6.18-128 x86_64
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Hora Servidor : Tue Feb 22 11:24:01 CET 2010
Ultimo logeo desde : user-laptop
Fecha y Hora del Ultimo Logeo: Tue Feb 22 11:24:01 +0100 2010
Ejemplo 5. Exportar Variables y Configurar Alias durante el Inicio
Los comandos mas comunes que veras en tus archivos .bashrc y .bash_profile son los comandos export y alias.
Un alias es simplemente una pieza de texto que sustituye a otra. Cuando ejecutas un alias, este simplemente reemplaza lo que escribiste con el alias. Por ejemplo, si deseas configurar un alias para el comando ls para listar archivos/directorios con los colores, haz lo siguiente:
alias ls 'ls --color=tty'
Si añades este comando a un archivo de inicio puedes ejecutar el comando ls el cual sera reemplazado automáticamente por el comando ls –color=tty.
El comando export es usado para configurar una variable de entorno. Varias variables de entorno son usadas por el sistema u otras aplicaciones. Estas simplemente son una forma de configurar parámetros que cualquier aplicación/script puedan leer. Si configuras una variable sin el comando export, la variable solo existirá para ese proceso en particular.
En el siguiente ejemplo se muestra como exportar la variable de ambiente HISTSIZE. La linea que empieza con # es un comentario.
$ cat /etc/profile
alias ls 'ls --color=tty'
# Configurar alguna variable de entorno
export HISTSIZE=1000
PATH=$PATH:$HOME/bin:/usr/bin:/bin/usr:/sbin/etc
export PATH
export SVN_SH=${SVN_RSH-ssh}
| Reacciones: |
martes 2 de marzo de 2010
Instalar KDE 4.4 en Fedora 12
su -c "wget http://apt.kde-redhat.org/apt/kde-redhat/fedora/kde.repo
-O /etc/yum.repos.d/kde.repo".
Lo siguiente es realizar la instalación, para lo que en línea de comandos escribimos:
su -c "yum --enablerepo=kde* groupinstall 'KDE (K Desktop Environment)'".
O si lo preferimos actualizar con la siguiente línea:
su -c "yum --enablerepo=kde* update".
Una vez hemos hecho lo anterior lo único que haremos será reiniciar el equipo y listo ya tenemos instalado y perfectamente funcional nuestro KDE SC 4.4.0.
| Reacciones: |
lunes 1 de marzo de 2010
Soporte para iPhone y iPod Touch al Instalar Ubuntu Lucid Lynx
Leer más.
| Reacciones: |
Levantan Linux en menos de 1 segundo
| Reacciones: |