SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Downloaden Sie, um offline zu lesen
Curso de Shell - Aula I


  Introdução
O que são os shell scripts? Shell scripts são conjuntos de comandos armazenados em um arquivo
texto que são executados seqüencialmente. Nesta primeira parte, faremos uma introdução sobre o
shell, o formato desses arquivos e variáveis de ambiente.


  O que é Shell
Shell, ou interpretador de comandos, é o programa disparado logo após o login responsável por
"pegar" os comandos do usuário, interpretá-los e executar uma determinada ação.
Por exemplo, quando você escreve no console "ls" e pressiona <enter>, o shell lê essa string e
verifica se existe algum comando interno (embutido no próprio shell) com esse nome. Se houver,
ele executa esse comando interno. Caso contrário, ele vai procurar no PATH por algum programa
que tenha esse nome. Se encontrar, ele executa esse programa, caso contrário, ele retorna uma
mensagem de erro. Para cada terminal ou console aberto, existe um shell sendo executado. Quando
você entra no seu Linux, ele apresenta o login, para digitar o usuário e a senha. Ao digitar um par
usuário/senha correto, o Linux abre automaticamente um shell, que vai ficar esperando seus
comandos. Veja o exemplo abaixo:
Welcome to Linux Slackware 7.1 kernel 2.2.16.
matrix login: neo
Password:
Linux 2.2.16.
Last login: Mon Sep 25 10:41:12 -0300 2000 on tty1.
No mail.
neo@matrix:~$
Essa ultima linha é o shell. Se você der o comando "ps", vai ver que um dos programas rodando é o
seu shell:
neo@matrix:~$ ps
PID TTY TIME CMD
164 tty2 00:00:00 bash
213 tty2 00:00:00 ps
neo@matrix:~$
Ou seja, o shell utilizado nesse console é o bash, que está rodando com PID 164.
Existem diversos tipos de shell: bash, csh, ksh, ash, etc. O mais utilizado atualmente é o bash (GNU
Bourne-Again SHell). Por isso, tomaremos ele como referência.
Resumindo essa seção, é importante saber que para cada terminal ou console aberto, tem-se um
shell rodando. Assim, se você tem 3 xterms abertos na interface gráfica, vai ter um shell para cada
xterm.
Ao executar o shell script, o shell atual (no qual você deu o comando) abre um novo shell para
executar o script. Assim, os scripts são executados em um shell próprio (a menos que se
especifique, ao chamar o script, para executá-lo no shell atual). Isso será importante quando formos
tratar de variáveis de ambiente.
Variáveis do ambiente
Uma variável é onde o shell armazena determinados valores para utilização posterior.
Toda variável possui um nome e um valor associado a ela, podendo ser este último vazio. Para listar
as variáveis atualmente definidas no shell digite o comando set .
Para se definir uma variável, basta utilizar a síntaxe: nome_da_variável=valor . Por exemplo,
queremos definir uma variável chamada "cor" com o valor de "azul":
neo@matrix:~$ cor=azul
Para utilizar o valor de uma variável, é só colocar um sinal de "$" seguido do nome da variável - o
shell automaticamente substitui pelo valor da variável:
neo@matrix:~$ echo cor
cor
neo@matrix:~$ echo $cor
azul
Em alguns casos, é aconselhável colocar o nome da variável entre chaves ({}). Por exemplo, se eu
quero imprimir "azul-escuro", como faria? Simplesmente echo $cor-escuro ?? Não funcionaria,
pois o bash vai procurar uma variável de nome "cor-escuro". Portanto, temos que colocar o nome
"cor" entre chaves para delimitar o nome da variável:
neo@matrix:~$ echo ${cor}-escuro
azul-escuro
Algumas variáveis já são predefinidas no shell, como o PATH, que, como foi dito antes, armazena o
caminho dos programas. Por exemplo, a minha variável PATH contém:
neo@matrix:~$ echo $PATH
/usr/local/bin:/usr/bin: /bin: /usr/X11R6/bin: /usr/openwin/bin: /usr/games: /opt/kde/bin:
/usr/share/texmf/bin: /etc/script
Ou seja, quando digito um comando, como "ls", o shell vai começar a procurá-lo em /usr/local/bin,
se não encontrá-lo, vai procurar em /usr/bin e assim por diante. Repare que os diretórios são
separados por um sinal de dois pontos (:).
É importante destacar que o shell possui várias variáveis pré-definidas, ou seja, que possuem um
significado especial para ele, entre elas: PATH, PWD, PS1, PS2, USER e UID.
Assim, quando iniciamos um novo shell (ao executar o nosso script), essas variáveis especiais são
"herdadas" do shell pai (o que executou o shell filho). Outras variáveis definidas pelo usuário, como
a variável "cor" não são passadas do shell pai para o filho.
Quando o script terminar, o seu shell (shell filho) simplesmente desaparece e com ele também as
suas variáveis, liberando o espaço ocupado na memória.


  Formato dos arquivos de Shell Script
A primeira linha de todo shell script deve começar com algo do tipo: #!/bin/bash , a qual indica
com qual shell deverá ser executado o script.Nesse exemplo, estamos falando para o shell atual
executar o script com o shell /bin/bash.Se quisermos que o nosso script seja executado com o shell
csh, devemos colocar nessa primeira linha: #!/bin/csh .
Como usaremos o bash como nosso shell de referência, todas as linhas dos nossos scripts
começarão com #!/bin/bash
Digamos que você executa freqüentemente o comando: find / -name file -print , que procura na
raiz (/) por um arquivo de nome "file". Só que é chato ficar digitando esse comando toda vez que se
quer procurar um arquivo.
Então vamos criar um shell script que contenha esse comando. Vamos chamar esse shell script de
"procura". Seu conteúdo fica assim:
#!/bin/bash
find / -name file -print
Pronto. Tornemos agora o arquivo executável: chmod 755 ./procura . Porém, ao tentar executar o
nosso script, teremos um problema.
./procura
Este script irá procurar por um arquivo chamado "file".Como especificar qual arquivo queremos
procurar? Seria ideal executarmos o nosso script seguido do nome do arquivo que queremos
procurar.
Por exemplo, queremos saber onde está o arquivo "netscape": ./procura netscape . É ai que entram
as "variáveis de parâmetro". Vamos substituir no nosso script a linha find / -name file -print por
find / -name $1 -print .
Quando o bash lê a variável "$1", ele a substitui pelo primeiro parâmetro passado na linha de
comando para o nosso script. Então, se executamos ./procura netscape , a variável "$1" será
substituída por "netscape", como a gente queria. Repare que a variável "$2" conteria o segundo
parâmetro passado para o script e assim por diante.
Sendo assim, qualquer comando colocado abaixo de find seria executado após ele. Esse é o
essencial do shell script: poder automatizar a execução de programas e comandos como se
estivessem sendo digitados diretamente no console ou terminal.


   Conclusão
Na próxima aula do nosso curso de shell script iremos aprender alguns comandos especiais para
tornar nossos script mais poderosos, fazendo coisas mais elaboradas do que apenas executar
programas seqüencialmente. Entre eles, podemos destacar os comandos de laço, como "if", "for",
"while", "case" etc.

Weitere ähnliche Inhalte

Was ist angesagt?

Cap1 exercicios comandos linux resolucao part i
Cap1 exercicios comandos linux   resolucao part iCap1 exercicios comandos linux   resolucao part i
Cap1 exercicios comandos linux resolucao part i
portal_Do_estudante
 
Oficina shell
Oficina shellOficina shell
Oficina shell
apsegundo
 
Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streams
Armando Daniel
 

Was ist angesagt? (20)

12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015
 
Cap1 exercicios comandos linux resolucao part i
Cap1 exercicios comandos linux   resolucao part iCap1 exercicios comandos linux   resolucao part i
Cap1 exercicios comandos linux resolucao part i
 
Stack based overflow
Stack based overflowStack based overflow
Stack based overflow
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
Shell script
Shell scriptShell script
Shell script
 
Lpi+102
Lpi+102Lpi+102
Lpi+102
 
Shell script
Shell scriptShell script
Shell script
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Oficina shell
Oficina shellOficina shell
Oficina shell
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Invasaocom exploits
Invasaocom exploitsInvasaocom exploits
Invasaocom exploits
 
Shell Script v0
Shell Script v0Shell Script v0
Shell Script v0
 
Personalizando o ambiente do usuário
Personalizando o ambiente do usuárioPersonalizando o ambiente do usuário
Personalizando o ambiente do usuário
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017
 
Lab ect 02 pt
Lab ect 02 ptLab ect 02 pt
Lab ect 02 pt
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)
 
Linux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosLinux - Shell e Comandos Básicos
Linux - Shell e Comandos Básicos
 
01 notações iniciais
01   notações iniciais01   notações iniciais
01 notações iniciais
 
Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streams
 

Andere mochten auch

Trabalho de questao social! seminári!
Trabalho de questao social! seminári!Trabalho de questao social! seminári!
Trabalho de questao social! seminári!
Mony Lima
 
Pobreza, questão social, e seu enfrentamento
Pobreza, questão social, e seu enfrentamentoPobreza, questão social, e seu enfrentamento
Pobreza, questão social, e seu enfrentamento
Rosane Domingues
 
Karl marx teorias sociológicas
Karl marx   teorias sociológicasKarl marx   teorias sociológicas
Karl marx teorias sociológicas
Isaquel Silva
 
Mal estar na modernidade sergio paulo rouanet
Mal estar na modernidade sergio paulo rouanetMal estar na modernidade sergio paulo rouanet
Mal estar na modernidade sergio paulo rouanet
Alfeu Barreto
 
Capitalismo socialismo introdução
Capitalismo  socialismo  introduçãoCapitalismo  socialismo  introdução
Capitalismo socialismo introdução
LUIS ABREU
 
Crise do capitalismo e regimes totalitários
Crise do capitalismo e regimes totalitáriosCrise do capitalismo e regimes totalitários
Crise do capitalismo e regimes totalitários
Professor de História
 
A crise-do-capitalismo-e-os-regimes-totalitarios
A crise-do-capitalismo-e-os-regimes-totalitariosA crise-do-capitalismo-e-os-regimes-totalitarios
A crise-do-capitalismo-e-os-regimes-totalitarios
guest528425b
 
Expressões ideoculturais da crise capitalista na atualidade e sua influência...
Expressões  ideoculturais da crise capitalista na atualidade e sua influência...Expressões  ideoculturais da crise capitalista na atualidade e sua influência...
Expressões ideoculturais da crise capitalista na atualidade e sua influência...
Educação
 
Questao social e Politicas Sociais
Questao social e Politicas Sociais Questao social e Politicas Sociais
Questao social e Politicas Sociais
GlauciaAS
 

Andere mochten auch (20)

Curso porto cultura e conhecimento
Curso porto cultura e conhecimentoCurso porto cultura e conhecimento
Curso porto cultura e conhecimento
 
Crise do capitalismo liberal
Crise do capitalismo liberalCrise do capitalismo liberal
Crise do capitalismo liberal
 
Crise de 1929
Crise de 1929Crise de 1929
Crise de 1929
 
Desafios e soluções para a cafeicultura de montanha - João Carlos Romero - VI...
Desafios e soluções para a cafeicultura de montanha - João Carlos Romero - VI...Desafios e soluções para a cafeicultura de montanha - João Carlos Romero - VI...
Desafios e soluções para a cafeicultura de montanha - João Carlos Romero - VI...
 
Carlos eduardo montaño
Carlos eduardo montañoCarlos eduardo montaño
Carlos eduardo montaño
 
As teorias sociais e a questão social do século XIX
As teorias sociais e a questão social do século XIXAs teorias sociais e a questão social do século XIX
As teorias sociais e a questão social do século XIX
 
Trabalho de questao social! seminári!
Trabalho de questao social! seminári!Trabalho de questao social! seminári!
Trabalho de questao social! seminári!
 
Pobreza, questão social, e seu enfrentamento
Pobreza, questão social, e seu enfrentamentoPobreza, questão social, e seu enfrentamento
Pobreza, questão social, e seu enfrentamento
 
Karl marx teorias sociológicas
Karl marx   teorias sociológicasKarl marx   teorias sociológicas
Karl marx teorias sociológicas
 
Mal estar na modernidade sergio paulo rouanet
Mal estar na modernidade sergio paulo rouanetMal estar na modernidade sergio paulo rouanet
Mal estar na modernidade sergio paulo rouanet
 
A Grande Crise Do Capitalismo
A Grande Crise Do CapitalismoA Grande Crise Do Capitalismo
A Grande Crise Do Capitalismo
 
Capitalismo socialismo introdução
Capitalismo  socialismo  introduçãoCapitalismo  socialismo  introdução
Capitalismo socialismo introdução
 
O neoliberalismo
O neoliberalismoO neoliberalismo
O neoliberalismo
 
Crise do capitalismo e regimes totalitários
Crise do capitalismo e regimes totalitáriosCrise do capitalismo e regimes totalitários
Crise do capitalismo e regimes totalitários
 
A crise-do-capitalismo-e-os-regimes-totalitarios
A crise-do-capitalismo-e-os-regimes-totalitariosA crise-do-capitalismo-e-os-regimes-totalitarios
A crise-do-capitalismo-e-os-regimes-totalitarios
 
Pobreza, questão social, e seu enfrentamento
Pobreza, questão social, e seu enfrentamentoPobreza, questão social, e seu enfrentamento
Pobreza, questão social, e seu enfrentamento
 
Expressões ideoculturais da crise capitalista na atualidade e sua influência...
Expressões  ideoculturais da crise capitalista na atualidade e sua influência...Expressões  ideoculturais da crise capitalista na atualidade e sua influência...
Expressões ideoculturais da crise capitalista na atualidade e sua influência...
 
Crises Do Capitalismo
Crises Do CapitalismoCrises Do Capitalismo
Crises Do Capitalismo
 
Questao social e Politicas Sociais
Questao social e Politicas Sociais Questao social e Politicas Sociais
Questao social e Politicas Sociais
 
Formação da questão social no brasil
Formação da questão social no brasilFormação da questão social no brasil
Formação da questão social no brasil
 

Ähnlich wie Curso De Shell Aula 1

Lab so-abertos-unidade15
Lab so-abertos-unidade15Lab so-abertos-unidade15
Lab so-abertos-unidade15
Leandro Almeida
 
Curso De Shell Aula 3
Curso De Shell   Aula 3Curso De Shell   Aula 3
Curso De Shell Aula 3
Felipe Santos
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
Ivan Ribeiro
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comando
SoftD Abreu
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
Marcio Pereira
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Luiz Arthur
 

Ähnlich wie Curso De Shell Aula 1 (20)

Curso de shell
Curso de shellCurso de shell
Curso de shell
 
01 apostila-introducao-shell
01   apostila-introducao-shell01   apostila-introducao-shell
01 apostila-introducao-shell
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 
Curso de ShellScript - Lm01 shellscript
Curso de ShellScript - Lm01 shellscriptCurso de ShellScript - Lm01 shellscript
Curso de ShellScript - Lm01 shellscript
 
Introdução ao bash
Introdução ao bashIntrodução ao bash
Introdução ao bash
 
Lab so-abertos-unidade15
Lab so-abertos-unidade15Lab so-abertos-unidade15
Lab so-abertos-unidade15
 
Linux shell
Linux shellLinux shell
Linux shell
 
Introdução ao shell script no linux
Introdução ao shell script no linuxIntrodução ao shell script no linux
Introdução ao shell script no linux
 
Unidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao ShellUnidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao Shell
 
Curso De Shell Aula 3
Curso De Shell   Aula 3Curso De Shell   Aula 3
Curso De Shell Aula 3
 
Curso de ShellScript - Lm05 shellscript5
Curso de ShellScript - Lm05 shellscript5Curso de ShellScript - Lm05 shellscript5
Curso de ShellScript - Lm05 shellscript5
 
Shell script
Shell script Shell script
Shell script
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
 
Minicurso Comando Básicos
Minicurso Comando BásicosMinicurso Comando Básicos
Minicurso Comando Básicos
 
Fpar aula5
Fpar aula5Fpar aula5
Fpar aula5
 
Introdução Linux
Introdução LinuxIntrodução Linux
Introdução Linux
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comando
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
 

Mehr von Felipe Santos

ConheçA O Apache 2.0 Parte 2
ConheçA O Apache 2.0   Parte 2ConheçA O Apache 2.0   Parte 2
ConheçA O Apache 2.0 Parte 2
Felipe Santos
 
SegurançA BáSica Do Apache
SegurançA BáSica Do ApacheSegurançA BáSica Do Apache
SegurançA BáSica Do Apache
Felipe Santos
 
Quero Slack! (Parte 3)
Quero Slack! (Parte 3)Quero Slack! (Parte 3)
Quero Slack! (Parte 3)
Felipe Santos
 
Quero Slack! (Parte 1)
Quero Slack! (Parte 1)Quero Slack! (Parte 1)
Quero Slack! (Parte 1)
Felipe Santos
 
Quero Arch! (Parte 2)
Quero Arch! (Parte 2)Quero Arch! (Parte 2)
Quero Arch! (Parte 2)
Felipe Santos
 
Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Quero Arch! (Parte 1)
Quero Arch! (Parte 1)
Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 6
Conceitos BáSicos Sobre SegurançA   Parte 6Conceitos BáSicos Sobre SegurançA   Parte 6
Conceitos BáSicos Sobre SegurançA Parte 6
Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 4
Conceitos BáSicos Sobre SegurançA   Parte 4Conceitos BáSicos Sobre SegurançA   Parte 4
Conceitos BáSicos Sobre SegurançA Parte 4
Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 3
Conceitos BáSicos Sobre SegurançA   Parte 3Conceitos BáSicos Sobre SegurançA   Parte 3
Conceitos BáSicos Sobre SegurançA Parte 3
Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 2
Conceitos BáSicos Sobre SegurançA   Parte 2Conceitos BáSicos Sobre SegurançA   Parte 2
Conceitos BáSicos Sobre SegurançA Parte 2
Felipe Santos
 
Curso De Shell Aula 6
Curso De Shell   Aula 6Curso De Shell   Aula 6
Curso De Shell Aula 6
Felipe Santos
 
Curso De Shell Aula 5
Curso De Shell   Aula 5Curso De Shell   Aula 5
Curso De Shell Aula 5
Felipe Santos
 
Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windowsCompartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
Felipe Santos
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Felipe Santos
 
Acesso Remoto Para Principiantes
Acesso Remoto Para PrincipiantesAcesso Remoto Para Principiantes
Acesso Remoto Para Principiantes
Felipe Santos
 
Curso De Algoritmo Aula 10
Curso De Algoritmo   Aula 10Curso De Algoritmo   Aula 10
Curso De Algoritmo Aula 10
Felipe Santos
 

Mehr von Felipe Santos (20)

ConheçA O Apache 2.0 Parte 2
ConheçA O Apache 2.0   Parte 2ConheçA O Apache 2.0   Parte 2
ConheçA O Apache 2.0 Parte 2
 
SegurançA BáSica Do Apache
SegurançA BáSica Do ApacheSegurançA BáSica Do Apache
SegurançA BáSica Do Apache
 
Quero Slack! (Parte 3)
Quero Slack! (Parte 3)Quero Slack! (Parte 3)
Quero Slack! (Parte 3)
 
Quero Slack! (Parte 1)
Quero Slack! (Parte 1)Quero Slack! (Parte 1)
Quero Slack! (Parte 1)
 
Quero Arch! (Parte 2)
Quero Arch! (Parte 2)Quero Arch! (Parte 2)
Quero Arch! (Parte 2)
 
Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Quero Arch! (Parte 1)
Quero Arch! (Parte 1)
 
Conceitos BáSicos Sobre SegurançA Parte 6
Conceitos BáSicos Sobre SegurançA   Parte 6Conceitos BáSicos Sobre SegurançA   Parte 6
Conceitos BáSicos Sobre SegurançA Parte 6
 
Conceitos BáSicos Sobre SegurançA Parte 4
Conceitos BáSicos Sobre SegurançA   Parte 4Conceitos BáSicos Sobre SegurançA   Parte 4
Conceitos BáSicos Sobre SegurançA Parte 4
 
Conceitos BáSicos Sobre SegurançA Parte 3
Conceitos BáSicos Sobre SegurançA   Parte 3Conceitos BáSicos Sobre SegurançA   Parte 3
Conceitos BáSicos Sobre SegurançA Parte 3
 
Conceitos BáSicos Sobre SegurançA Parte 2
Conceitos BáSicos Sobre SegurançA   Parte 2Conceitos BáSicos Sobre SegurançA   Parte 2
Conceitos BáSicos Sobre SegurançA Parte 2
 
Curso De Shell Aula 6
Curso De Shell   Aula 6Curso De Shell   Aula 6
Curso De Shell Aula 6
 
Curso De Shell Aula 5
Curso De Shell   Aula 5Curso De Shell   Aula 5
Curso De Shell Aula 5
 
Sniffers Parte 3
Sniffers   Parte 3Sniffers   Parte 3
Sniffers Parte 3
 
Sniffers Parte 1
Sniffers   Parte 1Sniffers   Parte 1
Sniffers Parte 1
 
Sniffers Parte 2
Sniffers   Parte 2Sniffers   Parte 2
Sniffers Parte 2
 
Introdução ao Ssh
Introdução ao SshIntrodução ao Ssh
Introdução ao Ssh
 
Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windowsCompartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
 
Acesso Remoto Para Principiantes
Acesso Remoto Para PrincipiantesAcesso Remoto Para Principiantes
Acesso Remoto Para Principiantes
 
Curso De Algoritmo Aula 10
Curso De Algoritmo   Aula 10Curso De Algoritmo   Aula 10
Curso De Algoritmo Aula 10
 

Curso De Shell Aula 1

  • 1. Curso de Shell - Aula I Introdução O que são os shell scripts? Shell scripts são conjuntos de comandos armazenados em um arquivo texto que são executados seqüencialmente. Nesta primeira parte, faremos uma introdução sobre o shell, o formato desses arquivos e variáveis de ambiente. O que é Shell Shell, ou interpretador de comandos, é o programa disparado logo após o login responsável por "pegar" os comandos do usuário, interpretá-los e executar uma determinada ação. Por exemplo, quando você escreve no console "ls" e pressiona <enter>, o shell lê essa string e verifica se existe algum comando interno (embutido no próprio shell) com esse nome. Se houver, ele executa esse comando interno. Caso contrário, ele vai procurar no PATH por algum programa que tenha esse nome. Se encontrar, ele executa esse programa, caso contrário, ele retorna uma mensagem de erro. Para cada terminal ou console aberto, existe um shell sendo executado. Quando você entra no seu Linux, ele apresenta o login, para digitar o usuário e a senha. Ao digitar um par usuário/senha correto, o Linux abre automaticamente um shell, que vai ficar esperando seus comandos. Veja o exemplo abaixo: Welcome to Linux Slackware 7.1 kernel 2.2.16. matrix login: neo Password: Linux 2.2.16. Last login: Mon Sep 25 10:41:12 -0300 2000 on tty1. No mail. neo@matrix:~$ Essa ultima linha é o shell. Se você der o comando "ps", vai ver que um dos programas rodando é o seu shell: neo@matrix:~$ ps PID TTY TIME CMD 164 tty2 00:00:00 bash 213 tty2 00:00:00 ps neo@matrix:~$ Ou seja, o shell utilizado nesse console é o bash, que está rodando com PID 164. Existem diversos tipos de shell: bash, csh, ksh, ash, etc. O mais utilizado atualmente é o bash (GNU Bourne-Again SHell). Por isso, tomaremos ele como referência. Resumindo essa seção, é importante saber que para cada terminal ou console aberto, tem-se um shell rodando. Assim, se você tem 3 xterms abertos na interface gráfica, vai ter um shell para cada xterm. Ao executar o shell script, o shell atual (no qual você deu o comando) abre um novo shell para executar o script. Assim, os scripts são executados em um shell próprio (a menos que se especifique, ao chamar o script, para executá-lo no shell atual). Isso será importante quando formos tratar de variáveis de ambiente.
  • 2. Variáveis do ambiente Uma variável é onde o shell armazena determinados valores para utilização posterior. Toda variável possui um nome e um valor associado a ela, podendo ser este último vazio. Para listar as variáveis atualmente definidas no shell digite o comando set . Para se definir uma variável, basta utilizar a síntaxe: nome_da_variável=valor . Por exemplo, queremos definir uma variável chamada "cor" com o valor de "azul": neo@matrix:~$ cor=azul Para utilizar o valor de uma variável, é só colocar um sinal de "$" seguido do nome da variável - o shell automaticamente substitui pelo valor da variável: neo@matrix:~$ echo cor cor neo@matrix:~$ echo $cor azul Em alguns casos, é aconselhável colocar o nome da variável entre chaves ({}). Por exemplo, se eu quero imprimir "azul-escuro", como faria? Simplesmente echo $cor-escuro ?? Não funcionaria, pois o bash vai procurar uma variável de nome "cor-escuro". Portanto, temos que colocar o nome "cor" entre chaves para delimitar o nome da variável: neo@matrix:~$ echo ${cor}-escuro azul-escuro Algumas variáveis já são predefinidas no shell, como o PATH, que, como foi dito antes, armazena o caminho dos programas. Por exemplo, a minha variável PATH contém: neo@matrix:~$ echo $PATH /usr/local/bin:/usr/bin: /bin: /usr/X11R6/bin: /usr/openwin/bin: /usr/games: /opt/kde/bin: /usr/share/texmf/bin: /etc/script Ou seja, quando digito um comando, como "ls", o shell vai começar a procurá-lo em /usr/local/bin, se não encontrá-lo, vai procurar em /usr/bin e assim por diante. Repare que os diretórios são separados por um sinal de dois pontos (:). É importante destacar que o shell possui várias variáveis pré-definidas, ou seja, que possuem um significado especial para ele, entre elas: PATH, PWD, PS1, PS2, USER e UID. Assim, quando iniciamos um novo shell (ao executar o nosso script), essas variáveis especiais são "herdadas" do shell pai (o que executou o shell filho). Outras variáveis definidas pelo usuário, como a variável "cor" não são passadas do shell pai para o filho. Quando o script terminar, o seu shell (shell filho) simplesmente desaparece e com ele também as suas variáveis, liberando o espaço ocupado na memória. Formato dos arquivos de Shell Script A primeira linha de todo shell script deve começar com algo do tipo: #!/bin/bash , a qual indica com qual shell deverá ser executado o script.Nesse exemplo, estamos falando para o shell atual executar o script com o shell /bin/bash.Se quisermos que o nosso script seja executado com o shell csh, devemos colocar nessa primeira linha: #!/bin/csh . Como usaremos o bash como nosso shell de referência, todas as linhas dos nossos scripts começarão com #!/bin/bash Digamos que você executa freqüentemente o comando: find / -name file -print , que procura na raiz (/) por um arquivo de nome "file". Só que é chato ficar digitando esse comando toda vez que se
  • 3. quer procurar um arquivo. Então vamos criar um shell script que contenha esse comando. Vamos chamar esse shell script de "procura". Seu conteúdo fica assim: #!/bin/bash find / -name file -print Pronto. Tornemos agora o arquivo executável: chmod 755 ./procura . Porém, ao tentar executar o nosso script, teremos um problema. ./procura Este script irá procurar por um arquivo chamado "file".Como especificar qual arquivo queremos procurar? Seria ideal executarmos o nosso script seguido do nome do arquivo que queremos procurar. Por exemplo, queremos saber onde está o arquivo "netscape": ./procura netscape . É ai que entram as "variáveis de parâmetro". Vamos substituir no nosso script a linha find / -name file -print por find / -name $1 -print . Quando o bash lê a variável "$1", ele a substitui pelo primeiro parâmetro passado na linha de comando para o nosso script. Então, se executamos ./procura netscape , a variável "$1" será substituída por "netscape", como a gente queria. Repare que a variável "$2" conteria o segundo parâmetro passado para o script e assim por diante. Sendo assim, qualquer comando colocado abaixo de find seria executado após ele. Esse é o essencial do shell script: poder automatizar a execução de programas e comandos como se estivessem sendo digitados diretamente no console ou terminal. Conclusão Na próxima aula do nosso curso de shell script iremos aprender alguns comandos especiais para tornar nossos script mais poderosos, fazendo coisas mais elaboradas do que apenas executar programas seqüencialmente. Entre eles, podemos destacar os comandos de laço, como "if", "for", "while", "case" etc.