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.699 ]

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

Processos no Linux

Usando webcam no Ubuntu Linux

Instalação e configuração da zsh no Gentoo GNU/Linux

Tunning do KDM theme

Convertendo sistemas físicos em máquinas virtuais

  
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