37
Curso de Linux Aula 3 Redes e scripts Lucas Ricardo e Enrico Manfron [email protected]

Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping Testa a velocidade da conexão

  • Upload
    others

  • View
    46

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Curso de LinuxAula 3

Redes e scripts

Lucas Ricardo e Enrico [email protected]

Page 2: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisÃO

Page 3: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãomaNUTENÇÃO DO SISTEMA

◆ $ fsck <opções> <dispositivo>● FileSystem Check ● Existe uma para cara sistema de arquivo diferente:

○ fsck.ext2○ fsck.ext3

◆ $ badblocks <opções> <dispositivo>● Marca blocos defeituosos no HD

○ Ajuda na hora de gravar informações○ O sistema já sabe onde está defeituoso

Page 4: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãoAtividades programadas

◆ cron● Daemon que permite agendar execução de comando ou programa● Edição no arquivo /etc/crontab

○ cron.daily, ...

◆ $ at● Agendar tarefa:

○ echo ls | at 19:54● Visualizar tarefas:

○ $ atq● Remover tarefas:

○ $ atrm <NÚMERO DA TAREFA>

Page 5: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãoKernel e módulos

◆ Peça central do sistema operacional◆ Controla os dispositivos e periféricos do sistema

Linux não é um Sistema Operacional, é um Kernel

◆ Windows 10 é um sistema operacional● Kernel = Windows NT

https://en.wikipedia.org/wiki/Comparison_of_operating_system_kernels

Page 6: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãoKernel e módulos

◆ Kernel (Formado por módulos)

Page 7: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãoDaemons e logs

◆ Logs● Arquivos de registro de operações do sistema.

◆ Daemons● Controlam serviços providos pelo sistema, quando necessário. ● Guarda de trânsito

Page 8: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãoExecução de programas

◆ $ <comando> ; <comando>: ...● Executa comandos em sequência.

◆ $ ps <opções>● Apresenta processos em execução no terminal que foram iniciados.

◆ $ top <opções> ● Apresenta todos os processos.

◆ $ fg <numero>● Passa um processo para o primeiro plano.

◆ $ bg <numero>● Passa um processo para o segundo plano.

Page 9: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

revisãoControle de execução

◆ $ CTRL + C ● Cancela a execução de um processo em primeiro plano.

◆ $ CTRL + z ● Para a execução de um processo em primeiro plano.

◆ $ jobs● Apresenta processos parados ou em segundo plano.

◆ $ kill <opções> <sinal> <número> ● Permite que você envie um sinal a um programa.

Page 10: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

redes e internet

Page 11: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Redes e internet➔ Rede é a conexão de duas ou mais máquinas com o objetivo de

compartilhar recursos entre uma máquina e outra:◆ Mensagens◆ Uso de impressoras◆ Compartilhamento de dados◆ Internet◆ Acesso sites

Page 12: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Redes e internet➔ Como a gente se localiza nessa rede de dados então?

◆ Endereço IP● IPV4● IPV6

Page 13: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Redes e internet➔ Endereço de IP:

Page 14: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Redes e internet➔ Tipos de Redes:

◆ LAN - Local Area Network - Conecta computadores em um mesmo espaço físico, normalmente que utilizam o MESMO servidor de internet.

◆ MAN - Metropolitan Area Network - Redes compartilhadas em cidades ou grandes localidades.

◆ WAN - Wide Area Network - Redes que compartilham arquivos entre localidades maiores do que uma cidade (Estados e países)

Page 15: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Redes e internet➔ Tipos de Redes:

Page 16: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

cOMANDOS de rede➔ $ wget <url>

◆ Esse comando é utilizado para baixar arquivos diretamente pelo terminal● wget http://website.com/files/file.zip

➔ $ curl◆ Manipula acessos e dados em “sites” da internet (URL)

● Acesso à informações disponíveis na rede:○ curl http://wttr.in/Curitiba

● Verificação de disponibilidade de sites:○ curl -Is https://www.twitter.com -L | grep HTTP/

➔ $ Ssh◆ Comando para gerenciar acesso à servidores

➔ $ git◆ Comando para gerenciar acesso à repositórios

Page 17: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

cOMANDOS de rede➔ $ ping <host>

◆ Testa a velocidade da conexão entre você e um servidor◆ Útil para joguinhos multiplayer

● Envia apenas um pacote para testes:○ ping <host> -c 1

➔ $ telnet ◆ Possibilita o acesso remoto à um computador

➔ $ ftp◆ Possibilita a troca de arquivos entre um computador e um outro remoto.

Page 18: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

cOMANDOS de rede➔ $ Netcat

◆ Possibilita a troca de mensagens entre dois computadores, via rede LAN.◆ IP não pode ser Privado (10.10.xx.xx)◆ Manual ensina corretamente como deve ser feito o uso

● Cuidado! Você pode dar comandos via netcat, ou seja, alguém pode executar “$ rm - rf /” no seu computador

Extras:

➔ $ PV◆ Monitora o progresso de transferências de arquivos

➔ $ wall◆ Manda mensagens para o usuário que está em outro tty (Terminal)

Page 19: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

shell scriptbásico do básico

Page 20: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

introdução à shell script➔ Shell Script é utilizado principalmente para tornar nossa vida,

dentro do linux, mais fácil, prática e simples. Muitas de nossas tarefas temos que repetir todos os dias, como abrir os mesmos programas ou esvaziar sempre e lixeira, etc....

➔ Pode ser usado para rodar programas executados a partir do terminal.

➔ Um script nada mais é que uma lista de passos que o seu computador lê e executa para você.

Page 21: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Shell Scriptbásico, relembrando:

➔ $ echo <mensagem> ◆ Imprime a mensagem na tela

➔ $ sleep <número>◆ Espera <número> segundos

➔ $ read <variável>◆ Coleta valor do teclado e coloca na variável

➔ $ >◆ Redirecionamento para arquivo

➔ $ exit◆ Sai do script

Page 22: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

shell script

Page 23: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

shell scriptcomeçando:

➔ Um Shell Script pode ser escrito em qualquer editor de texto.

➔ Para começar crie um arquivo de texto no diretório que você preferir:◆ Abra o terminal◆ Vá ao diretório onde deseja-se armazenar o arquivo◆ Execute “gedit <nome_do_arquivo>.sh” ◆ Lembre-se que para executar precisamos dar permissões de execução

use “chmod 711 <nome_do_arquivo>.sh”

Page 24: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

escrevendo:

➔ Um Shell Script pode ter definido qual interpretador de comandos será usado...

➔ Você poderá usar outros, mas para a aula de hoje usaremos o bash:◆ Na primeira linha digite “#!/bin/bash”◆ É necessário usar o path completo onde se encontra o shell, nesse caso ele

está no diretório /bin/

shell script

Page 25: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

exercício:

➔ Escreva seu primeiro script e salve-o:

#!/bin/bash # este é um comentário echo "Seu nome de usuário é:" whoami

shell script

Page 26: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

exercício:

➔ Escreva seu primeiro script e salve-o:

#!/bin/bash # este é um comentário echo "Seu nome de usuário é:" whoami

shell script

Page 27: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

executando:

➔ Para executar o script basta digitar no terminal◆ ./<nome_do_script>.sh◆ se ele estiver salvo em outro diretorio que não seja o seu atual, é necessário

usarmos o PATH

shell script

Page 28: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Variáveis:

➔ dentro do shell é possivel criar variáveis, assim:◆ nome_da_variavel=<alguma_coisa>◆ nome_da_variavel : sequência de caracteres que deve começar por qualquer

letra maiúcula ou minúscila ou underscore(_)◆ <alguma_coisa>: qualquer dado que deva ser valorado à variável◆ para acessar o valor das variáveis usamos o $ (cifrão) na frente do seu nome

● ex: jamelao=”fruta” echo $jamelao

NOTA: Observe que não pode haver espaços entre o sinal de igual e o nome da variável.( Pois é,o shell apesar de ser lindo tem umas regrinhas bem chatinhas)

shell script

Page 29: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

variáveis:

➔ É possível colocar saídas de comandos nas variáveis:◆ nome_da_variavel=$(comando)◆ nome_da_variavel=`comando`

➔ É possível pegar dados do teclado◆ read nome_da_variavel_pra_colocar_o_dado

➔ É possível pegar dados de arquivos◆ nome_da_variavel < hacker.txt

shell script

Page 30: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

exercício:

➔ Escreva um comando em uma variável e digite $<variável>. ➔ O que acontece ?➔ Onde podemos usar isso?

Sim, em scripts!

shell script

Page 31: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

➔ if [ CONDIÇÃO ];then

AÇÕESfi

◆ Nota: lembre-se sempre de colocar um FI no final de cada if que você abrir◆ Nota: lembre-se de quando utilizar o ‘[ ]’ sempre deixar um espaço ao redor

deles

tomada de decisão - IF

Page 32: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

➔ if [ CONDICAO 1 ];then

AÇÕES 1elif [ CONDIÇÃO 2 ];then

AÇÕES 2else

AÇÕES 3fi

tomada de decisão - ELIF E ELSE

Page 33: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

➔ Para as condições dentro do podemos usar parâmetros comuns:

◆ [ n string1 ]: o comprimento de string1 é diferente de 0;

◆ [ z string1 ]: o comprimento de string1 é zero;

◆ [ string1 = string2 ]: string1 e string2 são idênticas;

◆ [ string1 != string2 ]: string1 e string2 são diferentes;

CONDIÇÕES DO IF

Page 34: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

➔ Para as condições dentro do podemos usar parâmetros comuns:

◆ [ inteiro1 -eq inteiro2 ]: inteiro1 possui o mesmo valor que inteiro2;

◆ [ inteiro1 -ne inteiro2 ]: inteiro1 não possui o mesmo valor que inteiro2;

◆ [ inteiro1 -gt inteiro2 ]: inteiro1 é maior que inteiro2;

◆ [ inteiro1 -ge inteiro2 ]: inteiro1 é maior ou igual a inteiro2;

◆ [ inteiro1 -lt inteiro2 ]: inteiro1 é menor que inteiro2;

◆ [ inteiro1 -le inteiro2 ]: inteiro1 é menor ou igual a inteiro2;

CONDIÇÕES DO IF

Page 35: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

➔ Para as condições dentro do podemos usar parâmetros comuns:

◆ [ e nome_do_arquivo ]: verifica se nome_do_arquivo existe;

◆ [ d nome_do_arquivo ]: verifica se nome_do_arquivo é um diretório;

◆ [ f nome_do_arquivo ]: verifica se nome_do_arquivo é um arquivo regular (texto, imagem, programa, docs, planilhas).

CONDIÇÕES DO IF

Page 36: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

➔ Normalmente um programa recebe argumentos como entrada, igual aos comandos.

➔ Em shell script não poderia ser diferente:● $0 - contém o nome do script que foi executado● $1 até $n - contém os argumentos na ordem em que foram passados● $# - contém o número de argumentos que foi passado● $* - retorna todos os argimentos

Argumentos

Page 37: Curso de Linux - petcocelinux.files.wordpress.com€¦ · $ git Comando para gerenciar acesso à repositórios. cOMANDOS de rede $ ping  Testa a velocidade da conexão

Esta foi a aula 3!Aula 4 nesta mesma sala, no

mesmo horário.Dúvidas? Perguntas?

Comentários? Presentes?

Guenta ae! Tem chamada!