Alura > Cursos de DevOps > Cursos de Linux > Conteúdos de Linux > Primeiras aulas do curso Certificação Linux LPI Essentials: using the command line to get help

Certificação Linux LPI Essentials: using the command line to get help

Empacotar e comprimir - Entenda as diferenças - Apresentação

Boas-vindas à parte 4 do curso de preparação Linux LPI Essentials! Meu nome é Ricardo Merces e vou acompanhar você durante as aulas.

Audiodescrição: Ricardo é um homem branco careca, de sobrancelhas pretas, vestindo uma camisa cinza-escura. Ele está sentado em uma cadeira preta com detalhes em vermelho, em frente a uma parede clara iluminada em degradê de azul, com prateleiras brancas à esquerda.

Se você está chegando agora, estamos em uma jornada de módulo a módulo, seguindo o material original disponibilizado no site do Linux Professional Institute (LPI). Esse material cobre a primeira certificação do LPI, cujo título é Linux LPI Essentials.

O que vamos aprender?

Neste bloco 4, vamos focar bastante na questão de empacotamento e compressão de arquivos e diretórios. Além de conceituar, vamos trabalhar e lidar com vários exemplos. Existe uma diferença entre estas duas atividades, a qual abordaremos ao longo do curso.

Nos encontramos no próximo vídeo!

Empacotar e comprimir - Entenda as diferenças - Conceitos sobre compressão e empacotamento

Como mencionado na introdução do curso, vamos começar a trabalhar conceituando a questão de empacotar e comprimir arquivos e diretórios.

Conceitos sobre compressão e empacotamento

Pode ser que você venha do mundo Microsoft e tenha familiaridade, como muitas pessoas, com as ferramentas Zip. Com apenas um clique, tudo é resolvido no processo e o resultado é um arquivo .zip. Nos bastidores desse processo, ocorrem duas macro atividades:

  1. A primeira é reunir tudo o que foi selecionado em um único arquivo, conhecido como o processo de empacotamento, em que reunimos arquivos e diretórios dentro de uma cesta, formando um pacote;
  2. Depois, também nos bastidores, ocorre de forma transparente a compressão.

A ferramenta que geralmente usamos, como o Zip presente, por exemplo, no Windows, possui um algoritmo de compressão, que tenta, dentro do possível, compactar e também empacotar. A saída, isto é, o resultado de tudo isso, é o arquivo de extensão .zip.

Isso é feito de forma simples e efetiva. Como estamos estudando, chegaremos a um momento em que realizaremos tudo isso de uma única vez, mas a ideia é aprofundar nosso conhecimento.

Portanto, vamos trabalhar de forma separada inicialmente, compreendendo cada ferramenta, o que cada uma faz, e como as aplicamos corretamente.

Provavelmente, você já ouviu falar da ferramenta TAR, muito popular no ambiente Linux, responsável por realizar o empacotamento.

Outra série de ferramentas que estudaremos são o Gzip, o XZ, e o próprio Zip. Elas, dentre outras, realizarão o serviço de compressão dos arquivos.

Exercício prático

Uma vez entendido esse processo, vamos partir para o exercício prático. Como nosso primeiro objetivo, vamos seguir a linha de conceituação inicial.

Com o navegador aberto, vamos acessar a documentação A Quick Benchmark: Gzip vs. Bzip2 vs. LZMA. Nesta página, há um comparativo que é um benchmark sobre Gzip, Bzip2 e LZMA, e ele faz algumas análises, caso queira se aprofundar nisso.

É relevante pelo menos conhecer os algoritmos e a efetividade de cada um dentro da ferramenta.

De modo geral, a depender do algoritmo, teremos uma compressão muito maior. Em contrapartida, quanto mais comprimido for o arquivo, mais tempo o processo levará.

Pode parecer óbvio, mas é importante entender esse conceito, pois, de repente, para a atividade que você planeja, não é sempre a mesma ferramenta que será utilizada.

Podemos usar uma ferramenta mais rápida, por exemplo, ou outra que demora mais, mas fornece um arquivo menor. Portanto, é importante conhecer essa avaliação das ferramentas.

Há um estudo no link fornecido, com uma tabela de resultados que fornece um comparativo entre elas. Deixaremos isso para você como leitura adicional, para complementar seus estudos.

De volta ao terminal, já estamos na máquina virtual que usamos desde a primeira parte do curso, e vamos começar montando um cenário para trabalharmos.

Esse cenário é muito simples e vamos aplicar diretamente os conceitos sobre os quais você já tem conhecimento. Caso tenha alguma dúvida, consulte capítulos anteriores.

Na página inicial (home), criaremos a seguinte estrutura:

mkdir -p LPI/compressao

Lembrando que o comando -p faz com que o path (caminho) seja criado inteiro até chegar no destino LPI/compressao. Como o diretório "LPI" não existe, ele será criado e, em seguida, será criado o diretório "compressao" dentro de "LPI".

Para conferir se ele foi de fato criado, usamos o comando ls.

ls

Retorno do comando:

'Área de Trabalho'   Downloads   LPI       Música    snap   Vídeos
 Documentos          Imagens     Modelos   Público   teste

Feito isso, podemos executar o comando abaixo para então começar a trabalhar.

cd LPI/compressao/

Conclusão

Após entendermos os conceitos iniciais e resolvermos o primeiro ambiente, no próximo vídeo, começaremos a usar as ferramentas!

Empacotar e comprimir - Entenda as diferenças - Compactando arquivos com gzip, bzip2 e xz

Neste vídeo, vamos realizar nossa primeira atividade para compreender essas questões de algoritmo e ferramentas. Já fizemos algo semelhante no módulo 3 e iremos repetir nesta etapa.

Compactando arquivos com Gzip, Bzip2 e XZ

Te ajudaremos na preparação dos cenários e do uso das ferramentas, relembrando conceitos e unindo tudo em uma única linha de comando. Com isso, você poderá estudar o conteúdo atual e revisar o que já estudamos a algum tempo atrás.

Para explicar, usaremos um exemplo concreto.

Vamos considerar o seguinte cenário: precisamos comprimir um arquivo. Primeiramente, vamos te ensinar a usar a ferramenta necessária. Depois, vamos gerar esse arquivo.

Como poderíamos criar um arquivo? Vamos dar a você a seguinte tarefa: criar um arquivo contendo uma listagem de todos os arquivos e diretórios presentes no sistema. Interessante, não é? Faremos isso com ferramentas que já aprendemos a usar.

Primeiramente, vamos criar uma lista de diretório utilizando o comando ls, que lista os arquivos, e acrescentar o comando -R para listar de forma recursiva.

ls -R /

Dessa forma, serão listados todos os arquivos a partir do diretório raiz, descendo todos os níveis. Se executarmos o comando como está, o sistema começará a retornar erros em várias pastas às quais não possui permissão de acesso.

Para contornar este problema, vamos elevar nossos privilégios usando o comando sudo ao início da linha. Agora que a lista está pronta, vamos gerá-la, direcionando a saída (>) para um arquivo chamado listagem.

sudo ls -R / > listagem

Será solicitada uma senha, porque usamos o comando sudo. Após digitar a senha, é natural haver algumas pequenas reclamações, mas foi criado o arquivo.

Para verificar isso, usaremos o comando abaixo:

ls -l

Retorno do comando:

total 13284
-rw-rw-r-- 1 ricardo ricardo 13602799 ago  9 14:53 listagem

Com o comando ls -l, a saída é em blocos. Nesse caso, podemos utilizar o comando ls -lh para uma visualização mais amigável.

ls -lh

Retorno do comando:

total 13M
-rw-rw-r-- 1 ricardo ricardo 13M ago  9 14:53 listagem

O tamanho do arquivo é de 13MB, um valor razoável para as nossas atividades de compressão.

Em seguida, vamos copiar o arquivo listagem para lista-gzip, usando uma nomenclatura das ferramentas que iremos utilizar, com a finalidade de ilustrar a nossa atividade.

Não precisamos necessariamente manter esse nome para usar a ferramenta.

cp listagem lista-gzip

Feito isso, vamos copiar o arquivo listagem para lista-bzip2.

cp listagem lista-bzip2

Além disso, vamos copiar esse mesmo arquivo para lista-xz.

cp listagem lista-xz

Assim, quando aplicarmos as ferramentas, poderemos observar os resultados de maneira simplificada. Usando os comandos ls e ls -l, teremos os mesmos conteúdos como resultado, apenas com nomes diferentes.

Fazemos dessa forma para verificar como vai funcionar a compressão. Falamos anteriormente sobre algoritmos e cada um funciona de uma maneira específica, então é interessante visualizar isso na prática.

Vamos fazer o primeiro exemplo utilizando gzip, que é a ferramenta de compressão Gzip, seguido do nome do arquivo, que é lista-gzip.

gzip lista-gzip

Dessa maneira, comprimimos o arquivo lista-gzip com a ferramenta Gzip.

Faremos o mesmo com as outras ferramentas, então, vamos seguir com bzip2 e lista-bzip2.

bzip2 lista-bzip2

Talvez você perceba uma diferença sutil, pois ao executar o comando, demora um pouco mais que o gzip. Isso já aponta para tudo que falamos no início.

Para finalizar, faremos com a terceira ferramenta XZ, aplicando o comando xz lista-xz.

xz lista-xz

Ao observar a execução, percebe-se que essa ferramenta demora um pouco mais que as anteriores.

Resumindo a ideia, nós utilizamos ferramentas diferentes para executar a mesma atividade, sendo elas gzip, bzip2 e xz.

Conclusão

Agora que utilizamos essas três ferramentas, faremos uma pausa. Sugerimos que você repita os passos que foram realizados e refaça as atividades; assim, poderemos avançar juntos.

No próximo vídeo, vamos fazer uma análise e conversar sobre o efeito de cada ferramenta, dedicando uma atenção especial aos resultados obtidos. Retomaremos a partir deste ponto!

Sobre o curso Certificação Linux LPI Essentials: using the command line to get help

O curso Certificação Linux LPI Essentials: using the command line to get help possui 72 minutos de vídeos, em um total de 20 atividades. Gostou? Conheça nossos outros cursos de Linux em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Linux acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas