Neste post pretendo falar de algumas dessas ferramentas.
Grep
O Grep é uma ferramenta que busca por padrões textuais (expressões regulares) em arquivos. O Grep, em seu comportamento mais comum, busca o padrão de texto informado em um arquivo ou da entrada padrão caso nenhum arquivo seja informado, e mostra as linhas onde o texto foi encontrado.
Neste exemplo, vou pesquisar pela palavra 'class' no início da linha:
E este padrão foi encontrado em 6 linhas.$ grep '^class' ./django/db/models/query.py class QuerySet(object): class ValuesQuerySet(QuerySet): class ValuesListQuerySet(ValuesQuerySet): class DateQuerySet(QuerySet): class EmptyQuerySet(QuerySet): class RawQuerySet(object):
E neste outro exemplo, vou procurar por 'gvim', que retorna da saída do ps:
O Grep é uma ferramenta com muitas opções para customizar o seu comportamento, para ve-lás por completo, leia a man page do Grep.$ ps u | grep 'gvim' myuser 15007 1.1 0.6 611320 26868 pts/1 Sl 11:54 0:00 /usr/bin/gvim -f myuser 15049 0.0 0.0 13576 932 pts/2 S+ 11:54 0:00 grep --color=auto gvim
Ack
O Ack, é, como os próprios criadores definem, uma ferramenta como o Grep, otimizada para programadores.
Em determinados momentos você precisa saber em qual arquivos está uma classe, um método, ou qualquer padrão textual, mas não em qual arquivo procurar. Nesses casos o uso do grep pode ficar complicado.
Para habilitar esse comportamento no Grep você deve usar a opção -r que faz uma busca recursiva nos diretórios, passando o diretório onde a busca deve ser iniciada(para iniciar sempre do diretório corrente, use o caractere '.'). E para ajudar a achar a linha correta usa a opção -n.
Exemplo:
Neste caso o arquivo que contém o padrão 'class QuerySet(object):' é ./django/db/models/query.py na linha 30.$ grep -nr 'class QuerySet(object):' . ./django/db/models/query.py:30:class QuerySet(object):
Mas esse é o comportamento padrão do Ack, cuja saída já é pensado para facilitar a busca por padrões textuais em vários arquivos:
No Debian e derivados já existe um pacote chamado Ack para tradução para para Kanji, e o pacote do Ack se chama Ack-Grep. Para facilitar o uso do Ack você pode criar uma alias:$ ack 'class QuerySet\(object\):' django/db/models/query.py 30:class QuerySet(object):
$ alias ack='ack-grep'
Siege
Para desenvolvedores web o Siege pode ser uma ótima ferramenta de benchmarks de sites e aplicações web em geral.
Usando o Siege você pode confrontar resultados de performance entre dois servidores web, estudar resultados antes e depois de minificar seus arquivos HTML, por exemplo.$ siege www.google.com ... HTTP/1.1 302 0.27 secs: 222 bytes ==> / HTTP/1.1 302 0.22 secs: 222 bytes ==> / HTTP/1.1 200 0.30 secs: 14780 bytes ==> / Lifting the server siege... done. Transactions: 42 hits Availability: 100.00 % Elapsed time: 4.32 secs Data transferred: 0.30 MB Response time: 0.67 secs Transaction rate: 9.72 trans/sec Throughput: 0.07 MB/sec Concurrency: 6.51 Successful transactions: 52 Failed transactions: 0 Longest transaction: 3.16 Shortest transaction: 0.21
Estas são apenas algumas ferramentas que costumo usar, no cotidiano e que facilitam bastante minha vida.
Nenhum comentário:
Postar um comentário