227 83 4MB
Portuguese Pages [69] Year 2019
CIP-BRASIL. CATALOGAÇÃO-NA-FONTE
LEAL JUNIOR, WILMAR BORGES Script Essencial: Lições preliminares e exercícios WILMAR BORGES LEAL JUNIOR. – 1. ed. – Porto Alegre : PLUS Simplíssimo, 2018. Recurso digital : il. Formato: ePub2 Requisitos do sistema: Adobe Digital Editions Modo de acesso: World Wide Web ISBN 9788582456354 1. script. 2. batch. 3. bat. 4. windows. I. Título. CDD: 600
Arquivo ePub produzido pela Simplíssimo Livros
Sumário 1.
Apresentação
2.
O que é script?
3.
Um olhar sobre a ementa da disciplina
4.
Iniciando no mundo do script
5.
Variável de Ambiente
6.
Alguns comandos que utilizaremos
7.
Empacotando tudo em um script
8.
Entrada de dados no script
9.
O comando ping + ipcofig
10. Um pouco sobre o comando PING 11. O Jitter 12. O Comando attrib 13. Utilizando Caracteres Curingas 14. Utilizando o copy e o xcopy para backup 15. Estrutura de Decisão IF e ELSE 16. GOTO 17. Compartilhamento de Pastas 18. Descobrindo o que cada processo faz
19. Passagem de Parâmetros com Pipe | 20. O comando Find 21. REFERÊNCIAS
1. Apresentação Esse livro é baseado nas aulas de linguagem de script, que leciono desde 2014 no Instituto Federal do Tocantins, comecei as aulas apenas com prática direta, depois resolvi fazer slides para que os alunos acompanhassem as aulas, em seguida fiz vários exercícios, agora, resolvi escrever este livro, onde posso reunir tudo em um só lugar e ir atualizando conforme a vão surgindo novas necessidades. Serei o mais direto possível no texto, entretanto, sempre haverá uma parte teórica onde farei uma breve explicação. A primeira pergunta que todos fazem, professor, onde irei usar esse script? Mesmo eu dando dezenas de exemplos, sempre há aquele que diz, mas eu não vou atuar nessa área, bem, por isso esse livro não é dedicado apenas ao tão conhecido script em shell no bash e sim em “script” propriamente dito, ou seja: Conjunto de instruções para que uma função seja executada em determinado aplicativo. Com essa definição geral, podemos usar diversos aplicativos para desenvolver nossos scripts, desde o tão afamado Excel ou Calc do LibreOffice, passando pelo python, surfando no R – linguagem aplicada principalmente a estatística. Esse primeiro volume Esse primeiro volume é dedicado ao ms-dos, o bom e velho batch da Microsoft em seguida vamos estudar o Power Shell que veio para substituir o batch, são muitas opções para linguagem de script, mas vamos passar primeiramente pelo básico batch depois avançaremos um pouco, não veremos todas as linguagem de script claro, o que importa aqui é entender o uso que se dá ao script, a ferramenta utilizada em si é, nesse momento, indiferente, esse guia é para você, querido aluno, técnico ou um amante da informática que queira entender um pouquinho de script, haverá outros volumes, o próximo será com Power Shell e depois o tão amado shell script, vamos começar? Lembre-se, teremos no roteiro, teoria e
prática, tudo junto, mas, mesmo assim caso não tenha ficado claro, pode enviar suas dúvidas para: [email protected].
2. O que é script? Segundo o site, (Significado, 2015), em Informática, script é um conjunto de instruções em códigos, ou seja, escritas em linguagem de computador utilizadas para uma determinada tarefa. É uma linguagem de programação que executa diversas funções no interior de um programa de computador. As linguagens de script são ferramentas utilizadas para controle de um determinado programa ou aplicativo; para configuração ou instalação em sistemas operacionais; e ainda, em jogos para controlar as ações dos personagens. Algumas linguagens de programação geralmente usadas como script são: ActionScript, Java Script, Lua, PHP, Python, ShellScript, Ruby, VBScript, Microsoft Power Shell e nosso Batch Script. Como o livro é direcionado aos alunos do curso de informática, explicarei nessa parte um pouco da ementa da disciplina, claro, se você não é nosso aluno, pode pular essa parte. O objetivo do nosso trabalho e da ementa da disciplina é trabalhar prioritariamente com ShellScript, entretanto, o próprio (PPC, 2016) disponível em no site: http://ifto.edu.br nos dá uma abertura para mostrar outras formas de script, por essa razão, as aulas não serão apenas em bash-script, veremos outras também.
3. Um olhar sobre a ementa da disciplina Unidade curricular: Administração de Sistemas Operacionais e Linguagem de Script. Carga horária: 120h/a, 3h por semana
Ementa Apresentar ao aluno características e funcionalidades detalhadas dos sistemas operacionais (livres e proprietários). Domínio sobre recursos administrativos sobre ambos os sistemas bem como manipulação de opções avançadas e processamento em lote.
O que se espera? Competências: • Conhecer características e funcionalidades avançadas dos sistemas operacionais (livres e proprietários). • Ter conhecimento e domínio sobre as opções avançadas dos sistemas operacionais (livres e proprietários).
Habilidades: • •
Manipulação de ferramentas administrativas, bem como configurações avançadas em painel de controle e configurações do sistema. Domínio sobre as linguagens de script de ambas as plataformas sendo: batch para computadores windows e shell script para computadores linux.
4. Iniciando no mundo do script Se o script é um conjunto de instruções para que uma função seja executada em uma aplicação qualquer, vamos desenvolver nosso primeiro script. Vamos começar pelo Windows, em um ambiente simples que todos conhecem e ainda é muito utilizado por administradores de sistemas e de redes, o prompt de comando do MS-DOS, não é objetivo desse livro explicar o que vem a ser msdos, caso queira saber mais leia o livro de Rubens Prates MS-DOS Versão 6.2 Guia de Consulta rápida da novatec. Abra o prompt de comando1. Win+R Digite cmd, pronto, estamos em um ambiente de linha de comando, igual o bash - shell do linux. Quer saber um pouco mais, sobre como abrir o prompt de comando, acesse: 10 maneiras de abrir o prompt de comando.
Vamos explorar um pouco sem utilizar script, apenas explorar, vejamos o que alguns comandos fazem, vamos nos familiarizando, depois vamos fazer alguns scripts simples.
Ver quais comandos existem no ambiente É o básico de qualquer linguagem, saber o que ela oferece de fato, no ms-dos é bem simples, basta digitar help você verá uma lista de comandos, não iremos usar todos, claro, pois não é um curso completo de script em batch, é razoável entender que, se
você pegar a essência, quando tivermos bem familiarizados iremos desenvolver alguns utilitários com ele. Depois de listar os comandos caso queira saber mais sobre um comando determinado, basta digitar o nome do comando e em seguida /?. Exemplo, vamos saber mais sobre o comando echo, veja que a primeira linha mostra o que ele faz, Exibe mensagens ou ativa ou desativa o echo de comando, comando muito utilizado nos scripts para mostrar alguma informação na tela para o computador/usuário que está executando, digo computador, pois script pode rodar em rede através de um servidor apenas para determinados computadores, usuários ou grupo de usuários, não entraremos em detalhes, pois não trabalharemos com servidores nesse guia.
Reparem que o comando echo é explicado, echo on/off e a mensagem, vamos fazer uns testes. Primeiro digite seu nome no prompt de comando, ele retornará uma mensagem dizendo que não é reconhecido como comando interno, agora, digite echo e seu nome na frente, viu, ele só mostrou seu nome, podemos concluir que: esse comando envia, ou controla o envio, de mensagens para a saída padrão, muito usado em scripts DOS para controlar as mensagens enviadas para a saída padrão (monitor, tela ou ecrã), mas, também podemos redirecionar essa saída, utilizando o símbolo >; ou >>; ainda iremos utilizar muito ele, então guarde isso. Explicando: o [ > ] utilizado 1 vez, sempre substitui a saída anterior, [ >> ] utilizado 2 vezes, sempre adiciona, ideal para logs diários do sistema.
. Agora vamos juntar o echo com o > ; envie seu nome completo para um arquivo de texto qualquer, primeiro utilize o > abra o arquivo e veja o que aconteceu, depois utilize o >>, abra o arquivo e veja o que aconteceu, viu alguma diferença? E:\WilmarBorges>echo > "wilmar borges leal junior" > %userprofile%/Desktop/Ex1.txt
1 Prompt de Comando é um interpretador de linha de comando no OS/2 e de sistemas baseados no Windows NT (incluindo Windows 2000, XP, Server 2003 e adiante até o mais recente Windows 10). Ele é um comando análogo ao command.com do MS-DOS e de sistemas Windows 9x, ou de shells utilizados pelos sistemas Unix.
5. Variável de Ambiente Segundo nosso bom e amigo (Wikipédia, 2018a) Uma variável de ambiente é um valor nomeado dinamicamente que pode afetar o modo como os processos em execução irão se comportar em um computador. Elas são parte do ambiente no qual um processo executa. Por exemplo, um processo em execução pode consultar o valor da variável de ambiente TEMP para descobrir um local adequado para armazenar arquivos temporários, ou a variável HOME ou USERPROFILE para encontrar a estrutura de diretórios pertencente ao usuário que está executando o processo. Desta forma, elas podem afetar a forma como um processo se comporta, e cada processo pode ler e escrever variáveis de ambiente. Sendo mais direto: variável de ambiente é um atalho para algum lugar, um valor, que está no ambiente de execução do sistema operacional, muitos programas precisam saber onde fica o seu arquivo de execução, o exemplo do java, onde fica seu binário, vários são os sistemas operacionais e versões do java a forma mais simples é então fazer com que através da variável de ambiente o programa consiga encontrar para ser executado. Assim: Variáveis de ambiente são um conjunto de valores dinâmicos (variáveis) que guardam informações do sistema operacional. As variáveis de ambiente definem a forma como os processos e aplicações devem se comportar dentro do Windows, define também caminhos de diretórios específicos e as preferências de usuários no sistema Vamos ver um exemplo prático diretamente no ambiente gráfico do windows
Estou utilizando o Windows 10 Painel de Controle\Sistema e Segurança\Sistema Computador >
Ou digite:
Meu Propriedades
Em Seguida na outra tela, você verá.
Quando você clicar no ícone abrirá uma tela mostrando as variáveis de ambiente globais do sistema, essas, por padrão, já vem pré-instalados, assim, um desenvolvedor para ambiente windows ou linux, não precisa saber onde fica o drive onde foi instalado o sistema operacional, basta checar a variável de ambiente do sistema %windir% que saberá onde o diretório Windows está. Imagine você. Um desenvolvedor de aplicações para windows sua aplicação busca alguma dll ou ocx que está no diretório windows, ai, um usuário um dia resolve colocar o seu sistema em D:\Windows o outro em H:\Windows, como seu sistema funcionará? Será um caos caso você coloque um caminho fixo c:\windows, ao se utilizar variáveis de ambiente na instalação do programa não é
necessário saber onde o sistema está, entendeu? Basta utilizar o %windir%. Esse é só um exemplo de uso das variáveis de ambiente no windows e linux. Vamos sair do ambiente gráfico GUI (Graphical User Interace ) para o CLI (Command Line Interface). Para listar todas as variáveis de ambiente criadas no prompt de comando, digite set, esse comando também é semelhante no Linux, vai anotando aí assim fica fácil quando formos ver o bash.
Vamos explorar essa parte. Uma observação, o conceito de variável de ambiente no Linux é o mesmo; entenda bem essa parte para não ser necessário repeti-la no ambiente Linux. Vamos fazer um exemplo com variável de ambiente para melhor entendimento, imagine que você, sempre usa o diretório documentos do usuário para seus scripts, assim, ao invés de todas as vezes que for salvar algo em c:\\ você, cria uma variável de ambiente local para isso. Exemplo: Meu Usuário é WilmarPC, como descobrir? Simples echo %username% a variável de ambiente username, mostra o usuário local.
Agora, imagina que você quer saber qual variável de ambiente global guarda o caminho do perfil do usuário, (reparem que aqui falei variável global e antes tinha dito, variável local, já explicarei a diferença) use o comando echo %userprofile% essa é a variável global do perfil do usuário que ficará onde for instalado o sistema operacional, em qualquer drive. No meu caso o sistema está em c:\ se você der o comando dir %userprofile% verá todas as pastas que fazem parte desse perfil do usuário, assim, verá também o diretório Documents . O número do exercício abaixo é o 5, logo, o nome do script será Ex5.bat . Utilizando variáveis de ambiente faça um script que: mostre o nome do usuário logado no computador, o diretório padrão utilizado pelo sistema operacional e o nome do computador, coloque todas essas informações em um arquivo chamado Ex5.txt dentro da pasta temporária do Windows, também utilizando caminho variável de ambiente, cada usuário tem seu arquivo temporário, volte lá no set, que você tenderá melhor . Faça um script que limpe todos os arquivos temporários criados pelo sistema no profile do usuário, veja o comando set a variável temporária.
Avante, avançando mais um pouquinho no script, teoricamente, serve para o Windows e Linux, vamos.
8. Entrada de dados no script Geralmente os scripts não são interativos, ou não precisam ser, o script serve para resolver algo de forma automática, isso já entendemos, entretanto, em algum momento outro usuário poderá utilizar do seu script para resolver determinado problema, por essa razão, fazemos scripts interativos, ou seja, que o usuário tem a opção de escolher, dentro da limitação que o script confere, qual ferramenta utilizar, como se fosse um programa com menu. Um script, como os das questões anteriores são chamados de scripts não interativos, colocamos o comando pause no final apenas para ver o resultado, mas, não é necessário, se quisermos que o script faça algo e nem mostre que está fazendo, tiramos o pause, assim que terminar ele fecha a janela e fim. Qual comando utilizar para criar campos de entrada no bat? Utilizamos o comando set de uma lida no help do prompt utilizando o comando set /? O comando set é utilizado para exibir, definir e remover variáveis de ambiente, inclusive no linux também tem o mesmo propósito, veremos isso depois. Veja o exemplo abaixo.
Na imagem acima, primeiramente criei uma variável chamada NOME, essa variável vai receber um valor que você digitará no prompt quando for executado em seguida o comando echo pega a que foi armazenado na variável NOME e mostra na tela, veja que quando for
utilizar a variável criada com o set, utiliza-se entre %NOME% o símbolo de percentagem, igualzinho quando se cria variável de ambiente, quando for chamar a variável ela deverá estar entre %%, Agora, vamos fazer uns exercícios para fixar a utilização. O comando date, serve mostrar/alterar a data do sistema, certo? Para mostrar faça date /t assim ele mostrará a data no sistema certo?, bem, agora, vamos separar apenas o dia, digite set dia=%date%:~0,2%, veja como ficou a variável de ambiente %dia%, dê o comando echo %dia%, o que mostrou?, para pegar apenas o dia dentre do comando date, fomos até aposição 0(zero), início da saída do comando date e selecionamos mais duas posições, ou seja mais posição 1 e 2 no vetor de dados, ficando o dia atual, veja o print.
Seguindo a mesma lógica, depois dessa explicação, faça alguns scripts. OBS: Não esqueça de salvar os scripts com o nome do script. Exemplo (Ex6.bat) . Faça um script que mostre apenas o Dia atual
Ex.bat
. Faça um script que mostre apenas o Mês atual 0. Faça um script que mostre apenas o Ano atual Entendeu a lógica, agora faça mais alguns exercícios. 1. Faça um script que crie em qualquer computador com Windows os diretórios DIA/MÊS/ANO, primeiramente o ANO depois do Mês dentro do ANO depois o DIA DENTRO DO MÊS, utilize das variáveis de ambiente abaixo um exemplo de como ficou o meu, apenas a saída.
Ótimo, agora mude a dia no sistema Windows, coloque um dia a mais e rode seu script, rodando-o o mesmo deverá criar o novo diretório dia Estamos indo bem, mais um exercício pra relaxar.
2. Crie um script que ao abri-lo, pedirá o nome do diretório a ser criado e o local deverá ser no temp ou tmp do usuário logado, lembre-se de utilizar a variável de ambiente, na tela aparecerá a mensagem: Qual o Nome do diretório deseja criar?: mas, o caminho sempre será o temp/tmp do usuário logado. 3. Cada usuário cadastrado no Windows ou Linux tem um perfil também conhecido como profile do usuário, no Linux fica dentro do seu próprio home, e no Windows fica onde? Após descobrir, (consultando o set) utilize seu conhecimento e faça um script que: Ao ser acionado (executado) lista tudo que há no profile do usuário e crie um arquivo com essa listagem no diretório temp do usuário, com nome do usuário.tx. o script deverá funcionar em qualquer usuário e em qualquer computador, portanto, utilize sempre as variáveis de ambiente. Estamos avançando bem, isso é muito bom, vamos acrescentar algo mais ao nosso conhecimento.
9. O comando ping + ipcofig Essa parte é essencial para o técnico de informática. Esse é o comando mais utilizado pra quem trabalha com redes, esse e o ping que veremos juntos, primeiramente o ping consiste em um verificador de conexão. Segundo (Tecmundo, 2012) Com este comando, seu computador é capaz de medir quantos milissegundos (ms) um pacote de informações leva para ir até um destino e voltar. De forma simples, quanto menor o valor que ele retornar, mais rápida é sua conexão. Bem, faça um teste e descubra se o site www.google.com está respondendo, se tiver internet, claro. Se não podemos testar no endereço de loopback. No meu caso vou dar um ping no site do google.com
Basicamente, o que podemos extrair desse relatório? O ping está alto, e oscilando muito, internet ruim, ip de resposta, ou seja, ip do google 172.217.162.164, não houve perda, mas, um teste com 4 disparos do ping não nos dá muita informação, vamos aquece com mais outro exercício divertido. 4. Faça um script que fica disparando ininterruptamente o ping para o site google.com e o relatório, ou seja, a saída do comando vá para um arquivo chamado Ex14.txt que ficará no diretório documentos do usuário logado e, dentro
do arquivo deverá conter: data e hora do ping, consulte os argumentos do comando ping em ping /? Agora, vamos mexer um pouquinho com o ipconfig vá no help e veja suas opções ipconifg /?. As vezes os computadores com Windows dão alguns problemas ligado à rede, como o cache de dns, ou o ip, em uma situação em que há um servidor controlando é fácil resolver, é só fazer um script de inicialização e rodar nos computadores, outras vezes é necessário que o usuário de os comandos localmente, faça um script que: 5. Renove o endereço IP e o DNS, atualize todas as conexões DHCP E DNS e registre novamente, pegando um novo ou o mesmo endereço do servidor DHCP, antes de fazer a renovação, gere um log com, data e hora, número do IP atual e nome do computador, guarde esse log dentro do arquivo temporário do usuário logado. Às vezes, dentro de um ambiente de rede é necessário cadastrar o MAC (endereço físico dos dispositivos) de rede para que o mesmo seja cadastrado em um sistema, podendo ser desde o proxy até um sistema de filtro, ou o próprio serviço de DHCP, cadastrando-se o MAC, o serviço sempre entregará o endereço IP que você cadastrou, isso facilita muito a manutenção da rede para dispositivos como impressoras, AP’s, câmeras IP. Sempre é bom se exercitar. Vamos lá de novo. 6. Dentro do laboratório há vários computadores, faça um script que pegue o endereço MAC de todos os computadores de sua rede interna e coloque em um arquivo de log em Documentos do usuário, o log deverá conter: nome do computador, endereço IP, MAC. Procure mais sobre os comandos arp e ping para fazer
esse script (dica: aqui ainda você terá que fazer manual, ou seja, caso não esteja na tabela arp do seu computador, você deverá dar um ping no IP da máquina local para ir para tabela arp local, quando melhorarmos um pouco nossos scripts, esse trabalho de ir em maquina a máquina será substituído por um for)
10. Um pouco sobre o comando PING Abaixo uma transcrição da matéria publicado no blog LabCisco, muito interessante para entendermos a funcionalidade do ping, latência, jitter, o link está na referência bibliográfica. Antes vamos falar um pouco sobre o ping: Ping ou latência como podemos chamar, é um utilitário que usa o protocolo ICMP para testar a conectividade entre equipamentos. É um comando disponível praticamente em todos os sistemas operacionais. Seu funcionamento consiste no envio de pacotes para o equipamento de destino e na "escuta" das respostas. Não existe um valor único de latência que seja referência para todas as redes, aqui vai alguns valores de referenciais aceitáveis para algumas das tecnologias mais comuns que são: (1) Rede Local, (2) Internet via TV a Cabo, (3) xDwSL, (4) Dial-Up e (5) Links de Longa Distância Privativo, a matéria completa está em: (Brito, 2013), site na referência, vamos lá. 1) Em redes locais cabeadas a comunicação deve ter excelente desempenho, haja vista a proximidade entre os dispositivos e a boa qualidade da infraestrutura de cabeamento de propriedade da empresa. É esperado que a latência em redes locais não ultrapasse 10ms (recomendado) ou é tolerável até 30ms (não recomendado). Quanto mais dispositivos intermediários existirem entre duas máquinas, naturalmente maior será essa latência porque cada dispositivo intermediário terá algum mecanismo de tratamento dos quadros; 2) Um valor ideal de latência para links de Internet via Cable Modem seria algo entre 30ms e 50ms. No entanto a arquitetura da rede é compartilhada através de barramentos nas vizinhanças e a rede tende a sofrer mais com instabilidade em momentos de muito acesso, o que pode implicar em latências maiores que 100ms;
3) A latência ideal para a tecnologia xDSL seria algo em torno de 70ms. O que acontece é que essa tecnologia é muito popular porque aproveita a infraestrutura de cabeamento da rede telefônica, motivo pelo qual muitas operadoras acabam vendendo mais conexões do que suas centrais suportam. Essa situação pode implicar em latências de 100ms ou mais, o que é comum de acontecer no Brasil; 4) A conexão discada naturalmente é aquela que apresenta pior desempenho porque utiliza a rede pública de telefonia comutada (PSTN) através da modulação do sinal digital do computador em sinal analógico (audio), ou seja, simplificando, conversão dos dados em som. Por isso a latência dessa tecnologia pode facilmente ser bem superior a 250ms; 5) Os links de longa distância privativos mais profissionais, ou seja, aqueles normalmente utilizados pelas empresas devem apresentar excelente desempenho. Normalmente os contratos desses links têm cláusulas de SLA em que a operadora se compromete a entregar uma qualidade mínima com base em parâmetros pré-definidos. Normalmente esses links também não devem exceder 10ms (recomendado), mas pode ser tolerável latência de até 20ms ou 30ms (dependendo do contrato); Esse exercício envolve um pouco de informática básica, para utilizar outras ferramentas, não só script.bat, utilize o programa de sua preferência, excel, calc, sql, etc… qualquer um, vamos lá Até esse momento vocês já viram mais sobre Windows do que a maioria da população da terra, pense nisso. Estamos tratando aqui de problemas que surgem no dia-a-dia, e como podemos automatizar e resolver problemas mecânicos que podemos substituir por algo automático, vamos mudar um pouco o foco, só um pouquinho, imagina que depois de ter resolvido as questões
anteriores, você gerou o tal log, imagine agora que a empresa onde trabalha, ou, até mesmo a sua empresa ou residência queira verificar latência da sua rede, para poder ter um amparo legal para cobrar um desconto na empresa fornecedora de internet, visto que uma latência muito alta, a navegação na internet é péssima, o que adianta ter uma internet de 10Mbps usando xDLS com uma latência de 200ms? Vamos lá! 7. Primeiro pegue o resultado da questão 14, faça o percentual de latência maior que 100, *se seu log não tiver esse valor, faça com outros valores, apenas para teste, como por exemplo maior que 60; pegue esse valor achado e faça um percentual sobre o total de disparos do ping. Utilize o programa de sua preferência (excel/calc/R), mostre o resultado em um gráfico. Algo que vocês não podem, como técnicos, saírem daqui sem saber é sobre o jitter, ainda continuando a explicação sobre a latência. Vamos ver um pouco de teoria.
11. O Jitter Jitter é uma variação estatística do atraso na entrega de dados em uma rede, ou seja, pode ser definida como a medida de variação do atraso entre os pacotes sucessivos de dados. Observa-se ainda que uma variação de atraso elevada produz uma recepção não regular dos pacotes. (Wikipédia, 2018b). Como já explicado anteriormente e apenas resumindo, vazão em bps, latência (atraso), jitter (variação da latência no tempo), apensar de termos várias ferramentas hoje para medir tanto a latência quanto o jitter, como o tão conhecido teste de conexão da copel http://www.copeltelecom.com/site/speedtest, entretanto mesmo tenteo inúmeras ferramentas devemos saber como elas funcionam e o que elas estão fazendo para medir nós como técnicos devemos saber, pelo menos o que é e como é feito essa medida.
Olhem meu teste de conexão, meu jitter está alto, mas, como ele fez essa “medição”, como é o cálculo da métrica do jitter? Esse cálculo é disposto na RFC3550, as RFC’s são as famosas Request for Comments.
Segundo o (Canaltech, 2012), RFCs são documentos técnicos desenvolvidos e mantidos pelo IETF (Internet Enginnering Task Force), instituição que especifica os padrões que serão implementados e utilizados em toda a internet. Cada um deles deve detalhar o funcionamento de todos os aspectos do protocolo proposto. A RFC 3286, por exemplo, possui todas as especificações necessárias para a implementação do controle de fluxo de dados, também conhecido como streaming, e assim permitir que sites como o Youtube, Vimeo e DailyMotion funcionem. Se um padrão se torna obsoleto e mudanças são necessárias, é gerado um outro arquivo chamado Request for Change, onde pessoas que possuem o conhecimento necessário sobre o assunto oferecem soluções para o problema proposto. Caso seja aprovado pelo Comitê, esse documento se torna uma nova RFC, com uma numeração diferente da original que não é excluída, ficando disponível para consulta para quem quiser aprender mais sobre o assunto. As RFC’s ficam no site http://tools.ietf.og, a RFC do Jitter está em https://tools.ietf.org/html/rfc3550; bem agora que sabemos o que é como funciona, onde encontrar, pra quer serve e tudo mais, voltemos ao script. #Resumindo: quanto menor for o jitter, melhor será sua conexão.
12. O Comando attrib O comando attrib do MS-DOS serve para visualizar ou modificar os atributos de arquivos, pasta ou subpastas, podendo torná-los somente leitura ou até mesmo ocultos. Se apenas digitarmos o comando attrib será apresentada na tela informações de atributos dos arquivos e pastas do diretório atual. (Xavier, 2014) De o comando attrib no cmd, veja que algumas letras que aparecem sempre antes dos arquivos. Elas indicam a condição do arquivo naquele instante. Sendo: • • • •
A - Arquivo comum com total acesso tanto para leitura como escrita. S - Indica que um arquivo pertence ao sistema. H - Significa que o atributo é oculto, ou seja, o arquivo ou pasta não pode ser visualizado diretamente usando métodos comuns como o comando DIR. R - Arquivo ou pasta com acesso parcial que possibilita somente leitura
Como modificar um atributo de um arquivo ou pasta? Simples, basta colocar o comando o caminho/nome do arquivo e colocar o parâmetro de adicionar ou remover o atributo, no help do attrib já mostra como fazer.
Após essa breve explicação, vamos ao que interessa, exercícios: 8. Já pegou o tão falado, vírus de pen drive que oculta os arquivos?. Agora, faça um script que ao ser executado mude todos os atributos de todos os arquivos e pastas no pen drive, ou seja, que todas os arquivos e pastas dentro de um pen drive sejam ocultados, se não tiver pendrive a disposição, crie vários arquivos dentro de um diretório qualquer e execute o attrib dentro desse diretório, coloque, fotos, vídeos, texto, planilhas para ver o resultado 9. Agora, crie um novo script que reverta o processo anterior Viu como é fácil resolver com um simples script
13. Utilizando Caracteres Curingas O que são caracteres curingas? São caracteres especiais interpretados pelo Prompt de comando para um significado mais amplo, facilitando a escrita de certos comandos. Servindo tanto para prompt no Linux, Windows, Mac, e outras linguagens e programação, utilizaremos muito isso quando formos ver regex (expressão regular), vamos aprender estudar um pouquinho. • • •
O asterisco (*) funciona como qualquer sequência de caractere, ou mesmo “todos” e pode ser utilizado em muitos comandos, como por exemplo: A interrogação (?) funciona um pouco diferente do asterisco e significa “Qualquer caractere Único” ou “UM caractere qualquer”. O Ponto (.) Significa Pasta atual
Para não perdermos o costume, exercício! 0. Faça um script que localize todas as imagens que estão no profile no usuário logado, apenas do usuário logado, não em todo o computador, as extensões mais comuns para imagens são jpg, jpeg, bmp, gif. 1. Crie um script que crie um atalho do diretório meus documentos do usuário logado, na área de trabalho, o script deverá funcionar para qualquer usuário que entrar no sistema.
14. Utilizando o copy e o xcopy para backup Vamos agora utilizar o comando copy do Windows, o mesmo que o cp do Linux. Vamos lá, para saber mais sobre as opções do copy escreva: copy /?
Existe inúmeras opções e combinações para o comando copy, o mais simples é, o copy log.txt Uma imagem diz muito, veja o funcionamento do pipe, a saída do comando1 é a entrada do comando2, | é show.
É imponte compreender o que está fazendo, para que não seja um aprendizado em vão, ou seja, um aprendizado apenas para passar na prova, de uma maneira bem simples, dizer que estamos começando a trabalhar com filtros e dados. Em qualquer área de conhecimento, seja no direito, medicina, engenharias, estamos produzindo um enorme volume de dados a cada dia, a cada minuto, esses pequenos passos são para mostrar pequenas formas de filtrar alguns dados, claro, não chega a ser nem de longe uma data mining, mas, já é começo para compreender esse mundo tecnológico que nos cerca. Nada melhor que alguns exercícios, para nossa alegria.
7. Lembra do começo, criação de variável de ambiente. Crie um script que liste apenas as variáveis de ambiente que contenham o nome do usuário logado, se o usuário for aluno, “no meu caso é WilmarPC, mostrara todas as variáveis de ambiente que contenham o usuário logado, o script deverá funcionar para cada usuário logado. Lembre-se, deverá funcionar em qualquer usuário logado, portanto utilize-se das variáveis globais. 8. Faça um script que mostre apenas os processos svhost.exe rodando, use o | “pipe” para isso 9. Visto isso, vamos melhorar esse script, svchost.exe está em processamento, uau!
conte,
quantos
0. Exporte todos os processos para um arquivo csv (Commaseparated values), valores separados por virgula 1. Exporte apenas os processos svchost.exe para um arquivo csv (Comma-separated values), valores separados por vírgula, já filtrados, utilize o pipe | 2. Lembra
do comando set, pois é, vamos utiliza-lo aqui? Faça o mesmo script da questão 38, só que agora, ao invés de ter o svchost.exe como parâmetro fixo, coloque uma mensagem de texto perguntando o usuário, qual arquivo deseja verificar e exportar para o CSV. Ou seja, o parâmetro é variável set /?
Vamos mais algumas passagens de parâmetros, agora, utilizando ferramentas de rede, ipconfig. Lembra da saída do
comando ipconfig? Teste em seu terminal, você verá algo como a figura abaixo.
Já aprendeu usar muita coisa até aqui, logo, nem preciso dizer como usar e o que usar. 3. Faça um script que pegue apenas a linha IPV4 4. Há um endereço físico para cada placa de rede, logo, para cadastrarmos no sistema faça um script que pegue todos os endereços físicos e coloque-os em um arquivo .txt e o nome do arquivo gerado deverá ser o nome do computador (host) pesquisado, de forma automática, pois o script poderá rodar em outros computadores, lembre-se de usar as variáveis de
ambiente para isso, dentro do arquivo de texto deverá contar: Endereço Físico (MAC) de todos os dispositivos de rede; Nome do Host; Endereço IPv4(preferencial). 5. Liste todos os arquivos com o nome LICENSE.txt do seu computador, e mostre quantas linhas tem cada arquivo. - Parabéns meu queiro aluno(a) por concluir essa primeira etapa, um fortíssimo abraço e conte sempre comigo: [email protected].
21. REFERÊNCIAS BRITO, S. H. B. Blog LabCisco: Interpretação dos Resultados do PingBlog LabCisco, 2013. Disponível em: . Acesso em: 18 jan. 2019 WIKIPÉDIA. Pipe - Canalização, 28 fev. 2018. (Nota técnica). CANALTECH. O que é um RFC? Disponível em: . Acesso em: 18 jan. 2019. HAUTSCH, O. Para que servem os diversos processos svchost.exe? Disponível em: . Acesso em: 21 jan. 2019. IME. Comando de decisão - if the else. Disponível em: . Acesso em: 18 jan. 2019. WIKILIVROS. Find. Disponível em: . Acesso em: 21 jan. 2019. PPC. PPC: Técnico em Informática integrado ao ensino médio. Disponível em: . Acesso em: 17 jan. 2019.
SIGNIFICADO. Significado de Script. Disponível em: . Acesso em: 17 jan. 2019. TECMUNDO. O que é Ping? Disponível em: . Acesso em: 18 jan. 2019. WIKIPÉDIA. Variável de ambiente, 2018a. (Nota técnica). ___. Jitter, 11 set. 2018b. (Nota técnica). XAVIER, D. W. Comandos de DOS - attrib. Disponível em: . Acesso em: 18 jan. 2019.
Table of Contents 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Capa Sumário 1. Apresentação 2. O que é script? 3. Um olhar sobre a ementa da disciplina 4. Iniciando no mundo do script 5. Variável de Ambiente 6. Alguns comandos que utilizaremos 7. Empacotando tudo em um script 8. Entrada de dados no script 9. O comando ping + ipcofig 10. Um pouco sobre o comando PING 11. O Jitter 12. O Comando attrib 13. Utilizando Caracteres Curingas 14. Utilizando o copy e o xcopy para backup 15. Estrutura de Decisão IF e ELSE 16. GOTO 17. Compartilhamento de Pastas 18. Descobrindo o que cada processo faz 19. Passagem de Parâmetros com Pipe | 20. O comando Find 21. Referências
Guia Capa Sumário
Lista de Páginas
1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
39 40 41 42 43 44 45 46 47 48 49 50 51 52