Dicas rápidas para linha de comando

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

[ Hits: 11.773 ]

Por: Zephyrus (formerly mkmastersys) em 29/01/2015


Comandos úteis



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

echo >/dev/tcp/xxx.xxx.xxx.xxx/pp && echo "open"

No lugar do "xxx.xxx.xxx.xxx" coloque o endereço IP que deseja testar e do "pp" o número da porta.

Criando senhas aleatórias:

LANG=c < /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.

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 tracert:

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.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Um pouco de cURL
   3. Comandos úteis
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

I Encontro da Comunidade Viva o Linux

Ambiente gráfico LXDE

Container Elastic Stack para visualização de logs do Proxy Squid

Membro da comunidade Viva O Linux na Espanha

Horário de verão automático

  
Comentários
[1] Comentário enviado por Zephyr em 29/01/2015 - 15:02h

*ERRATA:

No Artigo, na sugestão de script que dei, no comando final echo eu me esqueci de incluir a opção: -e
Sem essa opção o echo não estará habilitado a interpretar a barra invertida em \n.

O exemplo corrigido segue abaixo:

==========================================================================
#!/bin/bash

#Cria variável e atribui valor

MYDINIPADDRESS="`curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`"


echo -e "\n O seu endereço IP externo é: $MYDINIPADDRESS"

==========================================================================


[2] Comentário enviado por fabio em 29/01/2015 - 18:22h

Muito bom o artigo, meus parabéns!

[3] Comentário enviado por Zephyr em 31/01/2015 - 21:26h


[2] Comentário enviado por fabio em 29/01/2015 - 18:22h

Muito bom o artigo, meus parabéns!


Thanx man!

[4] Comentário enviado por removido em 31/01/2015 - 22:06h

Interessante o artigo
Parabéns.

[5] Comentário enviado por Zephyr em 31/01/2015 - 23:47h


[4] Comentário enviado por offsec em 31/01/2015 - 22:06h

Interessante o artigo
Parabéns.


Thanx. Valeu!

[6] Comentário enviado por jhonatanp em 01/02/2015 - 12:49h

Nossa muito legal esses comandos,

Eu não sabia que dava pra testar porta assim geração aletoria muito legal e rastrear o Star Wars foi D + heuehueh.

Eu fiz uma versão com awk do comando que mostra ip e que comtemple os dois idiomas.

ifconfig | awk '/inet (end|addr).?:/ && !/127.0.0.1/ {print $3}'

[7] Comentário enviado por Zephyr em 01/02/2015 - 13:01h


[6] Comentário enviado por jhonatanp em 01/02/2015 - 12:49h

Nossa muito legal esses comandos,

Eu não sabia que dava pra testar porta assim geração aletoria muito legal e rastrear o Star Wars foi D + heuehueh.

Eu fiz uma versão com awk do comando que mostra ip e que comtemple os dois idiomas.

ifconfig | awk '/inet (end|addr).?:/ &amp;&amp; !/127.0.0.1/ {print $3}'


Valeu pela contribuição!




[8] Comentário enviado por hellnux em 02/02/2015 - 20:01h

Olá!

Bela contribuição. Gosto muito deste tipo de dica. Já usei bastante esses de pegar IP, mas ele não são muito eficientes quando o locale são diferentes.

Por exemplo, quando o LANG=en_US
$ ifconfig | grep "inet end.:" | awk '{print $3}' | grep -v '127.0.0.1' | cut -f2 -d:
retorna nada
$ ifconfig | awk '/inet (end|addr).?:/ &amp;&amp; !/127.0.0.1/ {print $3}'
Bcast:IP_qualquer

Prefiro usar apenas:
$ hostname -i

Assim deixo minha contribuição =D

[9] Comentário enviado por albfneto em 03/02/2015 - 11:37h

Muito bom esse artigo. Geral e comandos de uso amplo. Favoritado.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux,Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva.

[10] Comentário enviado por Zephyr em 04/02/2015 - 00:13h


[8] Comentário enviado por hellnux em 02/02/2015 - 20:01h

Olá!

Bela contribuição. Gosto muito deste tipo de dica. Já usei bastante esses de pegar IP, mas ele não são muito eficientes quando o locale são diferentes.

Por exemplo, quando o LANG=en_US
$ ifconfig | grep "inet end.:" | awk '{print $3}' | grep -v '127.0.0.1' | cut -f2 -d:
retorna nada
$ ifconfig | awk '/inet (end|addr).?:/ &amp;amp;&amp;amp; !/127.0.0.1/ {print $3}'
Bcast:IP_qualquer

Prefiro usar apenas:
$ hostname -i

Assim deixo minha contribuição =D


Obrigado pela contribuição.
Explico aqui o porque dos comandos não funcionarem quando em LANG=en_US.

Quando o sistema está configurado para o inglês, o comando ifconfig imprime o resultado e mais especificamente a parte que queremos (o endereço IP) da seguinte forma:

eth0 Link encap:Ethernet HWaddr 00:1e:c9:fa:25:8b
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
etc
etc
....

Já para a LANG=pt_BR.UTF-8, o resultado é o seguinte:

eth0 Link encap:Ethernet Endereço de HW 00:1e:c9:fa:25:8b
inet end.: 192.168.0.13 Bcast:192.168.0.255 Masc:255.255.255.0
etc
etc
....
O problema ocorre exatamente por causa da formatação da 2º linha: em inglês, a parte que queremos fica:
"inet addr:192.168.0.13" e em português fica: "inet end.: 192.168.0.13"

Note que no inglês não há espaço entre addr: e o número do IP e em português há.

Sendo assim, em inglês o IP está em $2 e em português está em $3

Adaptando os comandos, tanto o que passei quanto o criado pelo colega @jhonatanp fica o seguinte:

Para sistemas em inglês:

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d: (comando que apresentei modificado: troquei o $3 por $2)
ifconfig | awk '/inet (end|addr).?:/ && !/127.0.0.1/ {print $2}'| cut -f2 -d: (comando do @jhonatanp modificado: acrescentei
o cut para retirar "addr:" do resultado; troquei o $3 por $2)

Em relação ao "hostname -i", ele é mais rápido e também outra alternativa.

Bom, como eu digo: "Vários caminhos para o mesmo destino!

[11] Comentário enviado por pdcassiano em 06/02/2015 - 08:29h


Muito bom o Post.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts