De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Dicas rápidas para linha de comando!

Colaboração: Zephyr

Data de Publicação: 05 de fevereiro de 2015

Quando comecei a usar o Linux, o que mais me prendeu ao sistema foi o poder dado ao usuário pela linha de comando. Que me perdoem os amantes da GUI, mas para mim a CLI é a verdadeira alma do sistema, o verdadeiro poder.

Deixo aqui algumas dicas rápidas para a linha de comando. Com certeza muitos usuários já conhecem os macetes, mas pode servir de ajuda/auxílio principalmente para os iniciantes.

Vamos lá.

#1 - ASSISTA STAR WARS EM MODO ASCII

Dê o seguinte comando no shell:

  $telnet towel.blinkenlights.nl

Agora é só curtir o filme. :D

#2 - DESCUBRA SEU IP EXTERNO PELA LINHA DE COMANDO

De vez em sempre precisamos saber o nosso IP dinâmico externo fornecido pela operadora. Existem N formas de fazer isso. Aqui vou passar somente algumas dicas para a linha de comando, pois é a forma que julgo mais rápida, até mais rápida do que ter de acessar a página de configuração do roteador/modem para consultar o IP adquirido.

  • Usando wget: (utilize qualquer uma das opções, encontre a que você achar mais eficiente)

      $wget -qO - icanhazip.com
      $wget -qO - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
      $wget -qO - ifconfig.me
      $wget -qO - ip.appspot.com
      $wget http://ipecho.net/plain -O - -q ; echo
    

  • Usando curl: (utilize qualquer uma das opções, encontre a que você achar mais eficiente)

      $curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
      $curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+'
      $curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
      $curl -s monip.org | iconv -f iso-8859-1 | sed -n 's/.*IP : \([0-9.]*\).*/\1/p'
      $curl ifconfig.me
      $curl ipecho.net/plain
      $curl icanhazip.com
      $curl ipv4.icanhazip.com (explicitamente evoca o IPv4)
      $curl ipv6.icanhazip.com (explicitamente evoca o IPv6)
      $curl curlmyip.com
      #curl l2.io/ip
      $curl ip.appspot.com
      $curl ifconfig.me/ip
      $curl eth0.me
    

  • Com JSON caso você queira:

      $curl httpbin.org/ip
      $curl wtfismyip.com/json
    

  • Usando dig:

      $dig +short myip.opendns.com @resolver1.opendns.com
    

  • Usando lynx:

      $lynx -dump checkip.dyndns.org | grep 'Current IP Address:'
      $lynx -dump eth0.me
      $lynx --dump monip.org | grep 'IP'
    

    Não vou me prolongar mais nesta parte, com oeu disse: EXISTEM "N" MANEIRAS PARA SE CHEGAR AO MESMO RESULTADO!

    Cabe a você escolher a que achar melhor. Faça alterações nos comandos, faça suas experiências, adapte-os. Basta olhar na lista e verá que exitem várias adaptações e modificações para um mesmo comando principal. O que influencia no final é sua escolha.

    Finalizando esta parte, indico uma última alternativa:

    Quem usa Debian/Ubuntu pode instalar, caso já não tenha instalado, o pequeno programa miniupnpc se o seu roteador/modem tiver suporte para UPnP. Depois de instalado é só executar:

      $upnpc -s | grep ^ExternalIPAddress | cut -c21-
    

    Esse comando fará o mesmo que todos os outros indicados nesta seção: te mostrará seu IP dinâmico externo.

Dica

Você pode criar um shell script simples com algum dos comandos acima para tornar o processo ainda mais rápido. Exemplo

  #!/bin/bash
  
  #Cria váriável e atribui valor
  MYDINIPADDRESS="`curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`"
  
  echo "\n O seu endereço IP externo é: $MYDINIPADDRESS"

Salve o arquivo (de preferência coloque a extensão .sh), torne-o executáve alterando suas permissões e depois é só executar.

#3 - EXTRAINDO TEXTO PURO DE ARQUIVOS HTML

Certa vez precisei extrair texto puro de um arquivo html. Encontrei várias opções de conversores e etc, mas a maneira mais rápida e eficaz para mim foi utilizando o lynx.

Basta executar o comando:

  $lynx --dump arquivo.html > arquivo.txt

Funciona também com arquivos PHP

#4 - UM POUCO DE CURL

Alguns usos úteis do curl:

  • Baixando arquivos:

      $curl -o nome_arquivo_local http://url_direta_para_o_arquivo
    

    Este comando funciona mesmo com binários, desde que você tenha o link direto para o arquivo

  • Baixando/Upando arquivos de/para servidores FTP:

      $curl -u ftpuser:ftppass -O ftp://diretório_do_servidor/nome_do_arquivo
    

    O comando acima baixa o arquivo e salva no diretório local

      $curl -u ftpuser:ftppass -O ftp://diretório_do_servidor/outro_diretório/
    

    O comando acima lista todo o conteúdo existente em outro_diretório

      $curl -u ftpuser:ftppass -T arquivo.txt ftp://ftp.algumserver.org
    

    O comando acima upará o arquivo.txt para o servidor

      $curl -u ftpuser:ftppass -T "{arquivo1,arquivo2}"  ftp://ftp.algumserver.org
    

    O curl permite upar vários arquivos de uma vez, exatamente como feito no exemplo acima. Você também pode utilizar curingas, como no comando abaixo, onde todos arquivos que satisfazerem a expressão serão baixados:

      $curl   ftp://ftp.server.org/downloads/linux/[a-z]/
    

    O curl é possui grande poder e versatilidade (aliás, todo o Linux é assim :D), os comandos aqui foram apenas uma simples mostra. Não vou aprofundar ou então deixar de ser "Dicas rápidas para linha de comando!"

#5 - COMANDOS ÚTEIS

  • Testando se uma porta está aberta com o comando echo:

      $echo >/dev/tcp/xxx.xxx.xxx.xxx/53 && echo "open"
    

    No lugar do xxx.xxx.xxx.xxx coloque o endereço IP que deseja testar

  • Criando senhas aleatórias:

      < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-10};echo;
    

    Esta senha possui 10 caracteres. Altere a quantidade de caracteres desejados editando o comando em: {1:-10}

  • Exibir nome de dono do arquivo ou diretório:

      $stat -c %U arquivo.txt
    

  • Exibindo o IP local:

      $ifconfig | grep "inet end.:" | awk '{print $3}' | grep -v '127.0.0.1' | cut -f2 -d:
    

    Este comando pode não funcionar em sua máquina dependendo do sistema e configuração. Se não funcionar você deve efetuar as devidas alterações no mesmo. Ex.: seu sistema pode estar em inglês, neste caso, "grep "inet end.:"" deve ser alterado para "grep "inet addr:"", etc, etc. Existe um comando mais rápido: "$ip addr show". Minha intenção foi mais uma vez demonstrar como existem vários caminhos para se chegar ao mesmo resultado.

  • Star Wars DNS

      $traceroute 216.81.59.173
    

    O comando acima te dará o traceroute de Star Wars.. Não entendeu? Execute.

      $( seq 1 8 200 ; seq 6 8 200 ) | sort -n | xargs -I{} -n 1 dig +short -x 206.214.251.{}
    

    Acima: Star Wars Episodio IV em DNS reverso

    Só pelo momento.

    Espero ter contribuído com o grupo.

    Até mais.

    By Zephyr/mkmastersys

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Zephyr