Como utilizador veterano de Linux (e outros sistemas Unix no passado, não tanto agora) fui adoptando um grande número de ferramentas ao longo dos anos. Deixo uma pequena lista de alguns dos que mais uso e/ou considero interessantes, para não se tornar exaustiva. Ficaram de fora alguns dos tradicionais comandos de Unix (sed
, awk
, cat
, dd
, find
, grep
, …), software servidor (apache, samba, …) ou outros demasiados específicos.
Aviso: é natural que as minhas raízes command line se revelem um pouco.
Comunicações mundanas
- firefox – o meu browser. Há outros, bons, como o opera, chrome, mas é este que uso já desde o tempo do monolítico netscape.
- thunderbird – o meu interface de mail. Mais um do projecto mozilla, favorito de longa data.
- pidgin (ex gaim) – instant messenger com vários protocolos suportados. Pode não suportar as funcionalidades mais avançadas de outros talkers específicos, mas centraliza as comunicações do tipo IM e serve para o uso que lhe dou (pouco).
Networking
- stone – um excelente repetidor tcp/ip.
stone proxy 8888
e tenho um proxy http lançado no porto 8888. Suporta mais protocolos e esquemas de repetição. - iperf – qual é a largura de banda entre dois pontos de rede?
netcat – cliente/servidor tcp/udp flexível. Um clássico, mas que ainda hoje uso. Servidor:
nc -l -p 8888
, cliente:echo ola | nc 127.0.0.1 8888
. Para determinar rapidamente o contéudo de um pedido http:[edit /etc/hosts "127.0.0.1 mysite"] nc -l -p 80 [browse to http://mysite/urlpath]
- tcpdump – mostra o que passa num interface de rede. O avozinho deste tipo de ferramentas, com interface totalmente baseado na linha de comando, dispõe de um flexível mecanismo de filtros.
- wireshark, ex ethereal – um tcpdump em modo gráfico. Captura e analisa os pacotes de rede.
- nmap – mais do que um port scanner, isto é um autêntico canivete suíço de rede. De vez em quando uso o
nmap -sV -O ip
para tentar descortinar um pouco do que se está a passar, mas hoje em dia isto foge ao meu trabalho típico. A suitenmap
inclui outros utilitários interessantes como oncat
(inspirado pelonetcat
referido acima),ndiff
enping
. - curl, wget – download de URLs (ftp e http) da linha de comando. O
curl
é mais completo, permite fazer upload, suporta autenticação ntlm. Owget
aceita vários URLs e funciona em modo recursivo. Complementam-se bem. - ncftp, lftp – há cada vez menos coisas em ftp que não estejam disponíveis por http, mas quando é preciso, estes dois continuam a ser bons clientes ftp interactivos.
rsync – inicialmente o objectivo do
rsync
era fazer transferências por rede optimizadas, i.e. permitia transferir apenas um conjunto mínimo de diferenças entre a origem remota e o destino local (ou vice versa), reconstruindo a mesma imagem no destino. Mas com o tempo, usar o rsync para copiar de qualquer sítio para qualquer sítio tornou-se um vício.# actualiza em dest os conteúdos de source rsync -av --delete /a/b/source /x/y/dest # envia os meus dados para o servidor, via ssh, com compressão, # restringindo a largura de banda usada a 50KB/s, para não me # estrangular a minha ligação de rede rsync -Pav --delete ~/stuff/. host:/stuff/. -e ssh -z --bwlimit=50
cntlm – quando a Microsoft decidiu implementar um mecanismo de segurança proprietário, NTLM, sem qualquer documentação, nem suporte fora de Windows, o resto do mundo ficou às escuras. Nos sítios em que se usavam proxies com autenticação NTLM isso significava não ter acesso a nada. Felizmente alguém com tanto de generosidade como de genialidade fez o reverse engineering desse protocolo e implementou um proxy que se autenticava via NTLM num MS Proxy Server. Esse proxy era o NTLM Authorization Proxy Server, escrito em
python
. Mais tarde apareceu esta versão em C que trouxe algumas melhorias e funcionalidades. Exemplo real de utilização:# cria um proxy http anónimo no porto 5866 que se autentica e usa o # proxy windows NTLM_PROXY no porto 80 cntlm -g -d DOMAIN -u USER -p PASS -l 5866 NTLM_PROXY:80
w3m, links2 –
w3m
é, para mim, o melhor browser em modo texto. Também funciona como paginador e até suporta tags. As outras incarnações de browsers texto (lynx
,links
,elinks
) nunca me convenceram, excepto olinks2
que adicionou suporte javascript e gráficos (links -g
). De vez em quando dão jeito.
Gráficos, diagramas
PlantUML – a partir de uma simples descrição textual o
plantuml
gera diagramas UML de sequência, casos de uso, classes, actividade, componentes, estado e objectos. Muito útil para documentar rapidamente fluxos e processos.@startuml cache.png title padrão usual de cache (*) --> "cache get" if "hit?" then --> [yes] (*) else -> [no] "source get" --> "cache set" --> (*) endif @enduml
—> - yUML – ferramenta online com um conceito semelhante ao
plantuml
. Os gráficos têm melhor qualidade, contudo. - graphviz – conjunto de ferramentas para produzir todo o tipo de diagramas, a partir de especificações textuais. Útil para gerar diagramas programaticamente.
- Pencil – um poor man’s visio que funciona como extensão do
firefox
ou standalone (é uma aplicação XUL). Surpreendemente funcional! O “Sketchy GUI” é excelente para prototipar mockups. ImageMagick, GraphicsMagick – ImageMagick é uma suite de utilitários para processar imagens da linha de comando, embora também inclua o
display
que é um utilitário gráfico. Assim, tarefas como converter entre formatos, alterar resoluções, aplicar efeitos ou outras operações em imagens está à distância de usar o nosso mecanismo de automatização preferido a envolver isto. Exemplo emshell
+awk
para re-escalar todas as imagens para 800x600:# confirmar se está tudo ok ls *.png *.jpg | awk -vR=800x600 ' function f(s) {sub(".[^.]*$", "_" R "&", s);return s} {printf "convert -geometry %s \"%s\" \"%s\"\n", R, $0, f($0)}' # executar ls *.png *.jpg | awk -vR=800x600 ' function f(s) {sub(".[^.]*$", "_" R "&", s);return s} {printf "convert -geometry %s \"%s\" \"%s\"\n", R, $0, f($0)}' | sh -x
O GraphicsMagick foi um spin-off do ImageMagick feito em 2002 que reivindica ser melhor. Independentemente das pretensões dos autores, uma coisa que eu prefiro no GraphicsMagick é o uso do comando
gm
como driver dos outros subprogramas (gm convert
,gm identify
, …).pinta – finalmente um programação de edição gráfica simples, funcional e usável, que funciona em Linux.
Sem comentários:
Enviar um comentário