Inicio | Apuntes breves | Un poco sobre el uso de la línea de comandos. Usando e instalando ArgyllCMS

Un poco sobre el uso de la línea de comandos. Usando e instalando ArgyllCMS

Jueves, 15 de Noviembre de 2012 16:10

terminalA lo largo de los artículos que he ido publicando, con frecuencia hago referencia al uso de la línea de comandos como medio para comunicarnos con ciertas herramientas que no disponen de una interfaz gráfica o GUI (General User Interface). Dado que algunos lectores me han expresado sus dificultades para el uso de esta forma de trabajo.

El ejemplo planteado lo voy orientar a Mac Os X, pero se podría extrapolar a Linux, y hasta cierto punto a los entornos de Microsoft.

Para ejemplificar una situación concreta voy a referirme al uso de ArgyllCMS por línea de comandos.

Cuando descargamos la última versión de ArgyllCMS al descomprimir nos vamos a encontrar con una estructura de directorios:

  • ref, donde se contienen los archivos de referencia de algunas cartas, los archivos CHT que son las descripciones de la distribuciones de los parches de las principales de las cartas del mercado, y algunos otros recursos.
  • bin, que es donde están contenidos propiamente los archivos ejecutables, o binarios de ArgyllCMS
  • libusb1, son los drivers para los principales espectrofotómetros y colorímetros del mercado, sólo es intersantes para usuarios de Windows, los cuales deberan instalar dichos drivers para poder acceder a tu dispositivos.
  • doc, guarda la documentación del uso de ArgyllCMS

Para realizar las primeras pruebas podemos comenzar por acceder a la carpeta bin y ejecutar alguno de los binarios. Aunque primeramente hay que arrancar nuestra Terminal, la cual se suele encontrar en la carpeta de Utilidades de nuesto Mac OsX

La primera dificultad de los usuarios es conocer la ruta donde hemos guardado o descargado dicha carpeta, para ello hacemos un cmd+i sobre la carpeta en cuestión y en las propiedades del archivo se nos mostrará la ruta de la forma siguiente:

Ubicación: /Users/jpereira/Downloads/Argyll_V1.4.0

De esta forma desde nuestra terminal podemos usar el comando cd (Change Directory) para acceder a nuestra carpeta:

cd /Users/jpereira/Downloads/Argyll_V1.4.0/bin

De esta forma accederemos al interior de la carpeta “bin”.

Si ahora hacemos, por ejemplo un “ls -l” sacaremos el listado de archivos de nuestro directorio así como los permisos y usuarios de cada uno, si solo hiciésemos “ls” se mostrarían todos los archivos pero sin los permisos ni usuarios.

Por ejemplo si ahora hacemos:

./scanin 

Ejecutaremos la herramienta scanin, pero al no indicarle ningún parámetro nos alertará del error y nos indicará los parámetros disponibles y su uso:

Scanin, Version 1.3.4
  Author: Graeme W. Gill, licensed under the AGPL Version 3
usage: scanin [options] input.tif recogin.cht valin.cie [diag.tif]
  :- inputs 'input.tif' and outputs scanner 'input.ti3', or
usage: scanin -g [options] input.tif recogout.cht [diag.tif]
  :- outputs file 'recogout.cht', or
usage: scanin -o [options] input.tif recogin.cht [diag.tif]
  :- outputs file 'input.val', or
usage: scanin -c [options] input.tif recogin.cht scanprofile.[icc|mpp] pbase [diag.tif]
  :- inputs pbase.ti2 and outputs printer pbase.ti3, or
usage: scanin -r [options] input.tif recogin.cht pbase [diag.tif]
  :- inputs pbase.ti2+.ti3 and outputs pbase.ti3
 -g                   Generate a chart reference (.cht) file
  -o                   Output patch values in .val file
  -c                   Use image to measure color to convert printer pbase .ti2 to .ti3
  -ca                  Same as -c, but accumulates more values to pbase .ti3
  from subsequent pages
  -r                   Replace device values in pbase .ti2/.ti3
  Default is to create a scanner .ti3 file
  -F x1,y1,x2,y2,x3,y3,x4,y4
  Don't auto recognize, locate using four fiducual marks
  -p                   Compensate for perspective distortion
  -a                   Recognise chart in normal orientation only (-A fallback as is)
  Default is to recognise all possible chart angles
  -m                   Return true mean (default is robust mean)
  -G gamma             Approximate gamma encoding of image
  -v [n]               Verbosity level 0-9
  -d [ihvglLIcrsonap]    Generate diagnostic output (try -dipn)
  i                diag - B&W of input image
  h                diag - Horizontal edge/tick detection
  v                diag - Vertical edge/tick detection
  g                diag - Groups detected
  l                diag - Lines detected
  L                diag - All lines detected
  I                diag - lines used to improve fit
  c                diag - lines perspective corrected
  r                diag - lines rotated
  s                diag - diagnostic sample boxes rotated
  o                diag - sample box outlines
  n                diag - sample box names
  a                diag - sample box areas
  p                diag - pixel areas sampled
  -O outputfile Override the default output filename & extension.

Si nos fijamos en la primera parte de esta ayuda, se nos indica cómo debemos colocar la secuencia de parámetros para que nuestra herramienta los entienda de forma adecuada:

usage: scanin [options] input.tif recogin.cht valin.cie [diag.tif]

¿Qué quiere decir esto?

1º llamamos al programa, veremos más tarde porque en este ejemplo no usamos “./” para ejecutar la herramienta.

2º [options] nos dice que en esta parte vamos a escribir las opciones o parámetros disponibles (atención a las mayúsculas y minúsculas en la sintaxis), de esta forma podríamos escribir en esta zona:

scanin -o -a

3º La tercera opción es nuestro archivo tiff de forma que:

scanin -o -a miImagen.tiff

Y en este punto, se nos plantea la necesidad de familiarizarnos con el trazado de rutas hasta nuestros archivos, de esta forma si sólo escribimos “miImagen.tiff”, sería el caso, de que nuestra imagen se encuentra en el directorio en el que nos hemos ubicado previamente con “cd”

Si la imagen estuviese en un directorio superior tendríamos que hacer:

../miImagen.tiff

Si por la contra nuestra imagen esta en otra parte de nuestro disco habrá que trazar la ruta absoluta de forma que:

/Users/jpereira/Desktop/miImagen.tiff

Esto plantea con frecuencia la dificultad o el tedio que llegar ha escribir o determinar la ruta correcta. Para ello todas la terminales disponen de la característica de poder autocompletar rutas usando la tecla de tabulación, de forma que si tecleamos “/Us” y pulsamos tabular, esta se completará a /Users/, si por la contra no tenemos claro como seguir la ruta, si pulsamos varias veces tabular, se nos mostraran las posibles alternativas, de esta forma nos evitamos cometer errores a la hora de escribir una ruta. Si al escribir una ruta, tabular, no es capaz de completarla, quiere decir que existe algún problema en nuestra sintaxis.

Si continuamos interpretando la secuencia de parámetros de nuestra terminal vemos que nos toca definir “recogin.cht valin.cie”, estos archivos son por una parte la descripción de nuestra carta de color (-cht) y el archivo de referencia con los datos colorimétricos de nuestra carta (.cie).

Estos archivos, o parte de ellos se encuentran en el directorio “ref” que se encuentra en un nivel superior por tanto podríamos tener la siguiente situación:

scanin -o -a /Users/jpereira/Desktop/miImagen.tiff ../ref/ColorChecker.cht ../ref/ColorChecker.cie

Por último nos queda definir las características del archivo diag.tiff, indicar que siempre que las instrucciones estén entre corchetes ”[...]” se esta indicando que se trata de algo opcional, por lo que podemos dejarlo sin definir (no poner nada)

De esta forma podemos tener:

scanin -o -a /Users/jpereira/Desktop/miImagen.tiff ../ref/ColorChecker.cht ../ref/ColorChecker.cie -dioa

Esto indica que al parámetro “-d” se le concatenan los artributos, i,o y a cuya explicación se muestra en la ayuda. Siempre que un parámetro solicite algún artibuto este se expone a continuación, algunas herramientas solicitan que se concatene, y otras puede estar separado por un espacio, por ejemplo “-G 2.2”

Como vemos, aun que un poco tedioso, la línea de comandos no exige mucho más que leerse la documentación de cada herramienta.

¿Como instalar estas herramientas en nuestro SO?

Un problema común cuando se empieza con la línea de comandos es que cada vez que queremos usar una herramienta hay que navegar hasta la carpeta donde se encuentra. Esto realmente no debería ser así, ya que o podemos instalar estas herramientas o  binarios en nuestro sistema, o introducir la ruta a este directorio en nuestro perfil con el fin de que la terminal busque en determinada ruta cada vez que solicitemos una herramienta.

Yo personalmente tengo instaladas las herramientas en el sistema, así me ahorro tenerlas desperdigadas por mi disco, para lo cual es mejor tenerlas instaladas en la carpeta /usr/bin/ Como este directorio suele estar incluido en el Path, o perfil de nuestra terminal cada vez que solicitemos una herramienta bastará con escribir su nombre o parte de este y autocompletarlo con tabular para que este disponible. Para copiar la distribución de ArgyllCMS al /usr/bin/ debemos hacer:

sudo cp -r /Users/jpereira/Downloads/Argyll_V1.4  /usr/bin/

De esta sentencia, hay que explicar varias cosas: por una parte el parámetro “sudo” encargado de autenticarnos como superusuario, al usar sudo se nos solicitará a continuación nuestra constraseña de administrador del sistema, en Linux, siempre existe un superusuario, pero a veces en Mac no tiene por que estar creado, para usar el comando sudo, siempre tenemos que tener esta contraseña correctamente definida. El siguiente comando es “cp” (copy) con el atributo “-r” que indica un copiado recursivo, imprescindible cuando se copian directorios para poder copiar todo lo que hay dentro de ellos. Si no queremos complicarnos copiando nuestras herramientas a lo más profundo de nuestro sistema, podemos moverlas a cualquier otro directorio y usar el archivo .profile que explico más adelante para localizarlas fácilmente.

Normalmente esto debería permitir que con escribir el nombre de nuestra herramienta esta ya esté disponible, sin embargo lo más habitual para que esto funcione es que copiemos todas las herramientas de Argyll a la raíz de /usr/bin/, pero esto crearía un cierto desorden en este directorio, lo mejor es dejar todas las herramientas relacionadas en un mismo directorio (por si un día las queremos eliminar), para ello debemos describir la ruta al archivo .profile:

 /Users/jpereira/.profile

En Linux suele ubicarse en la ruta

/home/jose/.profile

Personalmente para editar archivos por terminal yo siempre uso el editor “vim” de forma que bastaría hacer un:

vim /Users/jpereira/.profile

Vim se trata de un editor de texto plano, incluido en casi todos los entornos Unix como Mac OsX o Linux, y que presenta una cierta aspereza a la hora de familiarizarnos con nuestro uso, por lo que los usuarios poco iniciados pueden ejecutar nuestro Textedit:

/Applications/TextEdit.app/Contents/MacOS/TextEdit /Users/jpereira/.profile

Desde aquí podemos añadir las siguiente ruta:

export PATH=$PATH:/usr/bin/Argyll_V1.4/

Si no queremos instalar nuestras herramientas en la raíz de nuestro sistema, podemos usar el archivo .profile para indicar la ubicación del directorio que contiene unas herramientas particulares

Una vez que nuestras herramientas están localizables a través del PATH, ya no es necesario ejecutarlas con “./miherramienta”, basta escribir el nombre de de la herramienta en la terminal.

Conclusiones:

Cómo vemos, aun que pueda parecer un tanto complejo el uso de nuestra terminal, acaba convirtiéndose en algo trivial en el día a día de nuestro trabajo en cuanto nos familiaricemos con los comandos básicos y los parámetros básicos de nuestras herramientas.

Hay que prestar atención, a que cuando trabajamos en la raíz de nuestro sistema con el comando “sudo” tenemos permisos, para borrar cualquier archivo o directorio vital para el funcionamiento de nuestro SO, por lo que debemos se un poco cautos.

Una de las dificultades más habituales del usuario no iniciado es orientarse con la navegación por directorios con el comando “cp” y el concepto de ruta relativa y ruta absoluta, es conveniente hacer algunas prácticas junto con el comando “ls” para coger cierta habilidad en los movimientos por nuestro sistema de archivo.

x-rite Professional LED Lighting, DSLR Support and Accessories for Photo and Video BabelColor asociacion española de imagen cientifica y forense