Buscar en este blog
31.10.09
Cómo cortar archivos grandes en Linux… y después pegarlos
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
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
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 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
(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
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