Raspberry Pi® a fondo para desarrolladores. Derek Molloy
Чтение книги онлайн.

Читать онлайн книгу Raspberry Pi® a fondo para desarrolladores - Derek Molloy страница 41

Название: Raspberry Pi® a fondo para desarrolladores

Автор: Derek Molloy

Издательство: Bookwire

Жанр: Математика

Серия:

isbn: 9788426727800

isbn:

СКАЧАТЬ el primer caso se reproduce una cadena de texto sencilla. En el segundo caso, las comillas," ", representan un comando emitido dentro de la llamada echo, y en el último caso se repite (echo) la variable de entorno PATH.

      El comando echo nos permite también contemplar el estado de la salida de un comando usando $?. Por ejemplo:

      pi@erpi ~ $ ls /tmp

      args.txt a.txt b.txt c.txt playlist playlist.txt

      pi@erpi ~ $ echo $?

      0

      pi@erpi ~ $ ls /nosuchdirectory

      ls: cannot access /nosuchdirectory: No such file or directory

      pi@erpi ~ $ echo $?

      2

      Claramente, el estado de salida para ls es 0 para una llamada con éxito, y 2 para un argumento no válido. Esto puede resultar útil cuando escribimos scripts y programas propios que devuelven un valor desde la función main().

      El comando cat (concatenation, concatenar) nos facilita la unión de dos archivos desde la línea de comandos. El ejemplo siguiente usa echo para crear dos archivos, a.txt y b.txt. Luego, cat los concatena para crear uno nuevo, c.txt. Debemos utilizar el parámetro -e si queremos habilitar la interpretación de los caracteres de escape en la cadena que se pase a echo

      pi@erpi ~ $ cd /tmp

      pi@erpi /tmp $ echo "hello" > a.txt

      pi@erpi /tmp $ echo -e "from\nthe\nRPi" > b.txt

      pi@erpi /tmp $ cat a.txt b.txt > c.txt

      pi@erpi /tmp $ more c.txt

      hello

      from

      the

      RPi

      El comando diff nos facilita la búsqueda de diferencias entre dos archivos. Ofrece una salida básica:

      pi@erpi /tmp $ echo -e "dog\ncat\nbird" > list1.txt

      pi@erpi /tmp $ echo -e "dog\ncow\nbird" > list2.txt

      pi@erpi /tmp $ diff list1.txt list2.txt

      2c2

      < cat

      ---

      > cow

      El valor 2c2 en la salida indica que la línea 2 del primer archivo ha cambiado (changed) a la línea 2 del segundo, y que el cambio es cat a cow. El carácter a significa añadido o anexado (appended), y el d, borrado (deleted). Para una comparación lado a lado podemos usar lo siguiente:

      pi@erpi /tmp $ diff -y -W70 list1.txt list2.txt

      dog dog

      cat | cow

      bird bird

      donde -y habilita la vista lado a lado y -W70 establece la anchura del texto que se muestra en la pantalla en 70 caracteres (columnas).

      Si queremos utilizar una vista para las diferencias entre dos archivos más intuitiva, pero exigente, podemos usar el comando vimdiff (instalado mediante sudo apt install vim), que muestra una comparación lado a lado de los archivos usando el editor de texto vim (Vi IMproved). Escribimos vimdiff list1.txt list2.txt y usamos la secuencia de teclas vim: Escape : q ! dos veces para salir, o bien Escape : w q para guardar los cambios y salir. Vim requiere mucha práctica para dominar las secuencias de teclas.

      El comando tar es una utilidad para combinar archivos y directorios en un solo archivo (como un archivo zip descomprimido). Este archivo puede ser comprimido para ahorrar espacio. Para archivar y comprimir directorios o archivos, como /tmp, escribimos:

      pi@erpi ~ $ tar cvfz tmp_backup.tar.gz /tmp

      donde c significa nuevo archivo, v mostrar (verbose) el listado de archivos, z comprimir con gzip y f indica que lo que sigue es el nombre de archivo. También podemos encontrarnos la extensión .tar.gz representada como .tgz. Véase la tabla 3-7 para más ejemplos.

      Tabla 3-7: Comandos útiles de tar.

ComandoDescripción
tar cvfz name.tar.gz /tmpComprimir en formato gzip.
tar cvfj name.tar.bz2 /tmpComprimir en formato bzip2, que generalmente tarda más pero genera archivos más pequeños. Introduzca cada comando de esta tabla en una sola línea.
tar cvfJ name.tar.xz /tmpComprimir en formato xz (usado en los archivos de paquete .deb).
tar xvf name.tar.*Descomprimir archivo comprimido (x indica extraer). Detectará automáticamente el tipo de compresión, como gzip o bz2.
tar xvf name.tar.* /dir/fileExtrae un archivo de otro. También funciona para un solo directorio.
tar rvf name.tar filenameAñade otro archivo.
tar cfz name-$(date +%m%d%y).tar.gz /dir/filenameCrea un archivo con la fecha actual, opción útil para los scripts y para jobs de copia de respaldo. Observe que debe hacer un espacio entre date y +%m%d%y.

      El comando md5sum nos permite verificar el código hash que garantiza la integridad de los archivos y que no se han corrompido ni maliciosa ni accidentalmente. En el ejemplo siguiente descargamos la herramienta wavemon como paquete .deb, pero no la instalamos. El comando md5sum sirve para generar la suma de verificación (checksum) md5:

      pi@erpi ~ $ sudo apt-get download wavemon

      Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main

      wavemon armhf 0.7.6-2 [48.2 kB] Fetched 48.2 kB in 0s (71.4 kB/s)

      pi@erpi ~ $ ls -l *.deb

      -rw-r--r-- 1 root root 48248 Mar 28 2014 wavemon_0.7.6-2_armhf.deb

      pi@erpi ~ $ md5sum wavemon_0.7.6-2_armhf.deb

      1dffa011736e25b63a054f1515d18b3e wavemon_0.7.6-2_armhf.deb

      Ahora podemos comprobar la suma de verificación obtenida frente a la oficial para asegurarnos de que tenemos un archivo válido. Desgraciadamente, puede resultar difícil encontrar las sumas de verificación de cada paquete en línea. Si tenemos instalado wavemon, las sumas de verificación estarán en /var/ lib/dpkg/info/wavemon.md5sums. Podemos instalar una utilidad en Debian llamada debsums para comprobar la integridad del archivo, así como de todas sus partes.

      pi@erpi ~ $ sudo apt install debsums wavemon

      pi@erpi ~ $ debsums wavemon_0.7.6-2_armhf.deb

      /usr/bin/wavemon OK

      /usr/share/doc/wavemon/AUTHORS OK

      /usr/share/doc/wavemon/NEWS.gz OK

      ...

      Si compilamos nuestros propios paquetes para distribuirlos, resultaría útil distribuir los archivos con la suma de verificación correspondiente para que los usuarios СКАЧАТЬ