Arquivo de novembro 2006

Em tempos de Windows Vista (!), parece absurdo para a maioria das pessoas usar um terminal e digitar comandos como se fazia anos atrás, na época do DOS. O fato é que para muitas tarefas usar o terminal pode ser mais rápido (quiçá mais fácil) que dar vários cliques aqui e ali. No Windows, há o command.com, que é bastante limitado em comparação com o shell do Linux, mas também pode ser utilizado para várias tarefas.

A coisa fica mais crítica no caso de um servidor, na instalação de um programa novo, como um fórum, por exemplo. Porque baixar tudo para o seu computador, descompactar, editar vários arquivos de configuração e subir tudo via ftp (que é lento com muitos arquivos pequenos, porque abre e fecha uma conexão para cada arquivo), se você pode fazer isso tudo diretamente do seu servidor?

Escrevi um post no fórum dos usuários brasileiros da DreamHost, mas achei que ele estava bom o suficiente para ser (re?)blogado aqui. Ei-lo:]


Como usar o shell (terminal em modo texto)

O shell, ou terminal em modo texto, é um acesso remoto ao servidor que você tem acesso. Em outras palavras, é como se você digitasse os comandos no teclado do computador que você está acessando e não no seu. Isto é útil em várias situações - por exemplo, neste tutorial, porque baixar o arquivo para o seu computador, descompactar e subir arquivo por arquivo se você pode baixar direto no seu servidor? As aplicações possíveis são inúmeras.

Mas enfim, mãos à massa!

Em primeiro lugar, o computador que você compartilha com outros usuários na dreamhost roda GNU/Linux. Se você não está acostumado com este sistema, eu recomendo que experimente antes em sua própria máquina, rodando um live-cd como o Ubuntu ou o Kurumin. Um live-cd é uma imagem ISO (imagem de CD) que você gravará num CD-R (é melhor não usar CD-RW por questões técnicas) que roda o Linux no seu computador como se você tivesse instalado - basta dar boot por ele, como o CD da instalação do windows.
Se você já usou o terminal do windows, provavelmente deve estar acostumado com digitar comandos para um computador, ao invés de clicar aqui e ali. Existem inúmeros guias de shell pela internet, mas poderia inumerar rapidamente alguns pontos chave:

1. O shell do linux é (muito) mais poderoso que o command.com do windows - o DOS foi originalmente criado “capando” o UNIX original;
2. Alguns comandos mudam de nome, dentre eles:
2.1. dir - ls
2.2. copy - cp
2.3. move - mv
2.4. del - rm
2.5. cd.. - cd ..

Então, vamos nessa!

Se você seguiu o meu conselho e testou os comandos num live cd antes de usar o shell, conseguirá se conectar com o servidor abrindo um terminal no seu computador (no ubuntu Aplicações > Acessórios > Terminal, ou alt-f2 > xterm) e digitando:

ssh usuario@servidor.dreamhost.com
ou
ssh usuario@site.com

Como curiosidade: SSH significa Secure SHell. é extremamente importante usá-lo em lugar do telnet, já que neste último seus dados trafegam de forma não-segura pela rede.

A diferença dos dois comandos é que o segundo geralmente seria um usuário secundário da conta que usaria (por exemplo se você revender o plano), porque o shell estaria “preso” àquele site específico.

Por exemplo:

ssh nighto@sunnyd.dreamhost.com

neste momento o cliente ssh perguntará se você deseja adicionar esta máquina na sua lista de máquinas confiáveis, diga que sim, e perguntará a sua senha. e então, você está conectado.
Com isso você já pode digitar comandos na sua máquina remota. por exemplo, seguindo o tutorial que eu linkei acima, eu poderia por exemplo:

ls <- lista os arquivos da pasta
cd nighto.net <- entra no diretório nighto.net
wget http://ufpr.dl.sourceforge.net/sourceforge/phpsysinfo/phpsysinfo-2.5.2-rc3.tar.gz"><- baixa esse arquivo
tar -xzvf phpsysinfo-2.5.2-rc3.tar.gz <- descompacta o arquivo baixado
rm phpsysinfo-2.5.2-rc3.tar.gz <- apaga o arquivo compactado
cd phpsysinfo <- entra na pasta
mv config.php.new config.php <- renomeia o arquivo
nano config.php <- edita o arquivo
[aperte ctrl-w para localizar texto, ctrl-o salva... tem os atalhos na tela]
nano includes/os/class.parseProgs.inc.php
[mesma coisa]

(dica: assim como no mIRC (para citar um programa de Windows que tem comportamento semelhante) para copiar basta selecionar um texto com o mouse, para colar basta clicar com o botão do meio (usualmente o scroll ou o botão direito e esquerdo simultaneamente). note que isto não substitui o ctrl-c-ctrl-v, então na prática você tem duas áreas de cópia… interessante, não? ;)

… e voilà, fizemos rapidamente o que provavelmente demoraria muito mais tempo se tivéssemos de baixar o arquivo, editar no bloco de notas etc etc.

Existem outras possibilidades, por exemplo se você quiser copiar um arquivo diretamente da sua máquina para o servidor sem ter de abrir FTP ou SSH, poderia copiar um simples comando como:

scp arquivo usuario@maquina.dreamhost.com:~/arquivo

ou, do SSH, copiar um arquivo da sua máquina

scp usuario@ip.da.sua.maquina:~/arquivo . (note o ponto no final)

(para isso, você tem de instalar um servidor de shell no seu linux antes; isso pode ser feito facilmente com um sudo apt-get install openssh-server ou com o sistema de instalação da sua distro favorita)

… ok mas eu fui preguiçoso e não baixei o linux coisa nenhuma, quero continuar usando Windows!
Certo, para isso você precisará baixar (mais) um programa para acessar computadores via ssh. Para windows, um bom é o PuTTY, para encontrá-lo, googleie.

Espero que tenha ajudado :)


existem possibilidades ainda mais interessantes, como por exemplo deixar baixando no servidor aquele torrent com pouquíssimos seeds que tá demorando um século pra baixar na sua máquina, e depois baixar por download direto a velocidade máxima… as possibilidades ficam à cargo da mente criativa do leitor :)

Tags: , , ,

Comments Nenhum comentário »

Pra descontrair, um reblog da Toca do Lobo:

Não importa o quanto você está desesperado, não encoste parte alguma de seu corpo nas pessoas sem a permissão delas.

Tags: ,

Comments Nenhum comentário »

“Keyboard error or no keyboard present - Press F1 to continue, DEL to enter SETUP”

Foto tirada num laboratório da UNIRIO. Representa a imbecilidade de alguns programadores e seus códigos.

No foto, a placa-mãe provavelmente estava configurada como Halt on All Errors (avisa que tem erro quando, por exemplo, não é detectado um HD ou drive de disquete)… mas pedir para apertar uma tecla como confirmação quando não encontra um teclado é burrice. Tinha que, no máximo, aparecer por x segundos “teclado não-encontrado” e continuar.

Num exemplo hipotético em que a porta do teclado PS/2 queima (acredite, isso é comum) e a BIOS não está configurada para teclado USB, se for o padrão do fabricante… já era, tchau-e-bença plaquinha.

Idiota, não?

Tags: , ,

Comments Nenhum comentário »

Meu pai chegou com 4 CDs lotados de .wmv querendo ver no DVD, naturalmente não conseguiu, e pediu que eu gravasse DVDs com aqueles vídeos. O único caminho que eu conhecia era:

ffmpeg -i arquivo.wmv -target ntsc-dvd arquivo.mpg

que funciona muito bem para um arquivo ou dois, mas fazer isso com 50 arquivos na linha de comando seria insano. Depois de coçar a cabecinha e mais uns 15 minutos, nasceu o script para nautilus converte-pra-dvd :)

A instalação é muito simples. Primeiro, copie o código do script (selecionando e dando Ctrl-C, oras):

#!/bin/bash
#
# converte-pra-dvd
# by nighto
# nighto.net / nighto at gmail dot com
if zenity --question --title "Converter para DVD" --text "Você deseja converter o arquivo
$*
para MPG (ntsc-dvd)?"
then
ffmpeg -i "$*" -target ntsc-dvd "$*".mpg
zenity --info --title "Converter para DVD" --text "A conversão do arquivo $* foi completa com sucesso!"
exit 0
else
ffmpeg --error --title "Converter para DVD" --text "Não foi possível converter o arquivo com o ffmpeg. O
arquivo tem extensão com 3 letras? Se não tiver, por favor renomeie-o."
exit 1
fi

Abra um editor de texto simples (Aplicações > Acessórios > Editor de texto), cole o script e salve na sua pasta pessoal com o nome de “converte-pra-dvd”, sem as aspas.

Agora basta abrir um terminal (Aplicações > Acessórios > Terminal), copiar e colar estes comandos:

sudo apt-get install ffmpeg
mv ./converte-pra-dvd ~/.gnome2/nautilus-scripts
chmod a+x ~/.gnome2/nautilus-scripts/converte-pra-dvd
zenity --info --title "Converte pra DVD" --text "Script instalado! Para utilizar, basta clicar com o botão direito no arquivo, Scripts > converte-pra-dvd e aguardar a conversão.\n\nDemora um bocado, mas quando acabar ele te avisará. Você pode monitorar a conversão pelo status do processador, com o Monitor do Sistema.\n\nPara instalá-lo, botão direito na barra do painel (a que tem os menus) > Adicionar ao Painel > Monitor do Sistema"

Sim, ainda está bem pobrinho, mas é o mais longe que as minhas habilidades shellísticas vão no momento, e resolveu os meus problemas.

Linux é do caralho duca.

Tags: , , , ,

Comments Nenhum comentário »

Nighto e Richard Stallman
… o da esquerda sou eu. ;)

Pra quem não conhece o cabeludo, chama-se Richard M. Stallman. Foi o criador do projeto GNU (GNU’s Not UNIX), uma das bases do GNU/Linux, e da GPL (GNU Public License), a licença jurídica que tornou o software livre possível como o conhecemos hoje.

Tags: , ,

Comments 1 comentário »