martes, 23 de julio de 2013

Configurar escáner Acer 3300U en Debian

A veces los periféricos que habitualmente utilizamos dejan de funcionar como deberían. Me pasa con mi impresora multifunción Epson Stylus SX130, la cual desde hace poco deja al escanear una horrible franja negra vertical en cada documento resultante.

Recomendación: NUNCA consuman productos Epson.

Continúo. Ante tan desagradable contratiempo he tenido que recurrir a mi viejo escáner Acer S2 W 3300U, el cual nunca me defrauda. Ya no dispone de drivers para un Windows superior a XP pero para GNU/Linux la vieja solución que implementaba en mis primeros Ubuntu sigue siendo válida para Debian 6.

Lo primero que han de hacer es descargarse el fichero mirascanv403u10_bqe.zip con el firmware del Acer 3300U. Lo pueden descargar en su directorio /home por ejemplo. Desde el entorno de escritorio no debería haber problema en descomprimirlo haciendo doble clic, y ahí es donde designarán el lugar donde lo ubicarán. Esta operación genera el directorio /MiraScan v4.03u10_BQE; si les parece complicado lo pueden renombrar desde Nautilus a /mirascan a secas y así evitan los problemas que puedan surgir de los espacios en el nombre del directorio.

Acto seguido nos posicionamos en el subdirectorio /BIN:

paco@debian:~/$ cd mirascan/BIN
paco@debian:~/ mirascan/BIN$

A continuación crearemos, de no existir, un subdirectorio llamado /snapscan dentro del directorio /usr/share/sane. Si ya existiera nos saltaríamos este paso:

paco@debian:~/ mirascan/BIN$ mkdir /usr/share/sane/snapscan
paco@debian:~/ mirascan/BIN$

Después copiaremos el archivo u176v046.bin, que encontraremos presente en /mirascan/BIN, que es donde estamos posicionados, y el cual contiene el firmware del Acer 3300U, al directorio recién creado (a menos que ya existiera):

paco@debian:~/ mirascan/BIN$ cp u176v046.bin /usr/share/sane/snapscan
paco@debian:~/ mirascan/BIN$

Luego editaremos con gedit, nano u otro editor de texto el archivo /etc/sane.d/snapscan.conf:

paco@debian:~/ mirascan/BIN$ nano /etc/sane.d/snapscan.conf

Buscaremos la siguiente línea (si no es igual será muy parecida):

firmware /usr/share/sane/snapscan/your-firmwarefile.bin

Y la sustituiremos por:

firmware /usr/share/sane/snapscan/u176v046.bin

Guardamos cambios en el archivo y ya podemos disfrutar de nuestro Acer 3300U con Xsane u otra aplicación para escáneres.

Información extraída de este viejo post del foro ubuntu-es.org.

Y ya que hemos hablado de escáneres aquí tenemos la escena más conocida del film de David Cronemberg Scanners (1981) en la que a uno de los personajes le estalla, literalmente, la cabeza.


miércoles, 17 de julio de 2013

Empaquetar y comprimir archivos

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Todo usuario de Windows conoce alguna de esas pequeñas aplicaciones existentes para comprimir y descomprimir ficheros que nos hacen más sencilla la tarea de enviar emails excesivamente pesados o archivar material sin que ocupe un tamaño desorbitado. En GNU/Linux tenemos los equivalentes de turno y de eso es lo que vamos ha hablar en esta entrada, pero solo de los más populares en Debian y derivados.

tar
Sería el comando parejo de los clásicos WinZip o WinRar de Windows, pero para ejecutar en la terminal de nuestro Linux. Aunque también puede comprimir se usa más como empaquetador, es decir, con él podemos empaquetar una serie de archivos y directorios en un solo fichero con extensión .tar respetando la misma estructura de origen al desempaquetar.
  • tar -cf archivo o archivos : crea (c) y nombra (f) fichero con los archivos designados.
  • tar -tf archivo :  para ver el contenido de un archivo .tar.
Veamos un ejemplo:

paco@debian:~/ pruebas$ ls
01    01.backup    01.ln    01.lnk    02    otros
paco@debian:~$ tar -cf pack.tar *
paco@debian:~/ pruebas$ tar -tf pack.tar
01
01.backup
01.ln
01.lnk
02
otros/

paco@debian:~/ pruebas$

Hemos hecho lo siguiente: primero hemos listado el contenido del directorio pruebas que es donde estamos posicionados, obteniendo como resultado cinco archivos (01, 01.backup, 01.ln, 01.lnk y 02) y un directorio (otros). Luego hemos empaquetado dicho contenido con el comando tar empleando las opciones de creación (-c) y denominación (-f) de archivo o fichero, a las que sigue el nombre del archivo a crear (pack.tar) y un asterisco que representa la totalidad del contenido del directorio pruebas (dentro de poco hablaremos de los caracteres comodín, similares a los de Windows). Después hemos listado el contenido del archivo de nueva creación pack.tar empleando las opciones -tf del comando tar para asegurarnos que están todos los archivos.
  • tar -rf archivo.tar archivo o archivos : para añadir los archivos designados al archivo .tar.
  • tar -xvf archivo.tar : para desempaquetar un archivo .tar (eXtrae, Visualiza la extracción mientras se produce y nombra el Fichero). Solo hay que mover el archivo al directorio donde queramos desempaquetarlos y al hacerlo la estructura de directorios, si la hubiere, se mantendría.
  • tar -xvwf archivo.tar : igual que la anterior pero añadiendo la opción -w (What) que da a elegir qué archivos se extraen y cuales no.
  • tar -c archivos | bzip > fichero.tar.bz2 : lo que hace es empaquetar los archivos en formato tar.bz2 y enviarlos mediante una tubería al comando bzip2 para que los comprima. Hablaremos de las tuberías en otra entrada más adelante.
gzip
Compresor de archivos que genera fichero en formato .gz.
  • gzip -9 archivo : para comprimir con el mayor factor de compresión posible (de 1 a 9).
  • gzip archivo.gz fichero o ficheros : para comprimir los ficheros designados en archivo con extensión .gz.
  • gzip -d : para descomprimir archivos .gz.
bzip
Compresor de archivos que trabaja con el formato .bz2.
  • bzip archivo.bz2 fichero o ficheros : para comprimir los ficheros designados en archivo con extensión .bz2.
  • bzip -d archivo : para descomprimir archivos .bz2.
zip
El clásico formato de Windows en GNU/Linux.
  • zip archivo.zip fichero o ficheros : para comprimir los ficheros designados en un fichero .zip.
  • unzip archivo.zip : para descomprimir un archivo .zip.
rar
Ídem al anterior.
  • rar archivo.rar fichero o ficheros : para comprimir los ficheros designados en un fichero .rar.
  • unrar archivo.rar : para descomprimir un archivo .rar.
Termino diciendo que si no se tuviera alguna de estas utilidades instalada solo había que teclear sudo apt-get install seguido del nombre del programa deseado para instalarlo al momento.

miércoles, 10 de julio de 2013

Ver el contenido de los archivos

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Lo que vamos a tratar ahora son los distintos comandos de que disponemos para visualizar el contenido de un archivo.

cat (concatenate)
Sirve para listar el contenido de un archivo. Sintaxis: cat nombre_de_archivo.
  • cat > archivo.txt : crea archivo.txt con el contenido que vayamos tecleando (Enter para saltar a siguiente línea y Ctrl + d para finalizar). Recordemos que la extensión no tiene otra finalidad que aclarar que tipo de archivo es, ya que el GNU/Linux no es necesaria, como ocurre en Windows.
  • cat archivo1 > archivo2 : crea archivo2 duplicando archivo1.
  • cat archivo1 archivo2 > archivo3 : crea archivo3 con el contenido de archivo1 y archivo2.
tac
Idéntico a cat pero comenzando por el final del archivo.

more
Lista el contenido de un archivo con pausas en caso de no entrar en pantalla en su totalidad. Especialmente indicado para archivo extensos (barra espaciadora para pasar a la siguiente pantalla).

less
Muy similar a more, lista el contenido de un archivo por páginas (barra espaciadora para pasar a la siguiente página, tecla B para volver hacia atrás).

head
Para ver las primeras líneas de un archivo.
  • head -5 archivo : visualiza las 5 (o las que el usuario quiera) primeras líneas de archivo.
tail
Para ver las últimas líneas de un archivo.
  • tail -7 archivo : visualiza las 7 últimas líneas de archivo.
  • tail +15 archivo : visualiza a partir de la línea 15 de archivo hasta el final.
touch
Comando para cambiar la fecha y la hora de un archivo.
  • touch -a : cambia la fecha y hora de acceso a la fecha actual.
  • touch -d --date=CADENA : emplea CADENA en sustitución de la fecha actual.
  • touch -m : cambia la fecha y hora de modificación a la fecha actual.
  • touch -t FECHA : utiliza FECHA en lugar de la fecha actual (en formato [[SS]AA]MMDDhhmm[ss] esto es, Siglo, Año, Mes, Día, hora, minutos, segundos).
Pero touch tiene otro uso: con él podemos crear ficheros de la nada, eso sí, sin contenido alguno.
  • touch archivo : crea archivo en caso de que no exista. Podemos crear varios archivo de una sola vez (touch archivo1 archivo2 archivo3 archivo4...).
du (disk usage)
Para ver el tamaño de un directorio y su posición en el árbol de directorios.
  • du -h : visualiza el tamaño de los directorios.
  • du -h directorio : visualiza el tamaño de directorio y de sus subdirectorios si los hubiere.
  • du -ah : visualiza el tamaño del directorio actual y de sus subdirectorios si los hubiere
  • du -ah directorio : visualiza el tamaño de los archivos y los directorios contenidos en directorio.
  • du -sh : visualiza el tamaño total del directorio actual.
  • du -sh directorio : visualiza el tamaño total de directorio.
echo
Muestra una cadena de texto dada.

paco@debian:~$ echo Hola a todos
Hola a todos
paco@debian:~$
  • echo -n : muestra una cadena de texto dada sin retorno de carro.
paco@debian:~$ echo -n Hola a todos
Hola a todospaco@debian:~$
  • echo $VARIABLE : visualiza el valor de VARIABLE (acerca de las variables hemos hablado aquí).
  • echo VARIABLE : tan solo muestra el texto VARIABLE.
>
El símbolo > vacía el contenido del archivo pero sin borrarlo. Sintaxis: > archivo.

martes, 9 de julio de 2013

Listado de archivos y directorios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Esta entrada se la vamos a dedicar a un comando que nos va a permitir visualizar tanto los directorios como los archivos que contienen. Se trata del comando ls.

ls (list)
Comando para listar archivos y directorios (equivalente al dir de MS-DOS).
  • ls -a : muestra también los archivos ocultos (cuyo nombre está precedido de un punto).
  • ls -A : omite los archivos ocultos del listado.
  • ls -B : omite los archivos de backup del listado.
  • ls --color=never : omite los colores distintivos en el listado.
  • ls --color=always : recupera los colores distintivos para el listado.
  • ls --color=auto : usa los colores distintivos solo para la salida estándar (la terminal).
Los colores por defecto para distinguir tipos de archivo (recordemos que en GNU/Linux TODO es tratado como si de un archivo se tratase) están consignados en la variable LS_COLORS. Tal vez hable de ello más adelante pero de momento basta con echar un ojo a este enlace para aclarar términos.
  • ls -l : realiza el listado aportando información detallada de cada archivo y directorio.
paco@debian:~$ ls -ltotal 64
drwxr-xr-x   2  paco  paco    4096  jul    8  13:10  Descargas
-rw-r--r--    1   paco  paco    4096  jul    8  00:39  DrgNo.she
(...)
paco@debian:~$

Seguidamente, explicamos la información que proporciona cada línea:

 - d: dignifica que Descargas es un directorio.
 - rwx: los tres primeros caracteres a continuación son los permisos de usuario del directorio Descargas.
 - r-x: después van los tres caracteres que establecen los permisos de grupo.
 - r-x: y luego van los tres caracteres que definen los permisos para otros usuarios.
 - 2: el nº de enlaces.
 - paco: es el nombre del usuario propietario del directorio Descargas (en cada ordenador saldrá un propietario distinto).
 - paco: es nombre del grupo propietario del directorio Descargas (ídem).
 - 4096: es el tamaño del directorio.
 - jul    8  13:10: fecha y hora de creación o modificación del directorio Descargas.
 - Descargas: nombre del directorio, que aparece en azul por defecto.

En la segunda línea vemos que ésta comienza con un guión. Esto es porque está describiendo un archivo en lugar de un directorio, en este caso el archivo DrgNo.she. Las líneas descriptivas de directorios comienzan con una d y las de archivos con un guión. El resto de caracteres tienen el mismo significado.

  • ls -s : muestra sin detallar el tamaño en megas de los archivos listados.
  • ls -t : muestra sin detallar los archivos de más actual a más antiguo.
  • ls -r : muestra sin detallar el resultado en orden alfabético inverso.
  • ls -m : muestra los ficheros sin detallar y separados por comas.
  • ls -x : muestra los ficheros sin detallar y en columnas ordenadas.
  • ls -R : muestra el contenido de los directorios con sus subdirectorios.
Por supuesto, las opciones de este comando son intercambiables y acumulables, como con cualquier comando en GNU/Linux. Por ejemplo:
  • ls -lr : muestra el resultado detallado en orden alfabético inverso

Hay más opciones pero aquí solo hemos tratado las más destacadas. Como siempre, conviene que cada uno experimente por su cuenta, explore las posibilidades del comando y acuda a ls --help o las páginas de man para cualquier consulta.

lunes, 8 de julio de 2013

Trabajando con archivos y directorios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Hoy veremos como manejarnos con archivos y directorios dentro de nuestro terminal Linux. Algunos de los comandos que vamos a ver recordarán a más de uno los del viejo MS-DOS, cosa que supondrá una facilidad añadida para más de uno.

pwd
Este comando sirve para saber en donde estamos posicionados en cada momento. Al teclearlo y pulsar enter nos devolverá el directorio en el que estamos ubicados, por si andamos un poco perdidos.

cp (copy)
Comando para copiar archivos. Sintaxis: cp archivo1 archivo2. Si queremos copiar un archivo desde nuestro directorio /home a otro directorio cualquiera se teclean las rutas absolutas.
Ejemplo: cp /home/paco/archivo1 /etc/archivo. Así hemos copiado archivo1 de /home/paco a /etc.

mv (move)
Este comando sirve tanto para mover archivos de sitio como para cambiarles el nombre. Para moverlos usaremos la misma sintaxis que con el comando cp y para renombrar lo haremos así: mv archivo1 archivo2. De este modo archivo1 pasa a llamarse archivo2.
  • mv -i: nos preguntará antes de sobreescribir archivo (si se da el caso).

rm (remove)
Simple y llanamente, para borrar archivos. Sintaxis: rm archivo1. Y archivo1 desaparece. opciones interesantes:
  • rm -f: borra archivos descartando lo no existente sin mostrar mensaje de error (mensaje que aparecería si quisiéramos eliminar un archivo inexistente sin emplear la opción -f).
  • rm -i: para borrar archivos preguntando antes uno por uno (el clásico ¿está ud. seguro?).
  • rm -r: elimina directorios de forma recursiva (borrando subdirectorios hasta no dejar nada).
  • rm -R: ídem.

shred
Más radical aunque más seguro que rm, ya que tras emplear este podemos recuperar lo borrado mediante herramientas específicas, pero con shred se destruye la información del archivo sin posibilidad de recuperación. Actúa sobreescribiendo el archivo las veces designadas (25 por defecto) haciéndolo ilegible al machacarlo con patrones de texto aleatorios. 
  • shred -u: también elimina el archivo.
  • shred -n 'X': aumenta el número de sobreescrituras 'X' veces.
  • shred 'partición': destruye el contenido de la partición designada (aquí hablamos de como se denominan las particiones en GNU/Linux).
  • shred -f: permite ejecutar el comando sobre un archivo sin permisos de escritura, siempre que uno sea propietario del mismo (tranquilidad, ya hablaremos de los permisos y los propietarios).
  • shred -v: muestra el patrón de caraceres empleado para sobreescribir.
  • shred -z: hace una última pasada de sobreescritura, al margen de las designadas, añadiendo un último patrón de ceros.

mkdir (make directory)
Comando para la creación de directorios. Podemos crear varios a la vez. Sintaxis: mkdir dir01 dir02 dir03 dir04...
  • mkdir -p: crea un árbol de subdirectorios.

rmdir (remove directory)
Para borrar directorios.
  • rmdir -p: elimina un árbol de directorios siempre que no tengan contenido alguno.

paste
Comando que devuelve las líneas de los ficheros designados escritas secuencialmente, separadas por tabulaciones. Sintaxis: paste archivo1 archivo2.
  • paste -s: muestra el contenido de los ficheros en línea en lugar de en paralelo.
  • paste -d: utiliza el carácter / como separador.

nl (number line)
Sirve para numerar las líneas de un archivo.

cut
Permite buscar y/o seleccionar columnas o campos dentro de un archivo estructurado para mostrarlas en el terminal.
  • cut -c nº_columna archivo: muestra los caracteres que estén en la columna designada de archivo.

Por hoy lo dejamos. Les aconsejo que practiquen todos estos comandos con sus opciones, las que aquí reseño y otras que no hemos visto. Consulten la ayuda del terminal (que vimos aquí) y cuidadito con el comando shred que lo carga el diablo.