IFPR-Labtelecom: Linux Debian (CLI)

A interface de linha de comando (CLI) é uma ferramenta extremamente útil nos sistemas GNU/Linux. Alguns comandos que utilizo na distribuição Debian são descritos aqui. Esses comandos também funcionam em outras distribuições Linux. A grande vantagem do Debian é a ferramenta apt que permite instalar pacotes com muita facilidade. Além disso, as versão atuais tem mais de 50000 pacotes (programas) disponíveis gerenciados por um time global de desenvolvedores e com código fonte aberto.

apt-get update: atualiza a base de pacotes mais recente. Recomendado utilizar sempre antes de instalar algum pacote.

date: permite ajusta do relógio e calendário, por exemplo date -s hh:mm:ss serve para ajustar o relógio hora:minuto:segundo. O comando date mmddhhmmYYYY ajusta o mês, dia, hora, minuto e ano.

dd: data dump é um comando clássico no Linux, permite a criação de imagens, por exemplo dd if=usbboot.img of=/dev/sdc bs=512 copia a imagem bit-a-bit para o dispositivo localizado no diretório /dev/sdc.

df | awk '{print $5} ' retorna a coluna 5 do comando df (disk file).

ethtool enp6s7: utilizado para verificar o status da interface e rede enp6s7.

ntpdate a.st1.ntp.br: atualiza relógio com servidor do NTP.br, lista de servidores aqui.

netstat -tulpn | grep LISTEN verifica as portas TCP e UDP em uso.

rtcwake -m mem -s 28800 suspende o computador por 28800/3600 = 8 horas.

scp: esse comando é utilizado para copiar arquivos. Por exemplo, scp -r /var/www/html root@192.168.1.12:/var/www copia o diretório /var/www/html/ para o servidor 192.168.1.12.

uname: mostra informações do computador, por exemplo uname -a apresenta informações completas.

x11vnc -viewonly -shared: inicia o servidor VNC no modo conpartilhado e somente para leitura.

wc -l file.txt: retorna a quantidade de linhas de um arquivo no formato N file.txt.

Processamento de texto (grep e cut): ferramentas de processamento de texto são úteis para extrair parâmetros específicos de texto. Por exemplo o comando ifconfig eth0 retorna os parâmetros de interface de rede, conforme resultado abaixo:

bash-4.3# ifconfig eth0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.45.10 netmask 255.255.255.0 broadcast 192.168.40.255

inet6 fe80::2039:b9c2:1b0b:6829 prefixlen 64 scopeid 0x20<link>

ether c5:70:01:43:5e:83 txqueuelen 1000 (Ethernet)

RX packets 28124006 bytes 403813623 (385.1 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 24724269 bytes 2410852404 (2.2 GiB)

TX errors 0 dropped 0 overruns 0 carrier 7 collisions 0

Supondo que é necessário obter apenas o endereço MAC (informado logo após a palavra ether no comando acima). Nesse caso como o comando ifconfig eth0 | grep ether irá extrair apenas a linha com a palavra ether conforme o resultado abaixo

bash-4.3# ifconfig eth0 | grep ether

ether c5:70:01:43:5e:83 txqueuelen 1000 (Ethernet)

Na sequência é necessário obter apenas o MAC address. Dentre os comando disponíveis poderia ser utilizado o awk ou sed. Mas, nesse exemplo será demostrado o efeito do comando cut. Nesse caso, será utilizado como delimitador o caracter espaço simples. O endereço MAC fica localizado entre dois espaços simples. Mas, outras palavras também. Logo, um segundo parâmetro será utilizado para filtrar os campos (fields -f) obtido com o comando cut.

ifconfig eth0 | grep ether | cut -d " " -f 1 até ifconfig eth0 | grep ether | cut -d " " -f 8: nesse caso o resultado abaixo será nulo, pois antes da palavras ether existem 8 espaços simples (correspondente a tabulação - tab) do resultado acima

ifconfig eth0 | grep ether | cut -d " " -f 9: nesse caso existem 8 espaços simples (correspondente ao tab) no início e o espaço simples 9 após a palavra ether, nesse caso como o parâmetro -f 9 é filtrada a resposta abaixo:

ether

ifconfig eth0 | grep ether | cut -d " " -f 10: nesse caso é obtido o MAC que está localizado entre os espaços simples 9 e 10, logo com o parâmetro f -10 é obtida a resposta desejada, conforme abaixo:

c5:70:01:43:5e:83