Archive

Posts Tagged ‘Unix’

Lidando com arquivos tar.gpg

August 17th, 2009 pvital 1 comment

Recebi um arquivo incomum (pelo menos para mim) hoje. Era um arquivo tar encriptado pelo GPG (GNU Privacy Guard – GNUPG). Como até então nunca tinha visto na vida um arquivo tar.gpg fui descobrir como tratar ele.

Primeiramente fui ler a man page do TAR e lá vi que não tinha uma opção mágica para a desencriptação e desempacotamento ao mesmo tempo, assim como acontece com arquivo tar.gz (utilizando a opção “-z”) ou tar.bz2 (utilizando a opção “-j”).

Sendo assim, fui atrás da man page do GPG. Lá descobri que existe uma opção chamada “–decrypt” ou “-d” que desencripta um arquivo GPG. Como sempre, afoito para executar o novo comando, nem li o resto e fui logo executando:

  1. raptor:~# gpg -d files.tar.gpg

Grande erro!!! Nem tão grande assim, mas foi uma newbada bem newba! Na execução toda a saída do comando foi para a saída padrão e meu terminal ficou bem sujinho com o “lixo”. Relendo a man page, vi que realmente a opção escreve no stdout caso a opção “–output” não seja passada. Ok! Dessa vez vai:

  1. raptor:~# gpg -d files.tar.gpg –output files.tar
  2. usage: gpg [options] –decrypt [filename]

Ok, ok! Primeiro as opções, depois o arquivo a ser desencriptado.

  1. raptor:~# gpg –output files.tar -d files.tar.gpg

Pronto!!! Ele pediu a senha para a desencriptação e o arquivo files.tar foi gerado. Depois disso é simples, bastando executar o comando do TAR para o desempacotamento:

  1. raptor:~# tar -xvf files.tar

E eis que pude ver os vídeos que o leobsd gravou durante minha aula de voo de aeromodelismo. :-D

Categories: Linux, Unix, portuguese Tags: , ,

Oito anos de Funções ZZ

March 4th, 2008 pvital No comments

Criadas em fevereiro de 2000, as Funções ZZ acabaram de completar oito anos de existência. Neste período, vários projetos livres nasceram e sumiram, mas as funções conseguiram perseverar. Para comemorar esta conquista, foi lançada a versão 8.3, repleta de novidades.

Esta versão nova é um divisor de águas no desenvolvimentos do programa. O código foi completamente rescrito, visando segurança, legibilidade e facilidade de manutenção. Com comentários em português e algoritmos simplificados, seu código-fonte é um prato cheio para estudantes de Shell Script. Está tudo muito claro, fácil de entender.

Outra grande mudança é que agora o UTF-8 é a codificação padrão das funções, garantindo seu funcionamento nos sistemas modernos e acabando de vez com os problemas de acentuação. Os usuários que ainda utilizam o ISO-8859-1 não foram esquecidos, pois há também uma versão especial que vai funcionar em seus sistemas.

Agora o funcionamento correto das funções é garantido por uma suíte de testes automatizada que conta com mais de 550 verificações, fazendo um controle de qualidade rigoroso. Uma equipe de voluntários roda estes testes em diversos sistemas, ajudando a encontrar e resolver problemas. Há também duas funções novas: zzbyte para conversões entre grandezas de bits e zztool para validação de textos e arquivos.

Para completar este processo de amadurecimento das funções, o seu site www.funcoeszz.net foi remodelado, ficando mais intuitivo e fácil de encontrar as informações. Que tal uma visita agora para conhecer melhor as funções?

Funções ZZ é um software livre 100% nacional que reúne dezenas (65 atualmente) de mini-aplicativos de linha de comando, que funcionam no Linux, Mac e Windows. São várias funções em shell Bash para cálculos com datas, validação de CPF/CNPJ, arrumar nomes de arquivos, gerar senha, buscar notícias na Internet, obter o resultado da Mega-Sena, consultar a Wikipédia, pesquisar no Google e traduzir textos, entre outras. A dupla de autores é Aurélio Marinho Jargas e Thobias Salazar Trevisan.

Automatic file templates in Vim

February 28th, 2008 pvital No comments

I’d like to share with you, a good post that my friend Alex Zanetti (trustlix) posted in our IBM internal Blog system.

He was trying to automatically add some fancy headers to the our projects *.py files. Searching a little, he discovered how do that using Vim, the text editor that we commonly use to develop.

To set up your Vim text editor to do the same thing, follow the points bellow:

  • Create a directory named .vim/styles, where you’ll add some skeleton files (template text files, each one for a file type):
    • mkdir -p ~/.vim/styles
  • In this directory create the skeleton.py file, with the desired content you’d like to add to every new python file:
    • vim ~/.vim/styles/skeleton.py
  1. # -*- encoding: utf-8 -*-
  2. # Copyright (C) <year> Your Company or Name.
  3. ###
  4. # Classes:
  5. # Author : Your name <your_email@domain>;
  6. # Descr. :
  7. # Created: <date>;
  8. # Updated:
  9. ###
  • After that, add the following lines into the ~/.vimrc file:
  1. "Headers for new files
  2. "——- PYTHON ——-
  3. :autocmd BufNewFile *.py 0r ~/style/skeleton.py
  4. :autocmd BufNewFile *.py   ks|call LastMod()|’s
  5. :fun LastMod()
  6. : if line("$") > 20
  7.    :   let l = 20
  8. : else
  9.    :   let l = line("$")
  10. : endif
  11. : exe "1," . l . "g/Created: /s/Created: .*/Created: " . strftime("%Y %b %d")
  12. : exe "2s/<year>/" . strftime("%Y")
  13. :endfun

The vimrc code above will:

  1. add the content of the skeleton file to every new *.py file created under vim;
  2. replace the “Created: ” string with the current system date;
  3. replace in the line 2 the “<year>” string with the current year.

To test it, type in your shell “vim blah.py”, and a new file called blah.py will be created with the content of the ~/.vim/styles/skeleton.py. In my case, the file created looks like:

  1. # -*- encoding: utf-8 -*-
  2. # Copyright (C) 2008 Paulo Vital.        
  3. ###
  4. # Classes:
  5. # Author : Paulo Vital <pvital at domain>;
  6. # Descr. :
  7. # Created: 2008 Jan 21;
  8. # Updated:
  9. ###

The nice thing is that you can do it differently for any type of file you want, like *.c or *.java, justing creating a new ~/styles/skeleton/ file and adding a new block of code in the ~/.vimrc file to work if those.