Já acordo dando de cara com todos os blogs do mundo falando do novo lançamento do Google, uma plataforma para você criar e rodar aplicações (de preferência de grande porte) dentro da infra do Google.
Hoje arrumei um bom exemplo para a pergunta pra que usar a linha de comando no meu computador? Para mim a resposta é: para poder usar mini-utilitários e outras traquitanas que você podem ser criadas rapidamente.
Para gravar meus CDs e DVDs eu uso o K3b (que oficialmente é para KDE mas funciona sem problema no Gnome, como a maioria dos programas para KDE). Não sei se por culpa do modelo de gravador ou do software, se eu peço para ele verificar a gravação ao terminar ele dá aquela ejetadinha no disco, puxa de novo e começa a comparar (não lembro se o Nero faz a mesma coisa). Isso nem sempre funciona redondo e o programa acusa erro de leitura.
Não muito a fim de jogar fora a mídia e tentar de novo (perdendo tempo e dinheiro, muquirana que sou) fiz um scriptzeco para comparar todos os arquivos do CD com os originais do HD. Isso é feito com o comando cmp, que apesar do nome “comando” nada mais é do que um programinha-sem-tela. Aliás foi assim que o “Linux” nasceu: com um monte de malucos criando versões abertas dos comandinhos legais do Unix, o projeto GNU.
Como o cmp só compara arquivo por arquivo (cmp a.txt b.txt) eu precisava de uma maneira de ir arquivo por arquivo fazendo a comparação. Assim como Neston existem 1001 maneiras de fazer isso. Em bash, por exemplo, eu faria um loop entre todos os arquivos, etc. etc. Mas como o meu negócio é Ruby resolvi fazer o seguinte:
#! /usr/local/bin/ruby
Dir.new('/media/cdrom0').each do |f|
if !(f =~ /^\./)
puts f
puts `cmp /media/cdrom0/#{f} ./#{f}`
end
end
Seis linhas resolvem o meu problema. Imagine fazer isso com interface gráfica. Pode até ser fácil para alguns, mas seria o proverbial matar mosca com tiro de canhão. E eu não poderia publicar assim fácil no meu blog, para quem quiser sair usando. E, claro… como coloquei o código fonte você pode rodar isso com nenhuma ou poucas modificações em outros Unix, no OSX e provavelmente até no Windows.
Se você não entendeu nada, parabéns. Você ainda não é um louco-por-Unix. O super-usuário do Unix chama-se root. Para mudar (na linha de comando) para este super-modo você digita su. Ou se só precisa dar um comandozinho só precisa dar sudo comando.
Na maioria dos Unix quando você dá esse sudo o sistema pede a senha do root. Mas no Ubuntu você não sabe qual a senha do root, ele cria uma aleatória na instalação. Então o sudo pede a sua própria senha (o que já é suficiente para impedir que programas rodem como super-usuário sem você saber… como acontece no Windows). Mas de vez em quando nós escovadores de bits precisamos dar uma série de comandos como root, então entrar como su é bom de vez em quando.
E para finalizar uma piada-nerd, originalmente vista aqui. Se você entendeu minha explicação vai entender a piada…
Atualização: Pronto acabou (durante a madruga). A atualização foi bem indolor, exceto pelos drivers da ATI que pifaram. Um usuário mero-mortal teria se jogado pela janela, já que o conserto simples envolve a edição manual de arquivos texto de configuração. Mas, por outro lado, um mero mortal não teria alterado os drivers de vídeo como eu fiz.
Primeiras impressões: fontes da tela mais suaves (visual praticamente idêntico ao ClearType) e Firefox 2 instalado “de fábrica”, com direito a verificação ortográfica enquanto escrevo este texto. Agora quero testar esse tal de Tomboy.