Use o fping para scanear a sua rede

O fping é um utilitário usado para scanear e encontrar as máquinas conectadas e ligadas em uma rede. Semelhante ao ping, usa o protocolo ICMP (Internet Control Message Protocol) para determinar se um host está “de pé” — através de uma requisição echo — ou não.
buscas na rede - fping
Diferente do ping, é possível fornecer vários endereços de hosts em uma só linha de comando ou um arquivo texto, com uma lista de hosts para sondar.
O fping envia um pacote ping para cada host da lista. Os que respondem são marcados na lista como ativos e não são mais checados. Os que não respondem, após um determinado período, são marcados como inalcançáveis.

fping versão 3

A quem já conhece a teoria ou não tem interesse em conhecer, recomendo pular este (ainda que) breve tópico. 😉
Após um longo tempo sem atualizações da versão original – entre 2002 e 2011 – em que, até mesmo, havia propostas de correções e melhorias e sem respostas do mantenedor oficial, David Schweikert assumiu o projeto e tem disponibilizado versões atualizadas do programa, junto com a documentação em seu site – de onde eu sugiro que você faça o seu download.

Por que usar o fping

O ping foi desenvolvido em 1983 por Mike Muuss e é uma ferramenta eficiente para testar quando um host é alcançável ou não, dentro da rede.
O problema com o ping é que ele envia uma requisição echo e fica esperando pela resposta. Imagine ter que testar um segmento da rede com 255 possíveis hosts – sendo que alguns, mesmo online, demoram, pelos mais variados motivos, algum tempo extra para responder ao ping?
Pois bem, o fping resolve isto. Como já vimos, se a resposta demora a chegar, ele segue em frente.

Como instalar o fping

Se você preferir compilar o código fonte, para usar uma versão mais atual ou específica do fping, passe para o próximo tópico.
No final do artigo, há o link para fazer download do aplicativo – para qualquer sistema operacional. Quem usa Debian ou Ubuntu pode instalar o fping com o comando apt-get:

sudo apt-get install fping

Usuários Debian, ainda podem verificar nos backports por uma versão mais atual em relação ao repositório padrão.
No Fedora ou outras distribuições baseadas no Red Hat, use o yum:

yum install fping

Como compilar o código fonte do fping

Baixar e compilar o código fonte pode trazer uma série de vantagens e costuma ser mais fácil do que algumas pessoas imaginam.
Se você optar por este método de instalação, faça o download do código fonte na página http://fping.org/dist/.
Execute os próximos passos, com privilégios administrativos:

./configure 
make
make check
make install
make clean
make distclean

… e pronto!
Se você ainda tiver dúvidas sobre como compilar código fonte no Linux, leia o artigo Como compilar código fonte.
O processo padrão, descrito acima, vai instalar o fping no diretório
/usr/local/sbin/fping.
Você pode usar o comando whereis, para obter esta informação:

whereis fping
fping: /usr/local/sbin/fping

Estar neste diretório, indica que o fping necessitará de privilégios administrativos para ser executado.

Como usar o fping para sondar e scanear a rede

O bom senso diz que devemos tomar alguns cuidados antes de fazer varreduras na rede. Uma vez que os sistemas de segurança podem identificar a atitude como agressiva, convém pedir permissão ao administrador da rede antes de iniciar esta atividade.
Veja um exemplo de aplicação do fping, com resultado:

fping 192.168.1.1
192.168.1.1 is alive

com este exemplo, fica claro que a resposta is alive (“está vivo”) significa que o host está de pé e pôde ser alcançado.
A brincadeira fica mais interessante, quando você fizer a busca baseada em uma lista, que pode ter centenas ou mais endereços IP de máquinas na sua rede. Imagine o arquivo lista_de_ips.txt, com o seguinte conteúdo:

192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5

Nota: Adeque os valores acima à realidade da sua rede.
Feito isto, vamos jogar esta lista pro fping testar cada IP:

fping -a < lista_de_ips.txt

Se tiver privilégios administrativos na sua máquina, use fping -f, assim:

sudo fping -f lista_de_ips.txt

Em um rápido resumo, até aqui:

  • Quando a mensagem retornada vem com a expressão
    is alive — é por que o host foi encontrado e está respondendo;
  • Quando a mensagem contiver expressões como ICMP Host Unreachable from ou is unreachable — é por que ele não foi encontrado ou não está respondendo.

Você pode usar a opção -g para verificar um intervalo grande como todas os 255 possíveis hosts em 192.168.1.*. Veja como:

fping -g 192.168.1.0/24

… e nem demorou tanto.
Para enviar o resultado (restrito aos hosts que foram alcançados) para um arquivo, pode usar o comando grep:

fping -g 192.168.254.0/24 | grep alive > is_alive.txt
cat is_alive.txt

Quando o perímetro, em que você deseja fazer sua busca, não está com o tráfego ICMP bloqueado, é possível encontrar rápido e sem muito esforço todos as máquinas conectadas à rede.

Defina o intervalo de tempo entre os pacotes ping

Você pode usar o parâmetro -i para especificar o intervalo mínimo de tempo entre um pacote ping (em milisegundos) a qualquer alvo:

fping -i 10 -g 192.168.254.0/24

O comando, acima, estabelece o intervalo de 10 milisegundos (ou 0,01 segundo) entre o envio de um pacote e outro, para todos endereços compreendidos no espectro de 192.168.254.0 a 192.168.254.255.
O valor padrão é 25 ms, de acordo com a documentação do programa.

Obtenha um resumo da sondagem do fping na sua rede

Ao adicionar -s à linha de comando, é possível obter um resumo ao final do trabalho do fping, em que ele informa:

  1. targets — alvos objetivados.
  2. alive — alvos ativos.
  3. unreachable — alvos intangíveis, inalcançáveis.
  4. unkown addresses — endereços desconhecidos.
  5. timeouts — tempo de resposta expirado (esperando retorno).
  6. ICMP Echos sentechos ICMP enviados.
  7. ICMP Echo Replies received — respostas em echos ICMP recebidas.
  8. other ICMP received — outros sinais ICMP recebidos.
  9. (elapsed real time) — tempo de execução real.

Veja um exemplo de relatório resumido:

fping -g 192.168.254.0/24 -s
192.168.254.1 is alive
192.168.254.2 is alive
192.168.254.3 is alive
192.168.254.7 is alive
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.4
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.5
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.6
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.8
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.9
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.10
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.11
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.12

     (...)

     254 targets
       5 alive
     249 unreachable
       0 unknown addresses

     249 timeouts (waiting for response)
    1001 ICMP Echos sent
       5 ICMP Echo Replies received
     942 other ICMP received

 0.10 ms (min round trip time)
 50.3 ms (avg round trip time)
 131 ms (max round trip time)
       26.827 sec (elapsed real time)

Como filtrar resultados do fping

Além do comando grep (veja os links ao final), é possível resumir bastante o relatório de saída.
Para obter apenas o relatório resumido, visto anteriormente, acrescente a opção -q:

fping -g 192.168.254.0/24 -s -q

Limite a quantidade de tentativas

O fping faz 3 tentativas para alcançar os alvos definidos, como comportamento padrão.
É possível aumentar ou diminuir este valor, de acordo com a sua conveniência. Veja como definir o número de tentativas para 5:

fping -r 5 -g 192.168.254.0/24

Se você acha que não precisa haver outras tentativas e prefere obter um resultado mais rápido da sondagem, use o valor -r 1.
Você pode encontrar muito mais informações sobre possibilidades de utilização no manual do comando. Recomendo a sua leitura, daqui pra frente.
Que suas buscas sejam frutíferas! 😉

Fontes:

O melhor editor PHP

Cada programador tem o seu “melhor editor”. É comum ter uma lista de favoritos – e é mais comum, ainda, que cada editor tenha o seu ponto forte, o que nos leva a usar mais de um frequentemente. Aqui, vou falar do que ocupa o topo da minha lista.
De todos os que já experimentei e ainda uso, meu favorito é o Komodo Edit, da ActiveState.
É gratuito e faz parte de uma IDE (Integrated Development Environment – Ambiente de Desenvolvimento Integrado), a Komodo IDE.

Komodo IDE

O video abaixo mostra como trocar o tema do Ambiente de desenvolvimento. Trata-se de um produto “redondo”, maduro e muito bem acabado e, para quem usa o Ubuntu como ambiente de desenvolvimento, saiba que a interface do Komodo se integra lindamente à do seu sistema.

Uma IDE, como o nome diz, oferece muito mais do que apenas um editor de textos para escrever código. Entre seus recursos, eu destaco os seguintes:

  • a capacidade de editar código colaborativamente, em equipe;
  • ferramentas diversas e integradas para testar código (debugging), explorar bancos de dados, CVS, Git etc.;
  • customização de vários recursos através de instalação de plug-ins;
  • ela é cross-platform, ou seja, roda em Windows, Mac, Linux (32 e 64 bits).

Todo o ambiente de desenvolvimento, com todas as suas ferramentas, que incluem o editor de códigos, pode ser testado gratuitamente por 21 dias. Transcorrido este prazo, ele tem várias faixas de preços voltadas a diversos segmentos.

Mas o editor é gratuito

… e é um excelente editor!
Com suporte a uma vasta gama de linguagens de programação (Python, PHP, Ruby, Perl, HTML, CSS, C, JavaScript etc), oferece coisas básicas (vitais!), como:

  • syntax highlighting – ou seja ele destaca as palavras chave no código de acordo com a sintaxe de cada linguagem;
  • split view – divisão da tela para comparar/copiar trechos de código;
  • verificação do código;
  • possibilidade de usar os mesmos atalhos de teclado que você já usava no vi/emacs;
  • complementação de código – ele completa os nomes das suas variáveis, de suas funções, fecha parênteses e indica onde falta fechar, reconhece as diferentes linguagens – mesmo que você esteja embutindo um código em outro.

A lista é grande. Eu gostaria de destacar que, além da escolha de temas, há a possibilidade de selecionar entre 15 esquemas de cores que é um recurso interessante, ao menos pra mim. Gosto de usar esquemas de cores claros quando trabalho durante o dia e escuros à noite.

Como instalar o Komodo Edit

Embora feita em modo texto (no Ubuntu), ela é muito simples e rápida:

  • Faça o download do pacote tar.gz, descomprima-o em algum diretório temporariamente.
  • entre no diretório em que ele foi instalado:
    cd Komodo-Edit-8.x.x-xxxx-linux-x86/
  • Agora, execute o arquivo install.sh:
    ./install.sh
  • O sistema irá pedir para você informar o diretório em que deseja instalar:Komodo Edit - Instalar Editor de Código
  • Você pode dar Enter, para seguir em frente com a opção padrão

  • O próximo passo é adicionar algumas variáveis de sistema, que permitirão executar o Komodo direto da linha de comando. O sistema oferece duas opções, como você pode ver na imagem abaixo:
    Screenshot komodo editor PHP
    No seu terminal, você pode simplesmente copiar e colar uma das opções:

    • export PATH…” — para criar uma variável de sistema, carregada no seu login e que fica armazenada no arquivo ~/.bashrc
    • ou

    • ln -s…”, que cria uma atalho pro executável do Komodo (você pode precisar de privilégios administrativos para usar esta opção).

    Feito isto, o Komodo Editor já pode ser acessado no seu menu de aplicativos normal. Ou via Dash, no Ubuntu.
    Experimente!

    POSTS RELACIONADOS

    Screenshots

    Nenhuma análise de software estaria completa sem algumas “fotos”, não é?

    integração com Ubuntu

    Todas as versões do Komodo Editor se integram ao ambiente do sistema operacional do usuário. Quem usa Ubuntu vai ter uma grata surpresa.
    Komodo editor PHP
    Inserido no contexto das melhorias visuais, há vários temas de fontes e cores pros caracteres no seu código.
    Editor PHP Komodo configuração de ambiente de edição
    A máquina da qual as screenshots foram tiradas, usa o Xubuntu, que usa o XFCE, como gerenciador de janelas e não possui, portanto, toda aquela integração com o ambiente gráfico que se aplica a quem roda o Ubuntu “puro”.
    komodo editor screenshot

O comando wget em 10 exemplos

O wget é a melhor opção para fazer download de arquivos, quase sempre, em função de sua flexibilidade e agilidade. É um dos meus aplicativos preferidos, por tornar simples várias situações complexas.

  • baixar arquivos grandes;
  • baixar vários arquivos recursivamente;
  • baixar arquivos sem minha interação;
  • baixar uma grande quantidade de arquivos etc.
LEIA MAIS

Vou mostrar, neste artigo, o meu jeito preferido de baixar arquivos via wget.

Download de um simples arquivo

Veja como baixar o Ubuntu 14.04 64 bits via wget:

wget http://releases.ubuntu.com/trusty/ubuntu-14.04-desktop-amd64.iso

Note que, enquanto baixa o arquivo, o wget exibe algumas informações:

  • o percentual de download já completado;
  • a quantidade de bytes baixados;
  • a velocidade de download atual;
  • o tempo restante para completar a tarefa.

Neste caso, especificamente, não costumo usar o wget. Creio que torrents ainda são a forma mais eficiente de baixar a minha distro preferida.
Veja como baixar o torrent do Ubuntu via wget:

wget http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso.torrent

Neste exemplos, o wget vai gravar o arquivo baixado no diretório corrente. Fique atento.
wget download torrent ubuntu 13.10

Como baixar um arquivo com wget e salvar com nome diferente ou em diretório diferente

A maneira como wget grava os nomes dos arquivos baixados nem sempre é a mais adequada para a sua situação. Para estes casos, use o parâmetro -O. Veja como:

wget http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso.torrent -O UbuntuSaucySalamander.torrent

O mesmo pode ser feito se você quiser gravar em um diretório diferente do atual:

wget http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso.torrent -O ~/Downloads/UbuntuSaucySalamander.torrent

Como limitar a velocidade de download do wget

Ao executar o aplicativo, ele vai buscar usar toda a banda possível, para terminar logo a tarefa. Em alguns casos, isto pode ser um grande problema – imagine um servidor de produção.
Com o parâmetro --limit-rate, é possível restringir o uso da banda em níveis seguros. Veja como baixar o Ubuntu 14.04 LTS com velocidade limitada a 300k

wget --limit-rate=300k http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso.torrent

wget download ubuntu 14.04
Quando baixar arquivos pequenos, você pode não sentir muita diferença ao fazer neste aspecto, uma vez que o wget não “limita” a banda. Na verdade, ele pausa o processo várias vezes, pelo tempo necessário para que, ao todo, ele fique dentro do limite médio especificado pelo usuário.

Como continuar um download interrompido

Para reiniciar um download no ponto em que ele parou, use a opção -c:

wget -c http://cdimage.ubuntu.com/daily-live/current/trusty-desktop-amd64.iso

Se você não usar esta opção, o wget vai entender que deve criar um novo arquivo – e vai acrescentar “.1” ao final do nome do novo arquivo, para te ajudar a diferenciar os dois.

Faça download em background

É possível deixar o wget rodando “nos bastidores”, enquanto você trabalha no mesmo terminal. Você pode, por exemplo rodar vários wget nos bastidores, usando este método – que é essencialmente útil quando há um grande número de grandes arquivos para ser baixados, mesmo que de sites diferentes. Veja como:

wget -b http://cdimage.ubuntu.com/daily-live/current/trusty-desktop-amd64.iso
Continuando em plano de fundo, pid 28553.
A saída será escrita em “wget-log”.
Solaris-8:~$ 

Como padrão, o wget irá enviar um log desta atividade pro arquivo wget-log. Você pode olhar este log, durante a atividade da seguinte forma:

tail -f wget-log
16950K .......... .......... .......... .......... ..........  1%  458K 45m5s
 17000K .......... .......... .......... .......... ..........  1%  549K 45m1s
 17050K .......... .......... .......... .......... ..........  1%  480K 44m59s
 17100K .......... .......... .......... .......... ..........  1%  442K 44m57s
 17150K .......... .......... .......... .......... ..........  1%  542K 44m53s
 17200K .......... .......... .......... .......... ..........  1%  490K 44m51s
 17250K .......... .......... .......... .......... ..........  1%  505K 44m48s

Se quiser interromper todos os processos do wget em execução, use o seguinte comando:

killall wget

Disfarce de navegador com –user-agent

Alguns sites desabilitam seus downloads quando detectam que não estão sendo feitos por um navegador. Veja como usar o wget “disfarçado” de Firefox:

wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" http://cdimage.ubuntu.com/daily-live/current/trusty-desktop-amd64.iso

Neste caso, usei o site do cdimage.ubuntu apenas como exemplo. O site é feito para permitir downloads do wget sem quaisquer disfarces.

Estabeleça um número de tentativas

Conexões problemáticas podem causar interrupções no seu download. Você pode estabelecer um número de tentativas pro wget.

wget --tries=100 http://cdimage.ubuntu.com/daily-live/current/trusty-desktop-amd64.iso

Por padrão, o wget sempre faz 20 tentativas. Portanto, use este parâmetro para especificar número de tentativas diferente deste padrão.
Para especificar um número infinito de tentativas, use tries=0.
Ao obter os seguintes erros, o wget vai parar de tentar imediatamente:

  • connection refusedconexão recusada pelo servidor
  • file not found (erro 404) – arquivo não encontrado

Como baixar um site completo via wget

Segue o comando para fazer download de um site completo, usando o parâmetro --mirror

wget --mirror -p --convert-links -P ./LOCAL http://www.site.com.br

em que:

  • –mirror – liga as outras opções do wget adequadas para fazer o espelhamento do site em questão
  • -p – baixa todos os arquivos necessários para que o site inteiro possa ser exibido localmente
  • –convert-links – depois de baixar, converte os links em documentos para visualização local
  • -P – grava todos os arquivos baixados dentro do diretório especificado

Como fazer o wget rejeitar certos tipos de arquivos

Em alguns casos, não quero baixar as imagens ou os arquivos de vídeo .flv… para estes casos, uso a opção --reject. Veja como (repetindo o exemplo anterior):

wget --reject=flv --mirror -p --convert-links -P ./LOCAL http://www.site.com.br

Como fazer download de apenas certos tipos de arquivos

Temos uma situação contrária à anterior. Ainda usando o mesmo exemplo, vamos restringir os downloads aos arquivos PDF:

wget -r -A.pdf --mirror -p --convert-links -P ./LOCAL http://www.site.com.br

Como baixar arquivos de um servidor FTP com o wget

Se for possível fazer uma conexão anônima, use o wget assim:

wget ftp://meuservidor.com.br

Se o servidor exige que se faça login, use o comando assim:

wget --ftp-user=nomedousuario --ftp-password=senhadele ftp://meuservidor.com.br

Faça bom proveito das dicas e, se quiser, dê uma conferida no comando wput (pra fazer uploads)!

O simulador de voos X-Plane 10 conta com dezenas de aeronaves e mais de 25 mil aeroportos.

O simulador de voos X-Plane 10 é um dos melhores jogos da categoria dos simuladores de voos.
Trata-se de um dos mais avançados pacotes de softwares de simulação de voo para PCs. O seu conjunto completo de cenários inclui a terra e o planeta marte – de fato, são mais de 25.000 aeroportos e mais de 30 aeronaves.
plane boeing 747-8 lufthansa
O software recria as sensações realísticas de um voo, computando todas as forças que agem sobre uma aeronave – o que inclui a turbulência, a gravidade, o efeito solo, o movimento vertical do ar (downdraft) etc. Até mesmo o ambiente climático é realisticamente simulado, com o uso de dados baixados a intervalos predefinidos.
Entre as aeronaves, o jogo conta com:F-22 simulador de voo x-plane

  • Cessna 172SP;
  • Piper PA-46-310P Malibu;
  • F-4 Phantom II;
  • F-22 Raptor;
  • ASK-21 glider;
  • Boeing B-52G Stratofortress;
  • Boeing B747-400 e
  • Boeing B777-200.

… e tem a space shuttle Endeavour, com suas viagens extra-terrenas.

Várias versões, multiplataforma

simulador de voo x-plane columbiaQuase não há restrições chatas, aqui. É possível jogar o X-Plane 10 em:

  1. Android
  2. iOS
  3. OSX
  4. Linux
  5. WebOS (Palm)
  6. e Windows

Novidades em relação às versões anteriores

As maiores novidades, sem dúvida, são:

  • um sistema totalmente novo para gerar automaticamente cenários plausíveis pro mundo todo
  • um novo sistema de renderização detalhada de nuvens e outros elementos climáticos/ambientais
  • um modelo de voo com acurácia melhorada
  • capacidade de aproveitar muito melhor o uso de CPUs de múltiplos núcleos.

Links:

Linux — comandos básicos

Neste artigo vou mostrar exemplos de comandos básicos, usados no dia a dia, no Linux — já que nem tudo a gente quer fazer no ambiente gráfico. Se quiser, guarde esta página nos seus favoritos, imprima-a e, se você se sentir à vontade, compartilhe com outros leitores a sua maneira de fazer as coisas nos comentários.

exemplos de uso do comando tar

Como criar um arquivo tar com o conteúdo de um diretório:

tar cvf arquivo.tar diretorio/

Para extrair:

tar xvf arquivo.tar

Como ver o conteúdo do arquivo tar:

tar tvf arquivo.tar

leia mais sobre o comando tar.

O comando grep

Leia aqui, mais exemplos de uso do comando grep. Basicamente, posso usar este comando para pesquisar uma string (cadeia de caracteres) dentro de um conjunto de arquivos:

grep -r "minha string" *.txt

O comando dado fará com que a cadeia “minha string” seja pesquisada em todos os arquivos com extensão .txt, recursivamente.
Eu prefiro usar este comando da seguinte forma… supondo que eu deseje encontrar todas as ocorrências da string “mcrypt”, dentro do arquivo /etc/php5/apache2/php.ini:

cat /etc/php5/apache2/php.ini | grep -i mcrypt

O parâmetro -i desliga a sensibilidade à caixa das letras – ou seja, tanto faz se estiver em minúsculas ou não.

Leia mais sobre o comando grep.

O comando find

Ainda dentro do tema “encontrar o que eu quero, no Linux”, o comando find é o que nos permite pesquisar o sistema atrás de um determinado arquivo. Veja como encontrar o arquivo php.ini, no seu sistema:

find -iname "php.ini"

Neste caso, para fazer uma busca insensível à caixa, usei o parâmetro -iname. A busca do find é realizada recursivamente, a partir do diretório atual. Eventualmente, você precisará ter privilégios especiais para acessar alguns conteúdos.

Lá embaixo, na seção sobre como ouvir músicas no console, eu ensino a usar o find para montar rapidinho a sua lista de músicas.

O comando SSH

O comando SSH permite acessar remotamente um servidor.
Como ver a versão do SSH, instalada no meu sistema:

ssh -V

Como acessar um servidor remoto woody.com, com o login wlantz, via SSH:

ssh -l wlantz woody.com

Leia mais sobre como se conectar a um servidor de banco de dados via SSH

O comando ls

Um dos comandos mais usados no terminal, lista os arquivos e diretórios. Tem várias formas de exibir esta lista. As minhas preferidas são as seguintes:

ls -l 

o comando, acima, exibe a relação de arquivos e diretórios de forma mais detalhada, informando as permissões, exibindo as permissões, tamanhos (em bytes), data e hora de criação…
Gosto de combinar o comando acima com o parâmetro -h, que “humaniza” o número que indica o tamanho do arquivo. Em outras palavras, o torna mais fácil de ser lido. Veja como:

ls -lh /etc/

Para colorir a lista, use:

ls -lh --color /etc/

O comando pwd

O comando pwd (print working directory), faz o que seu nome diz. Ele mostra o diretório atual, em que você se encontra:

pwd

Muito útil. Já me ajudou a não fazer a coisa errada, no lugar errado — se é que você me entende. 😛

O comando gzip

Cria arquivos comprimidos, com a extensão .gz. Merece um post inteiro, só pra ele. Vou mostrar, aqui, as formas mais comuns de usá-lo.
Como comprimir um arquivo:

gzip arquivo.txt

Isto vai criar o arquivo.txt.gz. Para descomprimir, faça assim:

gzip -d arquivo.txt.gz

Como extrair arquivos ZIP no Linux

Os arquivos compactados pelo ZIP, usam um padrão diferente do gzip. Portanto, o programa adequado para fazer este trabalho é outro. Use o unzip:

unzip arquivozipado.zip

Para ver o conteúdo do arquivo zipado:

unzip -l arquivozipado.zip

Como desligar o PC com o comando shutdown

Para desligar apenas, faça assim:

shutdown -h now

Este comando só pode ser fornecido desta maneira por quem está conectado como root ou administrador do sistema. Você provavelmente só conseguirá executar este comando, usando o sudo, como prefixo:

sudo shutdown -h now

Para esperar 10 minutos, antes de desligar:

sudo shutdown -h +10

Para reiniciar agora o computador:

sudo shutdown -r now

Para cancelar o comando shutdown:

sudo shutdown -c

O comando ps

Este comando exibe os processos em execução no seu sistema. Pode ser usado sem parâmetro algum, mas vai produzir uma quantidade muito grande (ou muito pequena) de informações. É costume “filtrar” sua saída com alguns parâmetros e combinando outros comandos, para ver apenas o que interessa.
Eu gosto de usar a “sintaxe BSD” para ver todos os processos em execução no sistema:

ps aux

Muita coisa?! Misture com o comando less para ir mais devagar:

ps aux | less

use a tecla ‘q’, para sair do less.
Para ver apenas os processos referentes ao navegador Chromium, use assim:

ps aux | grep -i chromium

Isto é muito útil para descobrir o PID de um processo que você deseja interromper à força, com o comando kill.

Como saber a quantidade de memória livre no Linux

O comando free resolve este assunto pra você:

Solaris-8:~$ free
             total       usado      livre    compart.  buffers     em cache
Mem:       2052948    1740056     312892          0     145652     809244
-/+ buffers/cache:     785160    1267788
Swap:      2076668      16184    2060484
Solaris-8:~$ 

Muito complicado para ler? Eu sei. Use o parâmtro -g para converter todos estes número em gigabytes:

free -g

ou use assim, para “humanizar” a exibição do resultado e incluir os totais:

free -ht

O comando top

O trabalho deste comando é exibir as aplicações mais ativas no sistema – organizadas pela intensidade de uso da CPU:

top

Comando top no Linux
Dica rápida: use a tecla ‘z’ para alterar as cores de exibição no top.

Como verificar o uso do disco no Linux

O comando df exibe o uso atual do seu disco. Para exibir o espaço ocupado e livre (available) no seu sistema de arquivos, em kilobytes, use-o assim:

df -k

Eu gosto de usar desta forma:

df -hT

O parâmetro -h humaniza (human readable) a exibição dos resultados. E o -T mostra o tipo do sistema de arquivos em uso.

O comando kill – ou como interromper (matar) um processo em execução

Neste exemplo, vou exibir os PIDs do aplicativo Chromium (o navegador). Em seguida, vou interromper sua execução. Isto é muito útil quando um processo trava. Veja como funciona.
Primeiro, uso o comando ps para determinar o PID do Chromium:

ps -ef | grep -i chromium-browser
1000      5396  1913  5 Dez16 ?        01:18:36 chromium-browser                          
1000      5400  5396  0 Dez16 ?        00:03:26 chromium-browser                          
1000      5401  5396  0 Dez16 ?        00:00:00 /usr/lib/chromium-browser/chrome-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote

Destas 8 colunas exibidas, a segunda é a que interessa no momento. É esta que exibe o PID de cada processo. Vou escolher o primeiro: 5396.
… e interromper sua execução:

kill 5396

opcionalmente, você pode usar o parâmetro -9 para matar processos “mais difíceis”:

kill -9 5396

O comando cat

comando cat no LinuxO comando cat – que eu suponho ser uma abreviatura da palavra catch, que pode ter o significado de “pegar” – serve para mostrar o conteúdo de uma arquivo na tela – usualmente texto.

cat .bashrc

Como o conteúdo exibido pode acabar por ser muito extenso, prefiro combinar este comando com o grep. Assim, por exemplo:

Solaris-8:~$ cat .bashrc | grep aliases
# enable color support of ls and also add handy aliases
# some more ls aliases
# ~/.bash_aliases, instead of adding them here directly.
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases

O comando é muito útil para analisar logs do sistema. Assim, se quiser verificar a quantidade de memória livre no sistema, através do arquivo /proc/meminfo, faça assim:

cat /proc/meminfo | grep -i free
MemFree:          317056 kB
HighFree:         107440 kB
LowFree:          209616 kB
SwapFree:        2052464 kB
HugePages_Free:        0

O comando mount

Este já foi um dos que eu mais usei, nos “primórdios do Linux”. Para montar um drive de CD-ROM, o comando é este:

mount -t iso9660 /dev/cdrom /mnt

Esta linha de comando parte do pressuposto de que a pasta /mnt já existe no sistema. Se ela não existir, um erro será retornado. Você pode usar o nome de outra pasta existente no seu sistema. Mas certifique-se de que ela esteja vazia – você não perderá o seu conteúdo. Mas ele ficará indisponível enquanto o dispositivo estiver montado usando aquela pasta como referência.
O iso9660 é um dos sistemas de arquivo mais comumente usados em CD-ROMs. Mas você pode, para se sentir mais seguro(a) substituir isto por auto, assim:

mount -t auto /dev/cdrom /mnt

… isto fará com que o sistema tente detectar automaticamente o sistema de arquivos usado na mídia.
Para montar um antigo drive de disquete, usa-se:

mount -t vfat /dev/floppy /media/floppy

Se usado sozinho, o comando mount exibe os sistemas de arquivos ativos no sistema:

Solaris-8:~$ mount
/dev/sda2 on / type ext4 (rw,errors=remount-ro)
/dev/sda3 on /home type ext3 (rw)
gvfsd-fuse on /run/user/justincase/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=justincase)

O comando chmod

Este comando é usado para alterar as permissões de um ou mais arquivos ou de um diretório, no sistema.
Para tornar o arquivo meuscript.shexecutável:

chmod aug+x meuscript.sh

Este comando torna o arquivo executável por todos (a), pelo usuário (u) e pelo grupo (g).
Para remover a permissão de execução para todos e deixar apenas pro usuário atual, faça assim:

chmod ag-x meuscript.sh

O comando chown

No exemplo, vamos alterar o dono do arquivo meuarquivo.txt para pcarlos. O grupo, a que ele pertence, continuará sendo justincase. Veja como:

Solaris-8:~# ls -la *.txt
-rw-rw-r-- 1 justincase justincase   847 Set 28 19:44 lightdm.txt
-rw-rw-r-- 1 justincase   justincase     0 Dez 17 12:40 meuarquivo.txt
Solaris-8:~# chown pcarlos.justincase meuarquivo.txt
Solaris-8:~# ls -la *.txt
-rw-rw-r-- 1 justincase justincase   847 Set 28 19:44 lightdm.txt
-rw-rw-r-- 1 pcarlos    justincase     0 Dez 17 12:40 meuarquivo.txt

Se você obtiver uma mensagem de erro ao executar este comando, o motivo provável é que você não tem permissão para fazer esta alteração. Use o root, neste caso.

Como alterar a senha de usuário no Linux

Para isto, use o comando passwd. O superusuário, root, pode alterar a senha de qualquer outro usuário. Neste caso, o sistema não pergunta nada além da senha desejada:

Solaris-8:~# passwd pcarlos
Digite a nova senha UNIX: 
Redigite a nova senha UNIX: 
passwd: senha atualizada com sucesso

Use este mesmo comando para desabilitar a senha de um usuário:

passwd -d pcarlos

Ao ter a senha desabilitada, o usuário poderá entrar no sistema sem precisar fornecê-la.

Como encontrar um comando no seu sistema

Vou mostrar como usar o comando whereis (Quer dizer ondeestá, em inglês) e como ele pode ser usado para ver onde, exatamente, se encontra um determinado comando e os arquivos diretamente relacionados a ele no seu sistema.
Vou começar por mostrar como encontrar o comando ls e alguns arquivos relativos a ele (páginas do manual, normalmente):

Solaris-8:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

No exemplo dado, foram exibidos 2 arquivos:

  • /bin/ls — o programa ls, que lista os arquivos presentes no diretório atual
  • /usr/share/man/man1/ls.1.gz — a página do comando, no manual do sistema. É o texto que aparece, quando você digita o comando man ls

O comando whatis

O significado deste comando é oqueé, em inglês. Sua função é mostrar o que um determinado comando é ou faz no seu sistema. De certa forma, a ajuda ou a página do manual referente a cada comando, já faz isto – ele apenas simplifica.
Experimente:

whatis ls

O comando su

Basicamente, a função deste comando é permitir trocar rapidamente para outro usuário. O administrador do sistema pode assumir a identidade de qualquer usuário, sem precisar fornecer sua senha, através do comando su. Desta maneira, o administrador pode reproduzir um erro ou uma situação específica em que o usuário esteja tendo dificuldades. No exemplo abaixo, o comando será usado para assumir a identidade do usuário patodonald:

su patodonald

Se você não for root, vai precisar conhecer a senha do usuário para obter sucesso neste comando.
Como administrador, você pode usar o su para executar um ou mais comandos no lugar de um usuário e voltar ao seu prompt:

su - patodonald  -c 'chmod a+x script.sh'

No exemplo acima, executei o comando chmod a+x script.sh como usuário patodonald. Este comando torna o arquivo script.sh executável por todos os usuários do sistema.

Como alterar a data e a hora no Linux

No Linux, é muito simples alterar a hora e a data do sistema. Contudo, por ser um procedimento cujos resultados trazem implicações mais profundas – pode também abrir brechas de segurança no seu sistema – só pode ser executado com privilégios administrativos.
Veja como alterar a data do sistema para 06 de Agosto de 2080:

sudo date --set="2080-08-06"

Para ajustar a hora 11h da noite, faça assim:

sudo date --set="23:00:00"

Você pode usar este modelo para ajustar minutos e segundos.
“Posso ajustar os dois de uma só vez?”
Pode, sim. Veja como:

sudo date --set="2080-08-06 23:00:00"

O comando hwclock

Enquanto o comando date ajusta a hora e a data do sistema (ligado ao kernel), o comando hwclock faz o ajuste direto no relógio do BIOS, o RTC.
Veja como ajustar o relógio do BIOS, pelo do sistema:

sudo hwclock --systohc

ou o contrário:

sudo hwclock --hctosys
SAIBA MAIS SOBRE O ASSUNTO:

Veja como pode ser mais simples ajustar o relógio do sistema e do hardware automaticamente, através de um servidor NTP.

Ouça música no console com o mpg123

Para ouvir música no console, meus favoritos são o mpg123 e o mpg321.
Não sou muito do tipo que escolhe o que vai ouvir – se está no meu HD, é por que eu gosto. O que me leva aos comandos que seguem.
Para ouvir todas as músicas, em mp3, dentro do diretório Música/ (e seus subdiretórios), recursivamente e misturadas, uso o mpg321:

mpg321 -Bzx Música/

As opções -Bzx ativam a recursividade, misturam as músicas antes de tocar e exibe na barra de título do terminal o nome da música que está tocando, respectivamente.
O mpg123 não pode ser ignorado, em função dos vários recursos presentes no programa – e ele é software livre desde 2006! Mas, infelizmente, ele não tem a recursividade.
Para resolver isto, criei uma lista recursiva de todos os arquivos .mp3, com o comando find, deste jeito:

find Música/ -iname *.mp3 > playlist.lst

Em seguida, é só executar o mpg123:

mpg123 -z --title --list playlist.lst

Imprima este artigo, ponha-o nos seus favoritos (para o caso de precisar de referências posteriormente) e, lembre-se que a melhor forma de agradecer é compartilhar
– passe o conhecimento para frente! 😉