sábado, 22 de septiembre de 2012

Configurando escritorio Debian

Cuando hacemos una instalación de un Debian y no añadimos una réplica de red deberemos configurar los repositorios de forma manual y ya de paso añadiremos los paquetes más usuales, como libreoffice o el plugin de flash. Lo primero que vamos a hacer es abrir como root el fichero de configuración de repositorios.
#nano /etc/apt/sources.list
Y añadimos los siguientes repositorios
deb http://ftp.es.debian.org/debian/ squeeze main
deb-src http://ftp.es.debian.org/debian/ squeeze main
También podiamos haber hecho lo siguiente sin tener que abrir el fichero.
#echo "deb http://ftp.es.debian.org/debian/ squeeze main" >> /etc/apt/sources.list
#echo "deb-src http://ftp.es.debian.org/debian/ squeeze main" >> /etc/apt/sources.list
El siguiente paso será actualizar la lista de los paquetes del sistema.
#apt-get update
El siguiente paso es volver a abrir el fichero /etc/apt/sources.list para modificar las líneas que habíamos añadido antes.
#nano /etc/apt/sources.list

deb http://ftp.es.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.es.debian.org/debian/ squeeze main contrib non-free
Hemos añadido contrib non-free y con esto conseguimos los paquetes con otro tipo de licencia. Volvemos a actualizar la lista de paquetes.
#apt-get update
Ahora estamos listos para instalar flash.
apt-get install flashplugin-nonfree
Con esto ya podemos ver youtube. El siguiente paso va a ser instalar una versión de LibreOffice, pero esta vez lo haremos de forma manual. Lo primero será descargar los tar de la página de Libreoffice. LibO_3.5.6_Linux_x86_helppack-deb_es.tar.gz LibO_3.5.6_Linux_x86_install-deb_en-US.tar.gz LibO_3.5.6_Linux_x86_langpack-deb_es.tar.gz Primero descomprimimos
tar xvzf LibO_3.5.6_Linux_x86_helppack-deb_es.tar.gz
tar xvzf LibO_3.5.6_Linux_x86_install-deb_en-US.tar.gz
tar xvzf LibO_3.5.6_Linux_x86_langpack-deb_es.tar.gz

cd LibO_3.5.6_Linux_x86_install-deb_en-US/Downloads/en-US/DEBS/
Instalamos todos los paquetes del directorio
dpkg -i *.deb
Ahora nos toca integrar los iconos en el escritorio y en el menú
cd /Downloads/en-US/DEBS/desktop-integration
dpkg -i *.deb
Ya está, ahora sólo quedaría instalar la ayuda y el idioma, sólo debemos acceder a sus respectivas carpetas y ejecutar dpkg -i *.deb.

lunes, 10 de septiembre de 2012

Codificación de ficheros de texto Linux/Windows

Vamos a ver unos ejemplos de como convertir diferentes ficheros de texto editados en sistemas Unix y/o Windows. En Linux los ficheros de texto se codifican mediante UTF-8 que es una de las tablas del estándar Unicode, pero en Windows no se sigue este estándar. Las instalaciones de Windows en castellano utilizan la tabla Windows-1252. Los ficheros de texto de Windows tienen una serie de caracteres especiales y ocultos para señalar el fin de línea, fin de fichero, etc. En Linux son diferentes y aunque en muchos casos puede abrir correctamente los ficheros de texto de Windows en otros casos no. Explicado esto vamos a presentar unas herramientas que nos serán de utilidad en alguno de los supuestos anteriores. dos2unix nos permite transformar estos archivos de formato Windows (DOS) a Linux. Un ejemplo: si disponemos de un fichero creado con el notepad, podemos comprobar su codificación con la herramienta file.
#file ejemplo.txt
ejemplo.txt: ASCII text, with CRLF line terminators
#dos2unix ejemplo.txt 
dos2unix: converting file ejemplo.txt to UNIX format ...
#file ejemplo.txt 
ejemplo.txt: ASCII text
unix2dos nos permite transformar estos archivos de formato Linux a Windows (DOS).
#unix2dos ejemplo.txt 
unix2dos: converting file ejemplo.txt to DOS format ...
#file ejemplo.txt 
ejemplo.txt: ASCII text, with CRLF line terminators
iconv nos permite cambiar la codificación del fichero de texto. iconv -f old-encoding -t new-encoding file.txt > newfile.txt
# iconv --from-code ASCII --to-code UTF-16 --output ejemplo.utf16 ejemplo.txt
# file ejemplo.utf8 ejemplo.txt ejemplo.utf8: Little-endian UTF-16 Unicode text, with CRLF, CR line terminators
ejemplo.txt:  ASCII text, with CRLF line terminators
convmv nos permite cambiar la codificación de los carácteres.
# convmv -f iso-8859-1 -t utf8 files
Con esta orden convertiremos todos los ficheros dentro del directorio files de iso-8859-1 a utf8.

jueves, 6 de septiembre de 2012

Órdenes de propósito general en Linux - Iniciar y cerrar sesión

Las órdenes que vamos a ver a continuación, nos serán de utilidad para iniciar y cerrar sesiones en un sistema Linux de diferentes maneras. login: utilizaremos esta orden para establecer una nueva sesión de trabajo con el sistema. passwd: Utilizamos esta orden para cambiar nuestra contraseña logout: Finalizamos sesión. exit: utilizaremos esta orden para finalizar una sesión de trabajo. ^d: Con Ctrl+d enviaremos una señal de exit al sistema y cerraremos sesión. startx: En caso de estar trabajando sin las X Windows, con esta orden iniciariamos estas. poweroff: orden para apagar. halt: orden para apagar. shutdown: orden para apagar. reboot: Con esta orden le diremos al sistema que se reinicie. Alt+Ctrl+Supr: Con esta combinación de teclas enviamos una orden reboot al sistema.

martes, 17 de julio de 2012

Habilitar ssh Raspberry Pi

En mi caso, que aún no dispongo de un cable HDMI, no tengo otra opción que habilitar el ssh sin un monitor. Si después de haber preparado la tarjeta SD observamos, vemos que tiene varios ficheros, el que nos interesa se llama boot_enable_ssh.rc. Y lo único que tendremos que hacer será cambiarle el nombre a boot.rc
mv boot_enable_ssh.rc boot.rc
Retiremos la tarjeta del ordenador, la insertamos en nuestra Raspberry Pi y la enchufamos. Esperamos unos segundos. Lanzamos un nmap, para ver que IP se le a asignado.
nmap 192.168.0.0/24
Por último, sólo nos queda lanzar el comando ssh
ssh pi@192.168.0.32
password: raspberry
Recuerda user: pi password: raspberry

sábado, 14 de julio de 2012

Raspberry Pi - Preparando la tarjeta SD en Debian Squeeze

En 10 pasos vamos a preparar nuestra tarjeta SD de 16GB para que funcione como almacenamiento de nuestra Raspberry Pi. Mi sistema se trata de un Debian Squeeze, pero debería funcionar con cualquier otra distribución Linux. Paso 1. Descargar la imagen que plancharemos en la tarjeta SD. En mi caso fue la siguiente:
wget http://downloads.raspberrypi.org/images/debian/6/debian6-19-04-2012/debian6-19-04-2012.zip
Paso 2. Verificamos si la clave del hash del archivo zip es el mismo que aparece en la página de descargas. Suponiendo que usted pone el archivo zip en el directorio home ~/, en la terminal ejecutar:
sha1sum ~/debian6-19-04-2012.zip
Paso 3. Extraemos la imagen:
unzip ~/debian6-19-04-2012.zip
Paso 4. Ejecutamos
df -h
para ver qué dispositivos están montados.

Paso 5. Aquí llega el momento de conectar nuestra tarjeta SD al ordenador.

Paso 6. Ejecutamos df -h otra vez. Ahora debemos poder ver el dispositivo. La columna de la izquierda nos da el nombre del dispositivo de la tarjeta SD. En mi caso aparece en /dev/sdb1.

Paso 7. Ahora con el nombre de la tarjeta SD vamos a desmontar para que los archivos no puedan ser leídos o escritos en la tarjeta SD mientras se están copiando sobre la imagen SD. Ejecutamos
umount /dev/sdb1

Paso 8. Ahora debemos escribir este comando, ojo no equivocarse de dispositivo.

dd bs=1M if=~/debian6-19-04-2012/debian6-19-04-2012.img of=/dev/sdb
El comando dd no da ninguna información de su progreso, ten un poco de paciencia.

 Paso 9. Ejecutamos el comando sync, esto asegurará que la caché de escritura vacía y ya será seguro desmontar la tarjeta SD. 

Paso 10. Extraemos la tarjeta SD y conectala a tu Raspberry Pi. Listo!

lunes, 9 de julio de 2012

¿Cómo usar getopts?

Presentamos un pequeño script utilizando el comando getopts. Con este comando podemos procesar la entrada que se le pasa a un script. Para usarlo vemos que sólo tenemos que ponerla en un while y diferenciar entre las opciones que necesitan argumentaos y las que no. Esto se indica con dos puntos a la derecha de la opción. Como podemos ver, para cada opción recogemos su variable y la procesamos al terminar de recolectarlas.
#!/bin/bash
 
while getopts ":a:f:v:" opt; do
  case $opt in
    a)
     VARIABLE=$OPTARG
      ;;
    f)
     FICHERO=$OPTARG
      ;;
    v)
     VALUE=$OPTARG
      ;;
    \?)
      echo "Opcion invalida: -$OPTARG" >&2
      exit 1
      ;;
    :)
      echo "La opcion -$OPTARG necesita un argumento." >&2
      exit 1
      ;;
  esac
done

cat $FICHERO | sed s/$VARIABLE=.*/$VARIABLE=$VALUE/ > $FICHERO
Después de recoger los parámetros ejecutamos la útlima línea. Lo único que hace es buscar la variable en el fichero indicado y sustituirla por el valor introducido.

domingo, 11 de marzo de 2012

Como usar el comando find en GNU/Linux

Usaremos el comando find para localizar ficheros por múltiples criterios: ◦ Por nombre o patrón. ◦ Por usuario y grupo. ◦ Por tipos de elementos ( fichero, directorio, socket, pipe...) ◦ Por medida. ◦ Por permisos asignados. ◦ Por fecha o cualquier otro atributo de tiempo. Con la siguiente orden buscamos un fichero, un conjunto o un patrón en el sistema de ficheros a partir de un punto de origen, en este caso en el directorio /boot:
$ find /boot -name "*.img" -print
Con la siguiente orden buscamos todos los ficheros que son hard links de un determinado fichero:
$ find . -samefile dades.txt
Con la siguiente orden buscamos todos los ficheros que son los enlaces simbólicos de un fichero dado.
$ find . -lname dades.txt
Con la siguiente orden buscamos ficheros de una medida concretos. (o entre uns valors)
# find /boot -size +3M -print

# find /boot/ -size +3M -size -5M -print
Con la siguiente orden buscamos ficheros por usuario y grupo
# find /dev -user vcsa -print
Con la siguiente orden buscamos ficheros según los permisos que tiene asignados.
# find /usr/bin -perm -u=s -print   # setuid activado

# find /usr/bin -perm -gu=s -print  # setuid i setgid simultáneamente

# find /usr/bin -perm /ug=s -print  # setuid o setgid o los dos

# find /usr/bin -perm 4755 -print   # los permisos son exactamente 4755
Con la siguiente orden buscamos todos los ficheros posteriores en una fecha determinada
# find /boot -newermt "01/02/2010" -print # modificados posteriormente del 01-01-2010

# find /boot -newermt "$(date -d "-1Year" +%m/%d/%Y)" -print # más recientes que hace un año
Con la siguiente orden buscamos en un conjunto de directorios( listado de ordenes de 2 letras que comienzan por la letra 'a'.
# find /sbin /usr/bin /usr/sbin -name a? -print
Con la siguiente orden buscamos ficheros según el tipo de fichero que sea.
# find /dev -type s -print # listado de los ficheros de tipo socket

# find /tmp -empty -print # listado de los ficheros vacíos
Espero les sea útil.