Buscar en este blog

31.10.09

Cómo cortar archivos grandes en Linux… y después pegarlos

En algunas ocasiones me he visto en la necesidad de cortar archivos grandes para después pegarlos en otra ubicación ya sea para facilitar su transporte, o simplemente porque no he tenido como pasarlo en un solo archivo.

La manera más cómoda para mi ha sido utilizar 2 comandos fabulosos. Imaginemos que tenemos un archivo de 800 MB que se llama pelicula.avi y queremos cortar este archivo en pedazos de 100MB cada uno, pues solamente tecleamos.
split -b100m pelicula.avi >


esto nos va a crear pedazos de 100MB con el nombre pelicula_pedazos y que después pegaríamos con este otro comando:

cat pelicula_pedazos.* > >

Con esto nos genera un archivo con la suma de todas las partes llamado pelicula_pegada.avi

NOTA:

El tamaño indíca los bytes con letras: b para 512, k para 1k, m para 1 Mega.
Fecha: 25/10/2009
Fuente: cesarius.net

26.10.09

Guarda el texto de una sesión ssh

Guarda el texto generado por una sesión ssh

ssh usuario@dominio | tee archivo_log

Con lo que podrás revisar la salida de los comando usados en la sesión remota

Instalación y uso de OpenSSH

El protocolo de red SSH permite intercambiar datos de modo seguro entre dos dispositivos de red. Su uso principal es el de poder acceder a un terminar con la seguridad de que la comunicación esta cifrada. Para el usuario usar SSH para ejecutar programas en la maquina remota es igual a como lo haría con un terminal en local.

Para disponer de un servidor de SSH en Ubuntu deberemos instalar el servidor OpenSSH con la siguiente orden:

sudo apt-get install openssh-server


tras lo cual nos pedirá la contraseña, empezara a descargar de Internet los paquetes necesarios y procederá a su instalación.

o mediante Synaptic, Editar → Marcar Paquetes por tarea
Marcamos OpenSSH server, Aceptar y Aplicar

Para probar que la instalación es correcta podemos usar la siguiente orden donde usuario será un usuario que exista en nuestra maquina

ssh usuario@127.0.0.1

como es la primera vez que conectamos a nuestro servidor SSH nos mostrará un mensaje similar a

The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
RSA key fingerprint is 8d:34:9d:f9:a8:c8:c3:1f:17:24:3c:ad:89:8b:64:df.
Are you sure you want to continue connecting (yes/no)?

A lo que tendremos que responder “yes” para aceptar la clave de cifrado. A partir de este punto la conexión es segura con lo que nos pedirá la contraseña para poder acceder al usuario usuario. Después si la contraseña es correcta tendremos acceso a la linea de comando remota como si fuera un terminal local.

Para acceder a una máquina en Internet el comando sería similar a

ssh usuario@dominio.com

donde dominio.com seria el nombre de dominio de la máquina remota. Nos enviará la clave RSA. La aceptaremos. Nos pedirá la contraseña del usuario y si es correcta tendremos acceso.

Una utilidad que considero imprescindible para trabajar con el terminal es el Midnight Commander que es un clon mucho mas avanzado del mítico Comandante Norton.
Se instala con la siguiente orden

sudo apt-get install mc

y se ejecuta con

mc

Las claves RSA se guardan en un archivo llamado “know_hosts” en un directorio oculto de cada usuario llamado .ssh

También podemos ejecutar aplicaciones gráficas de modo remoto si usamos el modificador -X

ssh –X usuario@dominio.com

posteriormente ejecutamos por ejemplo

nautilus

con lo que se abrirá el navegador de archivos Nautilus y podemos explorar los archivos de usuario de la máquina remota tal como si fuera en la máquina local.

Haciendo uso del comando scp podremos copiar desde y hacia la máquina remota archivos. Para copiar un archivo hasta la máquina remota usaremos

scp archivolocal usuario@dominio.com:archivoremoto

y para traernos un archivo usaremos

scp usuario@dominio.com:archivoremoto archivolocal

Donde usuario es un usuario válido del que dispondremos de contraseña. dominio.com será el nombre de la máquina remota, y archivolocal y archivoremoto lo que pretendemos copiar

Todo lo que hemos visto funciona perfectamente en Ubuntu 8.10.

Fuente: UbunTux

22.10.09

Bash (IV) - Estructuras de control y bucles

En nuestra cuarta entrega sobre la introduccion a el interprete de comandos Bash, vamos a ver una pequeña introduccion a las estructuras de control y bucles en Bash. Estas construcciones nos ayudan a controlar la ejecucion de un script y a obtener diversos resultados dependiendo de las condiciones que se cumplan o no cuando ejecutamos el script.

En Bash existen estas construcciones para controlar el flujo de ejecucion de un script:

* if/else: Ejecuta una serie de comandos dependiendo si una cierta condicion se cumple o no.
* for: Ejecuta una serie de comandos un numero determinado de veces.
* while: Ejecuta una seria de comandos mientras que una determinada condicion sea cumpla.
* until: Ejecuta una serie de comandos hasta que una determinada condicion se cumpla.
* case: Ejecuta una o varias listas de comandos dependiendo del valor de una variable.
* select: Permite seleccionar al usuario una opcion de una lista de opciones en un menu.


Comparaciones de cadenas alfanumericas

Operador  Verdad (TRUE) si:
------------------------------------------
cadena1 = cadena2 cadena1 es igual a cadena2
cadena1 != cadena2 cadena1 no es igual a cadena2
cadena1 < cadena2 cadena1 es menor que cadena2
cadena1 > cadena 2 cadena1 es mayor que cadena 2
-n cadena1  cadena1 no es igual al valor nulo (longitud mayorque 0)
-z cadena1  cadena1 tiene un valor nulo (longitud 0)

Comparacion de valores numericos

Operador  Verdad (TRUE) si:
------------------------------------------
x -lt y   x menor que y
x -le y   x menor o igual que y
x -eq y   x igual que y
x -ge y   x mayor o igual que y
x -gt y   x mayor que y
x -ne y   x no igual que y

Comprobacion de atributos de fichero


Operador  Verdad (TRUE) si:
------------------------------------------
-d fichero  fichero existe y es un directorio
-e fichero  fichero existe
-f fichero  fichero existe y es un fichero regular (no un
   directorio, u otro tipo de fichero especial)

-r fichero  Tienes permiso de lectura en fichero
-s fichero  fichero existe y no esta vacio
-w fichero  Tienes permiso de escritura en fichero
-x fichero  Tienes permiso de ejecucion en fichero (o de busqueda
   si es un directorio)

-O fichero  Eres el dueño del fichero
-G fichero  El grupo del fichero es igual al tuyo.

fichero1 -nt fichero2 fichero1 es mas reciente que fichero2
fichero1 -ot fichero2 fichero1 es mas antiguo que fichero2

Podemos combinar varias condiciones con los simbolos '&&' (AND) y '||' (OR), y negar una condicion con '!'. Unos ejemplos mas adelante aclararan como utilizarlos.

if/else

La sintaxis de esta construccion es la siguiente:

if "condicion"
then
  "comandos"
[elif "condicion"
then
  "comandos"]
[else
  "comandos"]
fi

Como ya hemos dicho, podemos comprobar los valores de terminacion de un comando, y comparar cadenas alfanumericas/numericas y atributos de ficheros. Nada mejor que unos ejemplos para aclararnos las ideas.

#!/bin/bash
#
# Comprobando terminacion de un comando
#

DIRECTORIO="/tmp/test"

COMANDO="/bin/mkdir $DIRECTORIO"

if $COMANDO
    then
    echo "$DIRECTORIO ha sido creado"
else
    echo "$DIRECTORIO no pudo ser creado"
fi
#!/bin/bash
#
# Comparacion de cadenas alfanumericas
#

CADENA1="uno"
CADENA2="dos"
CADENA3=""

if [ $CADENA1 = $CADENA2 ]; then
    echo "\$CADENA1 es igual a \$CADENA2"

elif [ $CADENA1 != $CADENA2 ]; then
    echo "\$CADENA1 no es igual a \$CADENA2"

fi

if [ -z $CADENA3 ]; then
    echo "\$CADENA3 esta vacia"
fi

#!/bin/bash
#
# Comparacion de valores numericos
#

let NUM1=1
let NUM2=2
let NUM3=3

if [ $NUM1 -ne $NUM2 ] && [ $NUM1 -ne $NUM3 ]; then
    echo "\$NUM1 es diferente a \$NUM2 y \$NUM3"
fi

if [ $NUM1 -lt $NUM3 ]; then
    echo "\$NUM1 es menor que \$NUM3"
fi

for

La sintaxis de esta construccion es la siguiente:

for nombre [in lista]
do
   comandos que pueden utilizar $nombre
done

Un ejemplo nos aclarara las cosas. Vamos a listar informacion en el DNS de una lista de direcciones web:

#!/bin/bash

for HOST in www.google.com www.altavista.com www.yahoo.com

do
  echo "-----------------------"
  echo $HOST
  echo "-----------------------"
  
  /usr/bin/host $HOST
  echo "-----------------------"

done

while

La sintaxis de esta construccion es la siguiente:

while condicion
do
  comandos
done

Un ejemplo simple con while en donde escribimos el valor de una variable 10 veces, despues de incrementar su valor:

#!/bin/bash

NUM=0

while [ $NUM -le 10 ]; do
    echo "\$NUM: $NUM"
    let NUM=$NUM+1
done

until

La sintaxis de esta construccion es la siguiente:

until condicion; do
   comandos
done

Un ejemplo simple con until en donde escribimos el valor de una variable 10 veces, despues de incrementar su valor:

#!/bin/bash

NUM=0

until [ $NUM -gt 10 ]; do
    echo "\$NUM: $NUM"
    let NUM=$NUM+1
done

case

La sintaxis de esta construccion es la siguiente:

case expresion in
     caso_1 )
        comandos;;
     caso_2 ) 
 comandos;;
     ......
esac  

Un ejemplo simple con case para aclarar las cosas:

#!/bin/bash

for NUM in 0 1 2 3
do
  case $NUM in
      0)
   echo "\$NUM es igual a cero";;
      1)
   echo "\$NUM es igual a uno";;
      2)
   echo "\$NUM es igual a dos";;
      3)
   echo "\$NUM es igual a tres";;
  esac
done

select

La sintaxis de esta construccion es la siguiente:

select nombre [in lista]
do
  comandos que pueden utilizar $nombre
done

Un ejemplo simple para aclarar las cosas.

#!/bin/bash

select OPCION in opcion_1 opcion_2 opcion_3
  do
  if [ $OPCION ]; then
      echo "Opcion elegida: $OPCION"
      break
  else
      echo "Opcion no valida"
  fi
done


3.10.09

Wallpaper de la Tierra en Tiempo Real

Bueno pues solo ejecutando un script se puede tener en tu fondo de escritorio el wallpaper de la tierra y no consume mas de 400 kb quedaria algo asi:
(dar clic para ampliar)




los pasos son:
1.
descarga el script.


script


2.
Abre una terminal.

cd /ruta del archivo


3.
Ejecuta el script.

chmod +x changer.sh


4.
vamos a sistema--preferencias---aplicaciones al inicio y hacemos esto:
Campo Nombre: Earth Wallpaper (o papel tapiz de la tierra, malditos anglicismos)
Campo Orden: la ruta y el comando donde pusieron el archivo "charger.sh" (ejm. /home/usuario/earthwallpaper/charger.sh)




5.
Ahora tendrás que escoger como imagen de fondo de Escritorio la imagen llamada world_sunlight_Wallpaper.jpg que se encuentra en la carpeta "~/.gnome2" (/home/usuario/.gnome2).
Listo con esos sencillos pasos podrás ver a la tierra en una vista satelital, por así decirlo, y cambiando cada hora...

Reinstalar el GRUB

Iniciando un Live CD Introducid un Live CD de vuestra distro en la unidad CD-ROM e iniciad/reiniciad el equipo. Tenéis que seguraros de en la secuencia de arranque de la BIOS esté primero dicha unidad CD-ROM que el disco duro.
Si no estáis seguros o no sabéis dónde mirarlo, antes de que inicie el sistema operativo u os dé el mensaje de que no lo encuentra, pulsad la tecla para acceder a la BIOS. Normalmente es la tecla “Supr” o “F2″. Una vez dentro buscad la opción, normalmente se llama “Boot Sequence”.
Una vez configurada la secuencia de arranque, guardad los cambios y os arrancará el Live CD.
¿Cual es el disco duro donde tengo que instalar grub? Estando ya en el Live CD y antes de deciros cómo reinstalar grub debéis saber qué disco duro -si tenéis más de uno-. Normalmente es el primero, es decir “hda“, aunque puede ser otro. Si no estáis seguros podéis comprobarlo abriendo una terminal y tecleando este comando:
$ sudo fdisk -l

Los usuarios que no estén usando el Ubuntu Live CD tendrán que ejecutar el comando como superadministrador.
Lo que hace este comando es decirnos los discos duros que tenemos y las particiones que tienen. Buscad el disco donde esté la partición de vuestro Windows (que será la primera del disco en cuestión). La partición estará identificada de una forma similar a: hda1, sda1, hdb1, etc. Una vez identificada lo que nos interesa es el hda, sda, hdb… que es el disco donde tenemos que instalar grub.
En la salida del comando tenéis que identificar también cual es la partición de vuestro sistema GNU/Linux. Podréis identificarla por el sistema de ficheros (ext3 o ext2) junto con el tamaño de dicha partición. Quedaros con el número, además del disco, es decir hda2, sda3, hdb5 o la que sea.
Otra alternativa para hacer todo esto es abrir gparted y verlo de forma gráfica.
Ahora podemos reinstalarlo.
Reinstalar grub Conocido el disco duro en cuestión (seguiré el tutorial con hda como ejemplo, vosotros lo tendréis que cambiar por el vuestro si es distinto) pasamos a reinstalar grub.
Os voy a explicar brevemente lo que vamos a hacer: Vamos a crear una carpeta donde montaremos la partición donde tenemos nuestro GNU/Linux. Usaremos ese sistema de ficheros como el actual e instalamos grub. El paso por paso sería tal que así (los usuarios que no estén usando el Ubuntu Live CD, deberán ejecutar el comando como administrador, en aquellas órdenes donde aparezca el sudo):
Creamos la carpeta “pepino” en la cuenta creada en el LiveCD llamada “ubuntu”, por lo tanto:


$ mkdir /home/ubuntu/pepino


Montamos la partición del GNU/Linux instalado en dicha carpeta (cambiar por ext2 o el sistema de fichero que usas si no es ext3). Siguiendo como ejemplo mi sistema, pongamos que es hda2:


$ sudo mount -t ext3 /dev/hda2 /home/ubuntu/pepino


Convertimos esa partición en el directorio raíz del sistema. Cuidado a partir de ahora si hacéis algo de más, porque se reflejará en vuestro sistema real, no el del Live CD.


$ sudo chroot /home/ubuntu/pepino


E instalamos grub (dijimos que el disco duro sería hda, como ejemplo):


$ sudo grub-install /dev/hda


Listo. Cerramos la consola, reiniciamos el sistema, arrancamos desde el disco duro en lugar del CD (volved a cambiar el orden si queréis) y ya debería apareceros vuestro grub con vuestros sistemas disponibles.

--reinstalar el grub--


otra altenativa