Mostrando postagens com marcador linux. Mostrar todas as postagens
Mostrando postagens com marcador linux. Mostrar todas as postagens

terça-feira, 3 de agosto de 2010

Procurando arquivos com o grep

Olá,

hoje me deparei com um problema, eu queria saber qual módulo Python estava importando um outro modulo, mas não tinha a mínima idéia de que módulo era esse ou onde ele estava. A única coisa que sabia era que, com certeza, ele era um arquivo de texto e tinha a seguinte string:
import modulo

Pesquisando encontrei uma solução muito, mas muito simples, o maravilhoso grep.
Vamos ao mundo mágico do shell:


$ grep -rin "string" /*

Esse comando retorna todas os arquivos de texto que contenham a string

/home/cleiton/arquivo.txt:7:  'Essa era a string que eu queria'
/etc/arquivo.conf:263: 'Outra string que o grep retornou'

Vamos as explicações:

grep

grep é um aplicativo para linha de comando de sistemas Unix/Linux que faz buscas no conteúdo dos arquivos (ou input) procurando linhas que respeitem a expressão regular mencionada.(Wikipédia)

-rin


São parametros do grep.

-r indica recursividade, ou seja, ele vai procurar em todos os arquivos de todos os subdiretórios.

-i indica que não será case-sensitive , ou seja, não fará distinção entre maiúsculas e minúsculas. Caso queira diferenciar, remova o i dos parametros.


-n adiciona o número da linha correspondente à string.


"string"


Indica a string a ser procurada. No meu caso, a "string" foi substituida por "import modulo".



/*

Indica o caminho do diretório onde serão "iniciadas as buscas". Nesse caso é para quem não faz a mínima ideia de onde o arquivo esteja, assim ele começa do diretório raiz. Caso saibam onde ele possa estar, como /usr/local/lib/, por exemplo, substitua o /* por /usr/local/lib/*.



Para alguns, poderia ser utilizado o find (para recursividade) com o sed (para procurar a strig por método de expressão regular). Mas seria um pouco mais complicado e meu objetivo era ser o mais simples e rápido possível. Além disso o grep atendeu perfeitamente minha necessidade.

Abraços.

segunda-feira, 15 de fevereiro de 2010

Software Livre, porque usar?

Olá Pessoal.

Hoje tratarei de um assunto que esta em alta, porque usar software livre ou porque migrar para ele.

Primeiramente, Software Livre é qualquer software que tenha como licença, a liberdade de usar, estudar, modificar e redistribuir esse software por parte de quem adquirir.
Portanto, ele deve ter seu código aberto para que outros possam usufruir dessas liberdades.
Muita gente confunde Software Livre com Software Grátis (FreeWare), o que não é correto, pois um Software Livre pode ser vendido e um FreeWare pode ser proprietário (distribuído sem o código fonte, o que geralmente acontece).

Mas então, qual a vantagem de um software livre, se ele pode ser pago?
A vantagem está em poder modificar o software conforme suas necessidades, sem necessitar pagar a terceiros, geralmente os criadores do software, para alterar o aplicativo a sua necessidade (claro que pode ser contratado esses serviços).
Outra vantagem é que, como sendo livre, provavelmente terá uma comunidade envolvida em seu desenvolvimento. Isso implica na não necessidade de depender de um seleto grupo(geralmente uma empresa com fins lucrativos) para que o software evolua e ganhe novas funcionalidades ou ganhe correções de bugs. Até mesmo pode haver o problema de descontinuação do projeto por parte dos criadores( geralmente problemas financeiros ou falta de interesse) dos softwares proprietários. Caso aconteça isso em um software livre, sua comunidade continuará a dar suporte e desenvolve-lo(claro que há exceções, como projetos pequenos demais ou desentendimentos entre membros da comunidade).

Muito provavelmente você já tenha usado Software Livre sem saber. Ao ler este blog, por exemplo, você já esta usando Software livre, pois o servidor que o blogspot.com usa é o Linux (toolbar.netcraft.com/site_report?url=blogspot.com). Muitos sites utilizam linguagens livres em seu desenvolvimento.
Outros exemplos de Softwares Livres conhecidos são:

  • Linux - Sistema Operacional
  • Python, PHP, Java, Ruby, Lua - Linguagens de Programação
  • Apache - Servidor Web
  • MySQL, Postgres - SGDB's
  • Gnome, KDE, Xorg - Ambientes Gráficos 
  • Mozilla Firefox - Navegador Web
  • OpenOffice - Suite Office
  • Django, Wordpress, Joomla, Drupal - CMS's
  • Blender - Poderosa ferramenta de modelagem 3D
  • Eclipse - IDE de desenvolvimento
Para mais detalhes, consulte o site da Free Software Foundation(FSF) - www.fsf.org ou o projeto nacional sobre Software Livre - softwarelivre.org.