Overdose de comandos!

commandlinefu.com

Descobri o Commandlinefu recentemente, e desde então me surpreendo cada vez que checo o feed. As idéias simples e geniais para utilizar comandos (na maioria das vezes, combinações de comandos) para checar o twitter, baixar todo o acervo de comandos, calcular a duração de vídeos e músicas e muito mais, vocês conferem agora, na seleção que preparei, com base no que achei de mais curioso, criativo, útil e interessante. Já aviso desde já que só testei alguns comandos, que funcionaram perfeitamente, embora alguns utilizem programas que podem não estar instalados no seu sistema, portanto verifique antes.

Que tal "pingar" um dispositivo até ele responder, e então emitir um som ?
beepwhenup () { echo 'Enter host you want to ping:'; read PHOST; if [[ "$PHOST" == "" ]]; then exit; fi; while true; do ping -c1 -W2 $PHOST 2>&1 >/dev/null; if [[ "$?" == "0" ]]; then for j in $(seq 1 4); do beep; done; ping -c1 $PHOST; break; fi; done; }

Saber o tamanho total dos arquivos localizados ?
find [path] [expression] -exec du -ab {} \; | awk '{total+=$0}END{print total}'

Quer atualizar o Twitter ?
curl -n -d status='Hello from cli' https://twitter.com/statuses/update.xml

Pesquisar no Google ?
curl -A Mozilla http://www.google.com/search?q=test |html2text -width 80

Fazer backup diário dos arquivos modificados, compactar e renomear o backup antigo.
find /home/dir -mtime +1 -print -exec gzip -9 {} \; -exec mv {}.gz {}_`date +%F`.gz \;

Executar um comando e reiniciar automaticamente caso ele seja interrompido.
ps -C program_name || { program_name & }

Como inserir os membros de um grupo do AD em outro ?

for /F "DELIMS=""" %i in ('dsquery group -name SourceGroupName ^| dsget group -members') do dsquery group -name TargetGroupName | dsmod group -addmbr %i

Localizar arquivos duplicados a partir do tamanho e depois por hash MD5.
find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 -D --all-repeated=separate

Que aplicações estão usando a rede ?
netstat -lantp | grep -i establ | awk -F/ '{print $2}' | sort | uniq

Encurtar uma URL usando o Bit.ly ?
curl "http://api.bit.ly/shorten?version=2.0.1&longUrl=<LONG_URL_YOU_WANT_SHORTENED>&login=<YOUR_BITLY_USER_NAME>&apiKey=<YOUR_API_KEY>"

Corrigir arquivos UTF-8 interpretados incorretamente como ISO-8859-1 ?
perl -i -pe 's/\xef\xbb\xbf//g' <file>

Executar um comando daqui a X horas, silenciosamente em segundo plano.
echo "nohup command rm -rf /phpsessions 1>&2 &>/dev/null 1>&2 &>/dev/null&" | at now + 3 hours 1>&2 &>/dev/null OU
( ( sleep 2h; your-command your-args ) & )

Ver o tempo total dos seus vídeos e músicas ?
find -type f -name "*.avi" -print0 | xargs -0 mplayer -vo dummy -ao dummy -identify 2>/dev/null | perl -nle '/ID_LENGTH=([0-9\.]+)/ && ($t +=$1) && printf "%02d:%02d:%02d\n",$t/3600,$t/60%60,$t%60' | tail -n 1


Christian Guerreiro

Professor por vocação, blogueiro e servidor público por opção, amante da tecnologia e viciado em informação.


Ensino a distância em Tecnologia da Informação: Virtualização com VMware, Big Data com Hadoop, Certificação ITIL 2011 Foundations e muito mais.


Suporte o Tecnologia que Interessa!

Você acha que as informações compartilhadas aqui são úteis?
Então me ajude a produzir ainda mais e melhores conteúdos!


É muito fácil. Basta divulgar nossos treinamentos pra alguém que conheça!


E se for de Salvador, podemos estruturar um curso presencial para sua empresa!

Eu vou ficar muito grato (e quem fizer os curso também :)!