segunda-feira, 9 de outubro de 2017

Usos para shell script

Uma pergunta comum para quem está iniciando no mundo do shell script é, para que?

Majoritariamente, um script de shell é criado para automatizar tarefas comuns, como fazer backup de um diretório.

Elenco aqui alguns dos melhores usos que eu já fiz ou vi outros fazendo:

  • Automatizar o processo de instalação de um programa, baixando e instalando dependências se necessário: scripts de instalação são, provavelmente, os mais comuns.
  • Fazer backup do diretório home para um arquivo compactado e fazer upload para um servidor FTP.
  • Criar vários usuários no sistema de uma vez a partir de uma lista em um arquivo texto.
  • Excluir todos os arquivos vazios de um diretório recursivamente.
  • Mostrar informações sobre a placa de rede em formato amigável.
  • Converter todas as imagens PNG de um diretório para JPEG.
  • Criar miniaturas (thumbnails) de uma lista de imagens.
  • Gerenciar o firewall de uma forma (semi-)automática.
  • Contar a quantidade de linhas de códigos-fonte Java ignorando as linhas de comentários.
  • Você pode fazer praticamente qualquer coisa usando o shell!

Esta é uma lista incompleta do que pode ser feito com shell script.

Alguém pode dizer: posso usar a linguagem X ou Y para fazer qualquer coisa dessa lista! E é verdade, porém fazer em shell script é muito mais rápido e prazeroso :-D

Aprenda shell script

Apostila de Introdução ao Shell Script de Aurélio Marinho Jargas

Aurelio.net: shell

Papo de Botequim de Júlio Neves

sábado, 5 de abril de 2014

Por que o comando grep se chama assim?

Provavelmente muitos já ouviram falar algumas histórias sobre a origem do comando grep. A mais comum é que significa Global Regular Expression, que faz sentido. Em meus estudos recentes sobre conceitos de linguagens de programação eu acabei, por acaso, descobrindo outra história, que tem mais cara de ser a verdadeira.

Um problema quando era iniciante no Linux era saber o significado dos comandos e o grep realmente não tem um nome conotativo. O problema é que seu significado é melhor entendido para quem já usou o editor de textos ed (que nunca usei, mas já ouvi falar).

No ed, o comando /regular_expression/ faz uma busca no texto. Se o precedermos com g, faz a busca ser global, isto é, no arquivo inteiro, se adicionar um final um p isto indica que todas as linhas que casam com a expressão regular devem ser impressas. Assim g/regular_expression/p, abreviado para grep ficou como indicação de buscas em arquivos.

Referências

[1] SEBESTA, Robert W. Conceitos de linguagens de programação. 9. ed. Porto Alegre: Bookman, 2011, p. 32.

terça-feira, 6 de agosto de 2013

Compilando builds diários do LibreOffice

Já faz algum tempo que quero participar de algum projeto de software livre. Da semana passada para cá eu decidi me juntar ao desenvolvimento do LibreOffice.

Primeira tarefa para me tornar um iniciado: executar a compilação completa do pacote.

Tamanho da tarefa

Para se ter uma ideia, segundo a página do LibreOffice Brasil uma compilação completa pode demorar assustadoras 8 horas, com todos os núcleos do processador a 100%.

No meu caso, que o meu computador é um modesto Core 2 Duo T6600 2.20GHz com 4 GB de RAM, demorou quase 5 horas (exatas 4 horas e 52 minutos). Não foi tão ruim, acho que o pessoal usou como base computadores bem mais modestos.

Preparação do ambiente

Considerando o meu ambiente, que é um Kubuntu Linux 12.04, eu precisei primeiro baixar as dependências de compilação. Isso é facilmente feito executando no shell:

terça-feira, 12 de março de 2013

Manga Guide: uma nova geração de livros técnico-científicos?

Que tal se estudar fosse mais divertido, tal como ler histórias em quadrinhos? Esta é justamente a proposta por trás do Manga Guide (traduz-se Guia Mangá).

Primeiramente, para quem não sabe, manga (lê-se mangá) é a palavra japonesa para histórias em quadrinhos. Já o Manga Guide é uma série criada no Japão feita em conjunto com artistas e escritores técnicos. Atualmente já existe 10 livros escritos com assuntos como Cálculo, Física, Bioquímica, Estatística, Banco de Dados, entre outros (veja a imagem abaixo).

Todos são em inglês, traduzidos do japonês. Infelizmente não sei se um dia lançarão em português, mas sinceramente, a linguagem usada é fácil e direta. Além disso, é uma boa oportunidade para quem quer treinar um pouco o inglês.

domingo, 3 de março de 2013

O conceito de shell / O que é o shell

Existem muitos sites que abordam o mesmo que eu nesse post. E porque eu tô escrevendo um mais do mesmo? Porque considero o meu ponto de vista bom o suficiente para registrar.

Primeiramente, é interessante entender qual o significado da palavra shell. Entre outros significados do dicionário, significa parte externacasca ou concha.

Antes de aumentar o blá blá blá sobre os significados, o shell que eu estou abordando aqui é o shell usado nos sistemas tipo unix (Linux, AIX, Solaris, MacOS, etc) como a interface de comandos. Vou usar, para explicar, o Linux, que desses sistemas é o que tenho mais intimidade.