Linux Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Contáctenos
  • LPI.org
3.1 Lección 1
Tema 1: La Comunidad Linux y una carrera en el mundo del código abierto
1.1 Los sistemas operativos populares y la evolución de Linux
  • 1.1 Lección 1
1.2 Principales aplicaciones de código abierto
  • 1.2 Lección 1
1.3 Software de Código Abierto y las licencias
  • 1.3 Lección 1
1.4 Destrezas TIC y el trabajo con Linux
  • 1.4 Lección 1
Tema 2: Encontrando el camino en un sistema Linux
2.1 Aspectos básicos de la línea de comandos
  • 2.1 Lección 1
  • 2.1 Lección 2
2.2 Uso de la línea de comandos para obtener ayuda
  • 2.2 Lección 1
2.3 Uso de directorios y listado de archivos
  • 2.3 Lección 1
  • 2.3 Lección 2
2.4 Crear, mover y borrar archivos
  • 2.4 Lección 1
Tema 3: El poder de la línea de comandos
3.1 Archivar ficheros desde la línea de comandos
  • 3.1 Lección 1
3.2 Buscar y extraer datos de los ficheros
  • 3.2 Lección 1
  • 3.2 Lección 2
3.3 Crear un script a partir de una serie de comandos
  • 3.3 Lección 1
  • 3.3 Lección 2
Tema 4: El sistema operativo Linux
4.1 La elección del sistema operativo
  • 4.1 Lección 1
4.2 Conocer el hardware del ordenador
  • 4.2 Lección 1
4.3 Donde los datos se almacenan
  • 4.3 Lección 1
  • 4.3 Lección 2
4.4 Tu ordenador en la red
  • 4.4 Lección 1
Tema 5: Seguridad y sistema de permisos de archivos
5.1 Seguridad básica e identificación de tipos de usuarios
  • 5.1 Lección 1
5.2 Creating Users and Groups
  • 5.2 Lección 1
5.3 Gestión de los permisos y la propiedad de los archivos
  • 5.3 Lección 1
5.4 Directorios y archivos especiales
  • 5.4 Lección 1
  1. Tema 3: El poder de la línea de comandos
  2. 3.1 Archivar ficheros desde la línea de comandos
  3. 3.1 Lección 1

3.1 Lección 1

Certificación:

Linux Essentials

Versión:

1.6

Tema:

3 El poder de la línea de comandos

Objetivo:

3.1 Archivar ficheros desde la línea de comandos

Lección:

1 de 1

Introducción

La compresión consiste en reducir la cantidad de espacio que consume un conjunto de datos específicos. Generalmente se utiliza para disminuir el espacio que se necesita para almacenar un archivo y para reducir la cantidad de datos que se envían a través de una conexión de red.

La compresión funciona reemplazando patrones repetitivos en los datos. Supongamos que tienes una novela. Algunas palabras son extremadamente comunes pero tienen múltiples caracteres, como la palabra “el”. Podría reducir el tamaño de la novela significativamente si reemplazara estas palabras y sus patrones comunes en un solo carácter. Por ejemplo, reemplace “el” con una letra griega que no se usa en ninguna otra parte del texto. Tomando el ejemplo anterior, se puede decir que los algoritmos de compresión tratan los datos de manera similar, pero de una forma más compleja.

La compresión tiene dos variantes, sin pérdida (lossless) y con pérdida (lossy). La información comprimida con un algoritmo "lossless", puede ser descomprimida en su forma original. Los datos comprimidos con un algoritmo "lossy" no pueden ser recuperados. Los algoritmos "lossy" se utilizan generalmente en imágenes, video y audio donde la pérdida de calidad es imperceptible para los seres humanos, irrelevante para el contexto o cuando se aprovecha una mejora en el rendimiento de la red.

Las herramientas de archivo (Archiving tools) se utilizan para agrupar archivos y directorios en un solo fichero. Algunos usos comunes son las copias de seguridad, la agrupación del código fuente y la retención de datos.

El archivo y la compresión se usan comúnmente juntos. Incluso algunas herramientas de archivo comprimen su contenido de forma predeterminada; otros pueden comprimir opcionalmente sus contenidos. Si desea comprimir el contenido se deben usar algunas herramientas de archivo junto con herramientas de compresión independientes.

La herramienta tar es la más común para archivar información en Linux. La mayoría de las distribuciones de Linux incluyen la versión GNU de tar, por lo que se tratará en esta lección. Por sí solo este programa archiva información sin usar compresión.

Existen muchas herramientas de compresión en Linux, algunas de las más comunes son bzip2, gzip, y xz. Es posible encontrar las tres en la mayoría de los sistemas, aunque pueden existir sistemas antiguos o muy mínimos donde xz o bzip no están instalados. Los usuarios regulares de Linux manejan archivos comprimidos con cualquiera de las tres herramientas, las tres usan algoritmos diferentes, por lo que un archivo comprimido con una herramienta no puede ser descomprimido por otra. La compresión trae consigo algunas desventajas; si se desea una tasa de compresión alta, tomará más tiempo para comprimir y descomprimir el archivo, ya que se requiere más procesamiento para encontrar patrones más complejos. Todas estas herramientas comprimen información pero no pueden crear archivos que contengan múltiples ficheros.

Las herramientas independientes de compresión generalmente no están disponibles en sistemas Windows. Las herramientas de compresión y archivado de Windows suelen estar juntas. Es importante tener esto en cuenta si se tienen sistemas Linux y Windows que necesiten compartir archivos.

Las herramientas zip y unzip están disponibles en sistemas Linux para manejar archivos .zip que comúnmente son usados en sistemas Windows. Estas herramientas no están instaladas por defecto en todos los sistemas, por lo que si se desea usarlas, necesitará realizar la instalación. Afortunadamente, se encuentran (típicamente) en los repositorios de las distribuciones.

Herramientas de compresión

La cantidad de espacio en disco que se ahorra al comprimir los archivos depende de varios factores: la naturaleza de los datos que se comprimen, el algoritmo utilizado para comprimir los datos y el nivel de compresión. No todos los algoritmos admiten diferentes niveles de compresión.

A continuación se configuran algunos archivos de prueba para comprimir:

$ mkdir ~/linux_essentials-3.1
$ cd ~/linux_essentials-3.1
$ mkdir compression archiving
$ cd compression
$ cat /etc/* > bigfile 2> /dev/null

Se crean tres copias de este archivo:

$ cp bigfile bigfile2
$ cp bigfile bigfile3
$ cp bigfile bigfile4
$ ls -lh
total 2.8M
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile2
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile3
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile4

Ahora se comprimen los archivos con cada una de las herramientas de compresión mencionadas:

$ bzip2 bigfile2
$ gzip bigfile3
$ xz bigfile4
$ ls -lh
total 1.2M
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile
-rw-r--r-- 1 emma emma 170K Jun 23 08:08 bigfile2.bz2
-rw-r--r-- 1 emma emma 179K Jun 23 08:08 bigfile3.gz
-rw-r--r-- 1 emma emma 144K Jun 23 08:08 bigfile4.xz

Compare los tamaños de los archivos comprimidos con el archivo sin comprimir denominado bigfile. Observe también cómo las herramientas de compresión agregaron extensiones a los nombres de archivo y eliminaron los archivos sin comprimir.

Para descomprimir los archivos se utilizan bunzip2, gunzip, o unxz:

$ bunzip2 bigfile2.bz2
$ gunzip bigfile3.gz
$ unxz bigfile4.xz
$ ls -lh
total 2.8M
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile2
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile3
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile4

Nuevamente se observa que el archivo comprimido se borra una vez que se descomprime.

Algunas herramientas soportan diferentes niveles de compresión, normalmente un nivel más alto requiere más memoria y ciclos de CPU, pero se obtiene un archivo comprimido más pequeño; lo contrario es cierto para un nivel más bajo. A continuación se muestra un ejemplo utilizando xz y gzip:

$ cp bigfile bigfile-gz1
$ cp bigfile bigfile-gz9
$ gzip -1 bigfile-gz1
$ gzip -9 bigfile-gz9
$ cp bigfile bigfile-xz1
$ cp bigfile bigfile-xz9
$ xz -1 bigfile bigfile-xz1
$ xz -9 bigfile bigfile-xz9
$ ls -lh bigfile bigfile-* *
total 3.5M
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile
-rw-r--r-- 1 emma emma 205K Jun 23 13:14 bigfile-gz1.gz
-rw-r--r-- 1 emma emma 178K Jun 23 13:14 bigfile-gz9.gz
-rw-r--r-- 1 emma emma 156K Jun 23 08:08 bigfile-xz1.xz
-rw-r--r-- 1 emma emma 143K Jun 23 08:08 bigfile-xz9.xz

No es necesario descomprimir un archivo cada vez que se necesite. Las herramientas de compresión, normalmente incluyen versiones especiales de aplicativos que son usados para leer archivos de texto, por ejemplo, gzip incluye una versión de cat, grep, diff, less, more, etc. Para gzip, las herramientas utilizan el prefijo z, mientras que el prefijo bz se usa para bzip2 y xz para xz. A continuación se muestra un ejemplo del uso de zcat para mostrar el contenido de un archivo comprimido con gzip:

$ cp /etc/hosts ./
$ gzip hosts
$ zcat hosts.gz
127.0.0.1	localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Archivadores

El programa tar es probablemente el archivador más utilizado en sistemas Linux. Su nombre proviene de la abreviatura de “tape archive”, ya que los archivos creados con tar se denominan a menudo como tar balls. Es muy común que el código fuente de las aplicaciones se distribuya en tar balls.

Las distribuciones de Linux que incluyen la versión GNU de tar tiene muchas opciones, esta lección cubrirá el subconjunto más utilizado.

A continuación se crea un archivo de los ficheros usados para la compresión:

$ cd ~/linux_essentials-3.1
$ tar cf archiving/3.1.tar compression

La opción c indica a tar que cree un nuevo archivo y la opción f el nombre del archivo a crear. El argumento que sigue después de las opciones siempre será el nombre del archivo con el que se va a trabajar. El resto de los argumentos son las rutas a cualquier fichero o directorio que se desee añadir, listar o extraer del archivo. En el ejemplo, se añade el directorio compression y todo su contenido al archivo comprimido.

Para ver el contenido de un archivo creado con tar, se utiliza la opción t:

$ tar -tf 3.1.tar
compression/
compression/bigfile-xz1.xz
compression/bigfile-gz9.gz
compression/hosts.gz
compression/bigfile2
compression/bigfile
compression/bigfile-gz1.gz
compression/bigfile-xz9.xz
compression/bigfile3
compression/bigfile4

Nótese cómo las opciones van precedidas de -. A diferencia de la mayoría de los programas, con tar, el - no es necesario cuando se especifican opciones, aunque no causa ningún problema si se usa.

Note

Se puede usar la opción -v para permitir que tar muestre los nombres de los archivos en los que opera cuando crea o extrae un archivo.

A continuación se extrae el archivo:

$ cd ~/linux_essentials-3.1/archiving
$ ls
3.1.tar
$ tar xf 3.1.tar
$ ls
3.1.tar  compression

Si se necesita solamente un fichero fuera del archivo comprimido, se puede especificar después del nombre del archivo y, si es necesario, se pueden especificar varios ficheros:

$ cd ~/linux_essentials-3.1/archiving
$ rm -rf compression
$ ls
3.1.tar
$ tar xvf 3.1.tar compression/hosts.gz
compression/
compression/bigfile-xz1.xz
compression/bigfile-gz9.gz
compression/hosts.gz
compression/bigfile2
compression/bigfile
compression/bigfile-gz1.gz
compression/bigfile-xz9.xz
compression/bigfile3
compression/bigfile4
$ ls
3.1.tar  compression
$ ls compression
hosts.gz

Con la excepción de las rutas absolutas (rutas que empiezan por /), los archivos tar conservan la ruta completa de los ficheros cuando son creados. Ya que el archivo 3.1.tar fue creado con un solo directorio, ese directorio será creado en relación a su directorio de trabajo actual cuando sea extraído. El siguiente ejemplo describe lo anterior:

$ cd ~/linux_essentials-3.1/archiving
$ rm -rf compression
$ cd ../compression
$ tar cf ../tar/3.1-nodir.tar *
$ cd ../archiving
$ mkdir untar
$ cd untar
$ tar -xf ../3.1-nodir.tar
$ ls
bigfile   bigfile3  bigfile-gz1.gz  bigfile-xz1.xz  hosts.gz
bigfile2  bigfile4  bigfile-gz9.gz  bigfile-xz9.xz
Tip

Si se desea utilizar la ruta absoluta en un archivo tar, se debe usar la opción P. Es importante tener en cuenta que esta operación puede sobrescribir ficheros importantes y puede causar errores en el sistema.

El programa tar también puede gestionar la compresión y descompresión de archivos sobre la marcha. tar lo hace llamando a una de las herramientas de compresión presentadas anteriormente. Es tan simple como añadir la opción apropiada para el algoritmo de compresión. Las más utilizadas son j, J, y z para bzip2, xz, y gzip, respectivamente. A continuación se muestran ejemplos utlizando los algoritmos mencionados anteriormente:

$ cd ~/linux_essentials-3.1/compression
$ ls
bigfile   bigfile3  bigfile-gz1.gz  bigfile-xz1.xz  hosts.gz
bigfile2  bigfile4  bigfile-gz9.gz  bigfile-xz9.xz
$ tar -czf gzip.tar.gz bigfile bigfile2 bigfile3
$ tar -cjf bzip2.tar.bz2 bigfile bigfile2 bigfile3
$ tar -cJf xz.tar.xz bigfile bigfile2 bigfile3
$ ls -l | grep tar
-rw-r--r-- 1 emma emma  450202 Jun 27 05:56 bzip2.tar.bz2
-rw-r--r-- 1 emma emma  548656 Jun 27 05:55 gzip.tar.gz
-rw-r--r-- 1 emma emma  147068 Jun 27 05:56 xz.tar.xz

Nótese que los archivos .tar tienen tamaños diferentes, esto demuestra que fueron comprimidos satisfactoriamente. Si se crean archivos .tar comprimidos, siempre se debe añadir una segunda extensión de archivo que indique el algoritmo utilizado: .xz, .bz, y .gz para xz, bzip2, y gzip, respectivamente. También es posible utilizar extensiones más cortas como .tgz.

Es posible añadir ficheros a archivos tar sin comprimir. Para esto se utiliza la opción u. Si se intenta añadir a un archivo comprimido, se obtendrá un error.

$ cd ~/linux_essentials-3.1/compression
$ ls
bigfile   bigfile3  bigfile-gz1.gz  bigfile-xz1.xz  bzip2.tar.bz2  hosts.gz
bigfile2  bigfile4  bigfile-gz9.gz  bigfile-xz9.xz  gzip.tar.gz    xz.tar.xz
$ tar cf plain.tar bigfile bigfile2 bigfile3
$ tar tf plain.tar
bigfile
bigfile2
bigfile3
$ tar uf plain.tar bigfile4
$ tar tf plain.tar
bigfile
bigfile2
bigfile3
bigfile4
$ tar uzf gzip.tar.gz bigfile4
tar: Cannot update compressed archives
Try 'tar --help' or 'tar --usage' for more information.

Gestión de archivos ZIP

Los sistemas Windows generalmente no tienen aplicaciones para manejar archivos .tar, o muchas de las herramientas de compresión que se encuentran comúnmente en los sistemas Linux. Si se necesita interactuar con sistemas Windows, se pueden utilizar archivos ZIP. Los archivos ZIP son similares a los tar comprimidos.

Los programas zip y unzip pueden ser usados para trabajar con archivos ZIP en sistemas Linux. El ejemplo a continuación muestra lo necesario para comenzar a utilizarlos. Primero se crean un conjunto de ficheros:

$ cd ~/linux_essentials-3.1
$ mkdir zip
$ cd zip/
$ mkdir dir
$ touch dir/file1 dir/file2

A continuación se utiliza zip para empaquetar estos ficheros en un archivo ZIP:

$ zip -r zipfile.zip dir
  adding: dir/ (stored 0%)
  adding: dir/file1 (stored 0%)
  adding: dir/file2 (stored 0%)
$ rm -rf dir

Finalmente, se descomprime el archivo ZIP:

$ ls
zipfile.zip
$ unzip zipfile.zip
Archive:  zipfile.zip
   creating: dir/
 extracting: dir/file1
 extracting: dir/file2
$ find
.
./zipfile.zip
./dir
./dir/file1
./dir/file2

Cuando se agregan directorios a archivos ZIP, la opción -r permite que zip incluya el contenido de un directorio. Si no se especifica esa opción se incluyen directorios vacíos en el archivo ZIP.

Ejercicios guiados

  1. ¿Cuáles de las siguientes herramientas se usaron para crear estos archivos?

    Nombre de archivo tar gzip bzip2 xz

    archive.tar

    archive.tgz

    archive.tar.xz

  2. ¿Cuáles de estos ficheros son archivos y cuáles son comprimidos?

    Nombre de archivo Archivado Comprimido

    file.tar

    file.tar.bz2

    file.zip

    file.xz

  3. ¿Cómo se añadiría un fichero a un archivo tar comprimido con gzip?

  4. ¿Qué opción de tar permite incluir el / inicial en rutas absolutas?

  5. ¿La herramienta zip soporta diferentes niveles de compresión?

Ejercicios exploratorios

  1. ¿Es posible utilizar comodines utilizando tar al extraer archivos?

  2. ¿De qué forma se asegura que un fichero descomprimido sea idéntico al fichero antes de ser comprimido?

  3. ¿Qué sucede si se intenta extraer un fichero de un archivo tar que ya existe en el sistema de ficheros?

  4. ¿Cómo es posible extraer el archivo archive.tgz sin utiliza la opción z de tar?

Resumen

Los sistemas Linux incluyen varias herramientas de compresión y archivado, esta lección cubre las más comunes. La herramienta de archivado más común es tar. Si es necesario interactuar con sistemas Windows, zip y unzip pueden crear y extraer archivos ZIP.

El comando tar tiene algunas opciones que vale la pena memorizar: x para extraer, c para crear, t para ver el contenido, y u para agregar o reemplazar archivos. La opción v muestra los archivos que son procesados por tar mientras se crea o extrae un archivo.

Generalmente los repositorios de distribuciones de Linux incluyen muchas herramientas de compresión, las más comunes son gzip, bzip2, y xz. Los algoritmos de compresión generalmente soportan diferentes niveles que permiten optimizar el proceso según la velocidad o el tamaño del archivo. Los archivos pueden descomprimirse utilizando gunzip, bunzip2, y unxz.

Las herramientas de compresión generalmente incluyen programas que se comportan como herramientas comunes de archivos de texto, con la diferencia de que funcionan con archivos comprimidos, algunos ejemplos de estas son zcat, bzcat y xzcat. Las herramientas de compresión suelen incluir programas con la funcionalidad de grep, more, less, diff, y cmp.

Comandos utilizados en los ejercicios:

bunzip2

Descomprime un archivo comprimido con bzip2.

bzcat

Muestra el contenido de un archivo comprimido con bzip.

bzip2

Comprime archivos usando el algoritmo y formato bzip2.

gunzip

Descomprime un archivo comprimido con gzip.

gzip

Comprime archivos usando el algoritmo y formato gzip.

tar

Crea, actualiza, lista y extrae archivos tar.

unxz

Descomprime archivos comprimidos con xz.

unzip

Descomprime y extrae el contenido de un archivo ZIP.

xz

Comprime archivos usando el algoritmo y formato xz.

zcat

Muestra el contenido de un archivo comprimido con gzip.

zip

Crea y comprime archivos ZIP.

Respuestas a los ejercicios guiados

  1. ¿Cuáles de las siguientes herramientas se usaron para crear estos archivos?

    Nombre de archivo tar gzip bzip2 xz

    archive.tar

    X

    archive.tgz

    X

    X

    archive.tar.xz

    X

    X

  2. ¿Cuáles de estos ficheros son archivos y cuáles son comprimidos?

    Nombre de archivo Archivado Comprimido

    file.tar

    X

    file.tar.bz2

    X

    X

    file.zip

    X

    X

    file.xz

    X

  3. ¿Cómo se añadiría un fichero a un archivo tar comprimido con gzip?

    Se descompime el archivo con gunzip, y se añade el fichero con tar uf, y por último se comprime con gzip.

  4. ¿Qué opción de tar permite incluir el / inicial en rutas absolutas?

    La opción -P. De la página de man:

    -P, --absolute-names
            Don't strip leading slashes from file names when creating  archives
  5. ¿La herramienta zip soporta diferentes niveles de compresión?

    Sí. Utilizando la opción -#, se sustituye # con un número del 0 al 9. De la página de man:

    -#
    (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
            Regule la velocidad de compresión usando el dígito especificado #,
            donde -0 indica que no hay compresión (almacena todos los archivos), -1 indi‐
            proporciona la velocidad de compresión más rápida (menos compresión) y -9
            indica la velocidad de compresión más lenta (compresión óptima,
            ignora la lista de sufijos). El nivel de compresión predeterminado es -6.
    
                   Aunque todavía se está trabajando, la intención es que esta configuración
            controle la velocidad de compresión para todos los métodos de compresión.
            Actualmente solo se controla la deflación.

Respuestas a los ejercicios exploratorios

  1. ¿Es posible utilizar comodines utilizando tar al extraer archivos?

    Sí, utilizando la opción --wildcards. --wildcards debe especificarse a continuación del archivo tar cuando no se utilice - en las opciones. Por ejemplo:

    $ tar xf tarfile.tar --wildcards dir/file*
    $ tar --wildcards -xf tarfile.tar dir/file*
  2. ¿De qué forma se asegura que un fichero descomprimido sea idéntico al fichero antes de ser comprimido?

    No se necesita nada adicional al utilizar las herramientas presentadas en esta lección. Las tres incluyen checksums en el formato de archivo los cuales son verificados en el proceso de descompresión.

  3. ¿Qué sucede si se intenta extraer un fichero de un archivo tar que ya existe en el sistema de ficheros?

    El fichero se sobrescribe con la versión incluída en el archivo tar.

  4. ¿Cómo es posible extraer el archivo archive.tgz sin utiliza la opción z de tar?

    Descomprimiéndolo primeramente con gunzip.

    $ gunzip archive.tgz
    $ tar xf archive.tar

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

3.2 Buscar y extraer datos de los ficheros (3.2 Lección 1)

Leer la próxima lección

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© Copyright 1999-2020 The Linux Professional Institute Inc. Todos los derechos reservados.