Neverland,Neverland,
27/04/1527/04/15
ShellShell
ScriptScript
Luz eLuz e
TrevasTrevas
Neverland,Neverland,
27/04/1527/04/15
About meAbout me
●
Técnico em TI/Redes – UFC
●
Pós graduando em Computação Forense
●
Graduado em Redes de Computadores
●
Técnico em Conectividade – IFCE
●
Administrador no Hackerspace Fortaleza Infra
●
Membro Fundador do iTIC Digital Livre
Neverland,Neverland,
27/04/1527/04/15
KeynotesKeynotes
● Inicio!
● Meio... Trevas?
● Fim! Será? Luz...
Neverland,Neverland,
27/04/1527/04/15
InicioInicio
●
O que diacho é Linux?
●
Sistema Operacional? Piorô!
●
Causos do Linux.
●
Liberdade, código fonte, open source... eita pau!
●
Cabas arretados do Software Livre!
Neverland,Neverland,
27/04/1527/04/15
Meio... Trevas?Meio... Trevas?
●
Shell Linux! Cadê as buniteza do
Ruindows? Trevas...
●
Comandos Linux e Shells. Pusquê
em ingrês?
●
Scripts em Shell, esse troço é
realmente necessário?
●
Programação... Agora lascou!
Neverland,Neverland,
27/04/1527/04/15
Fim! Será? Luz...Fim! Será? Luz...
●
Olha as buniteza aparecendo...
Lâmpada incandescente!
●
Há outras opções de lâmpada(luz)?
●
Agora vamos juntar luz e trevas!
Neverland,Neverland,
27/04/1527/04/15
InicioInicio
Neverland,Neverland,
27/04/1527/04/15
O que diacho é Linux?O que diacho é Linux?
●
Linus + Unix
●
Sistema Operacional
●
Kernel
●
Unix & Minix
●
Software Livre
Neverland,Neverland,
27/04/1527/04/15
Sistema Operacional? PiorôSistema Operacional? Piorô
●
Hardware x Software
●
Gerência
●
Controle de acesso à recursos
●
Nível de sistema e nível de usuário
Neverland,Neverland,
27/04/1527/04/15
Causos do LinuxCausos do Linux
●
E-mail de Linus Torvalds
●
FSF
●
Onde encontro Linux?
●
Eventos Linux
Neverland,Neverland,
27/04/1527/04/15
Liberdade, código fonte,Liberdade, código fonte,
open source... eita pau!open source... eita pau!
●
Software Livre e as 4 liberdades
●
Open Source
●
Exemplos de softwares livres
Neverland,Neverland,
27/04/1527/04/15
Cabas arretados doCabas arretados do
Software Livre!Software Livre!
●
Linus Torvalds
●
Richard Stallman
●
John Maddog Hall
Neverland,Neverland,
27/04/1527/04/15
Meio...Meio...
Trevas?Trevas?
Neverland,Neverland,
27/04/1527/04/15
Shell Linux! Cadê asShell Linux! Cadê as
buniteza do Ruindows?buniteza do Ruindows?
Trevas...Trevas...
●
O que é o Shell?
●
Tipos de Shell.
●
Entrada padrão.
●
Saída padrão.
●
Erro padrão.
●
Programas prontos.
●
Variáveis de ambiente.
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Comandos Linux eComandos Linux e
Shells. Pusquê emShells. Pusquê em
ingrês?ingrês?
●
ls = list
●
pwd = print work directory
●
cd = change directory
●
mkdir = make directory
●
rmdir = remove directory
●
cp = copy
●
mv = move
●
cat = concatenate
●
wc = word count
Neverland,Neverland,
27/04/1527/04/15
●
grep = get regular expression
●
du = disk usage
●
find
●
cut
●
updatedb
●
locate
●
head
●
tail
●
date
●
tr = translate
●
ln = link
●
df
Neverland,Neverland,
27/04/1527/04/15
MANMAN
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Scripts em Shell, esse troçoScripts em Shell, esse troço
é realmente necessário?é realmente necessário?
●
Tarefas repetitivas
●
Automatização de tarefas
●
Instalação de programas
●
Administração de servidores
●
Não reinvente a roda!
Neverland,Neverland,
27/04/1527/04/15
Programação... AgoraProgramação... Agora
lascou!lascou!
●
Script x Compilação
●
Lógica
●
Semelhante às linguagens
tradicionais
●
Utilização dos comandos Linux
Neverland,Neverland,
27/04/1527/04/15
Vamos começar aVamos começar a
brincadeirabrincadeira
●
Definição do shell que será usado
●
Criação de um arquivo
●
Escolha do editor de texto
●
Permissão de execução no script
Neverland,Neverland,
27/04/1527/04/15
VariáveisVariáveis
●
Definição de chave e valor
●
Boas práticas para definição de
variáveis
●
Armazenamento de valores
●
Manipulação de variáveis(leitura)
Neverland,Neverland,
27/04/1527/04/15
Tomada de decisãoTomada de decisão
●
Estrutura condicional
●
Comando if
●
Comando if/else
●
Comando elif
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
CaseCase
●
Estrutura condicional de múltiplas
opções
●
Teste de resultados exatos
●
Opção default
●
Não pode realizar tantos testes como o
IF
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
LaçosLaços
CondicionaisCondicionais
●
Comando for
●
O laço for executa uma ação
repetitivamente até que uma condição
seja atendida.
●
No comando for sabemos exatamente
quantas iterações irão ocorrer
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
WhileWhile
●
O laço while executa uma ação
repetitivamente até que uma
condição seja atendida.
●
No comando while não sabemos
exatamente quantas iterações irão
ocorrer
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
FunçõesFunções
●
Trechos de código que permitem
uma separação lógica dos scripts
●
Melhora o entendimento do script
●
Possibilita o reuso de código, uma
boa prática de programação
●
Facilita no processo de debbuging
do script
●
Se for usar mais de uma vez a
mesma rotina, faça uma função!
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Fim! Será?Fim! Será?
Luz...Luz...
Neverland,Neverland,
27/04/1527/04/15
Olha as bunitezaOlha as buniteza
aparecendo...aparecendo...
LâmpadaLâmpada
incandescente!incandescente!●
O Dialog é um programa para console (modo
texto) que desenha caixas de diálogo ("dialog
boxes") na tela, similares as do modo gráfico,
com botões, entradas para texto e menu
●
Qualidade ainda deixa a desejar
●
Alguns tipos de janela pré-definidos
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Há outras opções deHá outras opções de
lâmpada(luz)?lâmpada(luz)?
●
Xdialog
●
Kdialog
●
BigBashView
●
YAD
●
Zenity
Neverland,Neverland,
27/04/1527/04/15
Yet AnotherYet Another
DialogDialog
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
ZenityZenity
Neverland,Neverland,
27/04/1527/04/15
Agora vamos juntar luz eAgora vamos juntar luz e
trevas!trevas!
●
Criando scripts com janelas gráficas para
melhorar a interação com os usuários
●
Definir um fluxo de execução destes
scripts para que os usuários sigam. Desta
maneira evita-se interações erradas por
partes dos usuários
Neverland,Neverland,
27/04/1527/04/15
Lista de exercíciosLista de exercícios
●
Fazer um script que gere endereços IP's
sem se preocupar com máscara de subrede
e salvá-los em um arquivo.
●
Criar um script que teste se uma
determinada faixa de endereços IP estão
disponíveis em uma rede e salvá-los em um
arquivo.
●
Criar um script gráfico que de acordo com a
escolha do usuário desligue ou reinicie a
máquina em um determinado tempo.
Neverland,Neverland,
27/04/1527/04/15
ConclusõesConclusões
Neverland,Neverland,
27/04/1527/04/15
BibliografiaBibliografia
●
http://aurelio.net/
●
www.vivaolinux.com.br
●
Jargas, Aurelio Marinho. Shell
Script Profissional. Novatec Editora
●
http://www.freeos.com/guides/lsst
●
www.dicas-l.com.br
●
http://apoie.org/JulioNeves/PapoI.ht
m
Neverland,Neverland,
27/04/1527/04/15
Neverland,Neverland,
27/04/1527/04/15
ContatosContatos
●
Twitter: @osvaldofilho
●
www.facebook.com/osvaldofilho.redes
●
E-mail: osvaldo.filho@sti.ufc.br
Neverland,Neverland,
27/04/1527/04/15
Obrigado!!!Obrigado!!!

Shell Script - Luz e trevas