SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Fundamentos de Programação Aplicada a Redes ­ 
Shell Script
Linux Shell
                                       Frederico Madeira
                                     LPIC­1, LPIC­2, CCNA
                                     fred@madeira.eng.br
                                      www.madeira.eng.br
Shell

Shell


“É qualquer interface de usuário para o SO Unix. que receba
do usuário um input e a converta em instrução para que o SO
entenda.”



Shell Script

“É um arquivo que contém uma série de comandos, funções,
rotinas que são executadas quando o shell script é executado.
Se digitarmos comando a comando diretamente no shell, o
resultado será o mesmo”
Shell

Exemplos de Shell
Bourne(sh), C shell (csh), Korn (ksh) - comercial, bash (free)




                                    Fonte: Linux Magazine, vol 01. Por Julio Cezar Neves


Qual Shell estou usando ?
[root@localhost fred_m]# echo $SHELL
/bin/bash
Comandos

– Definem como o programa será executado.

– Consiste em uma ou mais palavras, que são separadas por espaços ou TABs.

– A primeira palavra é o comando

– As palavras restantes são os argumentos/parâmetros

  Ex:
   • [root@localhost fred_m]# vi teste.txt
   • [root@localhost fred_m]# ls /tmp
   • [root@localhost fred_m]# ls
Argumento

   –   Informação extra passada para a execução do comando
   –   Podem ser nome de objetos ou definir como o comando irá funcionar
   –   Ex: [root@localhost fred_m]# cat /proc/cpuinfo
   –   Opções
         • Argumentos especiais que dá ao comando instruções específicas de como
           se comportar
         • Usualmente consiste em um – seguido de uma letra
           EX:
             – [root@localhost fred_m]# uname -s
             – [root@localhost fred_m]# uname -m
             – [root@localhost fred_m]# uname -p
             – [root@localhost fred_m]# uname -a
         • Podem conter seus próprios argumentos
           EX:
             – [root@localhost fred_m]# lp -d lp1 -h myfile
Onde: -d define a impressora lp1 | -h imprimir banner | myfile arquivo a ser impress
Arquivos

- Arquivos Regulares
   – Arquivos de texto



- Arquivos Executáveis
   – Também chamados de programas
   – São executados como comandos
   – Podem ser:
      • Compilados
      • Shell Scripts

- Diretórios
Atribuições

•   Identificada quando o Shell encontra um sinal de igualdade (=)
•   Separa dois campos sem espaços em branco, entre o (=).
•   Criam variáveis
•   Variáveis podem ser lidas pelo comando echo

Ex:

Errado:
[root@madeira ~]# $VAR=a
bash: =a: command not found...

Certo:
[root@madeira ~]# VAR=ab
Variáveis
Armazenam informações durante execução do script ou sistema

  – Atribuindo valor
    VARIAVEL=“Teste Linux”

  – Exibindo o valor
    echo $VARIAVEL

  – Atribuindo a saída de um comando
    VARIAVEL=$(date)
    VARIAVEL=`date`

  – Limpando uma variável
    unset VARIAVEL

  – Listando todas as variáveis
    env ou set
Prática
Aspas “ ”
Ex.: echo “Sou o usuario $USER”

Apóstrofos ' '
Ex.: echo 'Sou o usuario $USER'
Ex.: echo 'Linha com espaços       :'

Barra invertida 
Ex.: echo 

Crase
ex.: echo “Este host chama-se `uname -n`”

Parêteses
ex.: echo “Este host chama-se $(uname -n)”
Prática
– Atribuindo valor
  NOME=”Frederico Madeira”

– Exibindo o valor
  echo $VARIAVEL

– Atribuindo a saída de um comando
  HOJE=$(date +"%Y%m%d")
  echo $HOJE
  AGORA=`+"%H:%M"`
  echo $AGORA

– Visualizando todas as variáveis
  set
  env
– Limpando uma variável
  unset NOME
  unset HOJE AGORA
Características de um Shell

- Metacaracteres
Caracteres com significado especial
Ex: &, >, <, |


- Caracteres Coringas (wildcards)
Caracteres especiais usados junto com os argumentos
Ex: *, ?, [abc], [a-c],[!0-9]
Conceitos


- Entrada Padrão (stdin)
Entrada padrão de comandos para o shell
Ex: teclado, pipe


- Saída Padrão (stdout)
Saída padrão do do comando
Ex: tela, arquivo


- Saída de Erro (stderr)
Saída padrão para erros de execução do comando
Ex: tela, arquivo
Conceitos

É Case Sensitive

.. - Indica o diretório anterior

. - Indica o diretório atual

~ - Indica o diretório home do usuário

# - Comentário


[fred_m@localhost teste]$ - Indica conexão sem privilégios de root

[root@localhost teste]# - Indica conexão com privilégios de root
Conceitos


$ - Definição de variáveis

.xxxx - arquivos ocultos

| - pipe

& (como bg) - Envia aplicativo para background

--help – Obtém ajuda sobre utilização do comando
Redirecionamento

> : Redireciona a saída padrão do comando a esquerda para o arquivo a direita,
sobrescrevendo todo o conteúdo.

>> : Redireciona a saída padrão do comando a esquerda para o arquivo a direita,
adicionando o conteúdo ao final do arquivo.

| : Pipe, redireciona a saída padrão do primeiro comando para a entrada padrão do
segundo comando.

Ex:

$ cat /etc/passwd | grep root > /tmp/root

$ ping -c 1 www.madeira.eng.br > /dev/null

OBS: /dev/null , representa lugar nenhum
Redirecionamento Saída Padrão/Erro
stderr (2): Saída de Erro.
Para redirecionar a saída de erro, usamos: 2>

stdout(1): Saída do comando
Para redirecionar a saída do comando, usamos: 1>

Para redirecionar ambas usamos: &>

Ex:

Saída do comando
[fred@localhost Linux]$ ping www.madeira.eng.br
PING www.madeira.eng.br (69.16.250.4) 56(84) bytes of data.
64 bytes from noc88.noc88.com (69.16.250.4): icmp_seq=1 ttl=45 time=300 ms


Saída de erro
[fred@localhost Linux]$ ping www.madeira.eng.br1
ping: unknown host www.madeira.eng.br1
Redirecionamento Saída Padrão/Erro
Comando ok, redir saída de erro
[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br 2> /dev/null
PING www.madeira.eng.br (69.16.250.4) 56(84) bytes of data.
64 bytes from noc88.noc88.com (69.16.250.4): icmp_seq=1 ttl=45 time=250 ms


Comando errado, redir saída de erro
[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 2> /dev/null


Comando ok, redir saída do comando
[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br 1> /dev/null


Comando errado, redir saída do comando
[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 1> /dev/null
ping: unknown host www.madeira.eng.br1


Comando ok, redir saída do comando e saída de erro
[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br &>     /dev/null


Comando errado, redir saída do comando e saída de erro
[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 &> /dev/null
Lógica


&& - equivalente ao E. O próximo comando só será executado se o anterior
tiver sido bem sucedido.

|| - equivalente ao OU. Se o comando anterior não for bem sucedido, será
executado o próximo comando. OU um OU outro.

Ex:
$ ping -c 1 www.madeira.eng.br && echo “Site está ok” || echo “Site fora do ar”
Forma mais elegante:
$ ping -c 1 www.madeira.eng.br &> /dev/null && echo “Site está ok” || echo
“Site fora do ar”

$ mkfs.ext3 /dev/sda1 && echo “Formatação OK” || echo “Erro na formatação”
Redirecionamento Saída Padrão/Erro
Prática

1. Redirecione a saída de erro dos comandos abaixo para o arquivo /tmp/error.log

tar xvfz teste.tar.gz
ifconfig ppp0
ifconfig eth0

2. Repita a questão anterior, redirecionando também a saída padrão para /tmp/saida.log (Não
sobrescreva os arquivos)


3. Execute os comandos abaixo e retorne as seguintes mensagens (Execute o com ando com um
usuário normal):
                  Comando                    Mensagem         Mensagem em caso de NOK
                                                OK
cat /etc/passwd                             Listagem OK      Falha na listagem

cat /etc/audit                              Listagem OK      Falha na listagem
Fundamentos de Programação Aplicada a Redes ­ 
Shell Script
Linux Shell
                                       Frederico Madeira
                                     LPIC­1, LPIC­2, CCNA
                                     fred@madeira.eng.br
                                      www.madeira.eng.br

Más contenido relacionado

La actualidad más candente

Comandos, Permissões e Partições Linux
Comandos, Permissões e Partições LinuxComandos, Permissões e Partições Linux
Comandos, Permissões e Partições LinuxVirgínia
 
Comandos Básicos Linux
Comandos Básicos LinuxComandos Básicos Linux
Comandos Básicos LinuxSoftD Abreu
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)Sérgio Silva
 
Introdução aos comandos Linux
Introdução aos comandos LinuxIntrodução aos comandos Linux
Introdução aos comandos LinuxCarlos Quadros
 
Trabalho so m4 rui faria
Trabalho so m4   rui fariaTrabalho so m4   rui faria
Trabalho so m4 rui fariaRuiFaria38
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxguilhermeoki
 
YUM, APT-GET, DPKG, RPM
YUM, APT-GET, DPKG, RPMYUM, APT-GET, DPKG, RPM
YUM, APT-GET, DPKG, RPMSoftD Abreu
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comandoSoftD Abreu
 
Manual comandos
Manual comandosManual comandos
Manual comandosPaulo Rijo
 
Linux comandos para arquivos e diretórios
Linux   comandos para arquivos e diretóriosLinux   comandos para arquivos e diretórios
Linux comandos para arquivos e diretóriosDanilo Filitto
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1Leo Amorim
 
Linux comandos diversos
Linux   comandos diversosLinux   comandos diversos
Linux comandos diversosDanilo Filitto
 
SENAI - Segurança firewall
SENAI - Segurança   firewall SENAI - Segurança   firewall
SENAI - Segurança firewall Carlos Melo
 

La actualidad más candente (20)

Comandos, Permissões e Partições Linux
Comandos, Permissões e Partições LinuxComandos, Permissões e Partições Linux
Comandos, Permissões e Partições Linux
 
Comandos Básicos Linux
Comandos Básicos LinuxComandos Básicos Linux
Comandos Básicos Linux
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)
 
Introdução aos comandos Linux
Introdução aos comandos LinuxIntrodução aos comandos Linux
Introdução aos comandos Linux
 
Trabalho so m4 rui faria
Trabalho so m4   rui fariaTrabalho so m4   rui faria
Trabalho so m4 rui faria
 
Comandos Linux Parte 2
Comandos Linux Parte 2Comandos Linux Parte 2
Comandos Linux Parte 2
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Cap1 exercicios comandos linux
Cap1 exercicios comandos linuxCap1 exercicios comandos linux
Cap1 exercicios comandos linux
 
YUM, APT-GET, DPKG, RPM
YUM, APT-GET, DPKG, RPMYUM, APT-GET, DPKG, RPM
YUM, APT-GET, DPKG, RPM
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comando
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Comandos linux
Comandos linux Comandos linux
Comandos linux
 
Linux - DNS
Linux - DNSLinux - DNS
Linux - DNS
 
Manual comandos
Manual comandosManual comandos
Manual comandos
 
Linux comandos para arquivos e diretórios
Linux   comandos para arquivos e diretóriosLinux   comandos para arquivos e diretórios
Linux comandos para arquivos e diretórios
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Linux comandos diversos
Linux   comandos diversosLinux   comandos diversos
Linux comandos diversos
 
SENAI - Segurança firewall
SENAI - Segurança   firewall SENAI - Segurança   firewall
SENAI - Segurança firewall
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 

Destacado

SI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplinaSI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplinaFrederico Madeira
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IPO Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IPFrederico Madeira
 
Segurança em Redes de Voz Sobre IP
Segurança em Redes de Voz Sobre IPSegurança em Redes de Voz Sobre IP
Segurança em Redes de Voz Sobre IPFrederico Madeira
 
Ferramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFerramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFrederico Madeira
 
Introdução a Gerência de Redes
Introdução a Gerência de RedesIntrodução a Gerência de Redes
Introdução a Gerência de RedesFrederico Madeira
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesFrederico Madeira
 
configuración del servidor Telnet
configuración del servidor Telnetconfiguración del servidor Telnet
configuración del servidor TelnetGustavo Guerra
 

Destacado (12)

Linux Editor VI
Linux Editor VILinux Editor VI
Linux Editor VI
 
SI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplinaSI - Sistemas Distribuídos - Apresentação da disciplina
SI - Sistemas Distribuídos - Apresentação da disciplina
 
MRTG - SNMP na Prática
MRTG - SNMP na PráticaMRTG - SNMP na Prática
MRTG - SNMP na Prática
 
Introdução ao SNMP
Introdução ao SNMPIntrodução ao SNMP
Introdução ao SNMP
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IPO Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
 
Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 
Segurança em Redes de Voz Sobre IP
Segurança em Redes de Voz Sobre IPSegurança em Redes de Voz Sobre IP
Segurança em Redes de Voz Sobre IP
 
Ferramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFerramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em Redes
 
Introdução a Gerência de Redes
Introdução a Gerência de RedesIntrodução a Gerência de Redes
Introdução a Gerência de Redes
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de Redes
 
configuración del servidor Telnet
configuración del servidor Telnetconfiguración del servidor Telnet
configuración del servidor Telnet
 

Similar a Linux shell

Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power toolsArmando Reis
 
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 2017Sandro Custodio
 
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 comandosIvan Ribeiro
 
(03) shell e comandos basicos[1]
(03) shell e comandos basicos[1](03) shell e comandos basicos[1]
(03) shell e comandos basicos[1]Anderson Lago
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Leo Amorim
 
Comandos Linux
Comandos LinuxComandos Linux
Comandos Linuxlol
 
Oficina shell
Oficina shellOficina shell
Oficina shellapsegundo
 
Operadores de redirecionamento
Operadores de redirecionamentoOperadores de redirecionamento
Operadores de redirecionamentoIvani Nascimento
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell scriptbrunobione
 
O Que é shell - bash
O Que é shell - bashO Que é shell - bash
O Que é shell - bashSérgio Silva
 
Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2Leo Amorim
 
Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2Leo Amorim
 
Principais comandos do terminal no linux tecnologia para todos!
Principais comandos do terminal no linux   tecnologia para todos!Principais comandos do terminal no linux   tecnologia para todos!
Principais comandos do terminal no linux tecnologia para todos!Fábio Fernando
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Hugo Maia Vieira
 

Similar a Linux shell (20)

Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power tools
 
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
 
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
 
Shell Script v0
Shell Script v0Shell Script v0
Shell Script v0
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
Lpi+102
Lpi+102Lpi+102
Lpi+102
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
(03) shell e comandos basicos[1]
(03) shell e comandos basicos[1](03) shell e comandos basicos[1]
(03) shell e comandos basicos[1]
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Comandos Linux
Comandos LinuxComandos Linux
Comandos Linux
 
Oficina shell
Oficina shellOficina shell
Oficina shell
 
Operadores de redirecionamento
Operadores de redirecionamentoOperadores de redirecionamento
Operadores de redirecionamento
 
Aula 11 semana
Aula 11 semanaAula 11 semana
Aula 11 semana
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
O Que é shell - bash
O Que é shell - bashO Que é shell - bash
O Que é shell - bash
 
Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2
 
Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2Aula - Comandos Linux - Parte 2
Aula - Comandos Linux - Parte 2
 
Principais comandos do terminal no linux tecnologia para todos!
Principais comandos do terminal no linux   tecnologia para todos!Principais comandos do terminal no linux   tecnologia para todos!
Principais comandos do terminal no linux tecnologia para todos!
 
Linux Ubuntu
Linux   UbuntuLinux   Ubuntu
Linux Ubuntu
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 

Más de Frederico Madeira

Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud ComputingFrederico Madeira
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos DistribuídosFrederico Madeira
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Proteja seus dados em casa e na internet
Proteja seus dados em casa e na internetProteja seus dados em casa e na internet
Proteja seus dados em casa e na internetFrederico Madeira
 
Linux e o modelo open source
Linux e o modelo open sourceLinux e o modelo open source
Linux e o modelo open sourceFrederico Madeira
 
Redes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da TelefoniaRedes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da TelefoniaFrederico Madeira
 
Open Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreOpen Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreFrederico Madeira
 
Redes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksRedes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksFrederico Madeira
 
Apresentação da disciplina de Gerência de Redes
Apresentação da disciplina de Gerência de RedesApresentação da disciplina de Gerência de Redes
Apresentação da disciplina de Gerência de RedesFrederico Madeira
 

Más de Frederico Madeira (17)

WebServices
WebServicesWebServices
WebServices
 
IoT - Internet of Things
IoT -  Internet of ThingsIoT -  Internet of Things
IoT - Internet of Things
 
Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud Computing
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos Distribuídos
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Proteja seus dados em casa e na internet
Proteja seus dados em casa e na internetProteja seus dados em casa e na internet
Proteja seus dados em casa e na internet
 
Linux e o modelo open source
Linux e o modelo open sourceLinux e o modelo open source
Linux e o modelo open source
 
Redes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da TelefoniaRedes VoIP - O Futuro da Telefonia
Redes VoIP - O Futuro da Telefonia
 
Open Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software LivreOpen Virtualization - Virtualização em Software Livre
Open Virtualization - Virtualização em Software Livre
 
Redes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksRedes NGN - Next Generation Networks
Redes NGN - Next Generation Networks
 
Apresentação da disciplina de Gerência de Redes
Apresentação da disciplina de Gerência de RedesApresentação da disciplina de Gerência de Redes
Apresentação da disciplina de Gerência de Redes
 
Asterisk Voice Mail
Asterisk Voice MailAsterisk Voice Mail
Asterisk Voice Mail
 
Asterisk trunk
Asterisk trunkAsterisk trunk
Asterisk trunk
 
Configuracao do asterisk
Configuracao do asteriskConfiguracao do asterisk
Configuracao do asterisk
 

Linux shell

  • 1. Fundamentos de Programação Aplicada a Redes ­  Shell Script Linux Shell Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br
  • 2. Shell Shell “É qualquer interface de usuário para o SO Unix. que receba do usuário um input e a converta em instrução para que o SO entenda.” Shell Script “É um arquivo que contém uma série de comandos, funções, rotinas que são executadas quando o shell script é executado. Se digitarmos comando a comando diretamente no shell, o resultado será o mesmo”
  • 3. Shell Exemplos de Shell Bourne(sh), C shell (csh), Korn (ksh) - comercial, bash (free) Fonte: Linux Magazine, vol 01. Por Julio Cezar Neves Qual Shell estou usando ? [root@localhost fred_m]# echo $SHELL /bin/bash
  • 4. Comandos – Definem como o programa será executado. – Consiste em uma ou mais palavras, que são separadas por espaços ou TABs. – A primeira palavra é o comando – As palavras restantes são os argumentos/parâmetros Ex: • [root@localhost fred_m]# vi teste.txt • [root@localhost fred_m]# ls /tmp • [root@localhost fred_m]# ls
  • 5. Argumento – Informação extra passada para a execução do comando – Podem ser nome de objetos ou definir como o comando irá funcionar – Ex: [root@localhost fred_m]# cat /proc/cpuinfo – Opções • Argumentos especiais que dá ao comando instruções específicas de como se comportar • Usualmente consiste em um – seguido de uma letra EX: – [root@localhost fred_m]# uname -s – [root@localhost fred_m]# uname -m – [root@localhost fred_m]# uname -p – [root@localhost fred_m]# uname -a • Podem conter seus próprios argumentos EX: – [root@localhost fred_m]# lp -d lp1 -h myfile Onde: -d define a impressora lp1 | -h imprimir banner | myfile arquivo a ser impress
  • 6. Arquivos - Arquivos Regulares – Arquivos de texto - Arquivos Executáveis – Também chamados de programas – São executados como comandos – Podem ser: • Compilados • Shell Scripts - Diretórios
  • 7. Atribuições • Identificada quando o Shell encontra um sinal de igualdade (=) • Separa dois campos sem espaços em branco, entre o (=). • Criam variáveis • Variáveis podem ser lidas pelo comando echo Ex: Errado: [root@madeira ~]# $VAR=a bash: =a: command not found... Certo: [root@madeira ~]# VAR=ab
  • 8. Variáveis Armazenam informações durante execução do script ou sistema – Atribuindo valor VARIAVEL=“Teste Linux” – Exibindo o valor echo $VARIAVEL – Atribuindo a saída de um comando VARIAVEL=$(date) VARIAVEL=`date` – Limpando uma variável unset VARIAVEL – Listando todas as variáveis env ou set
  • 9. Prática Aspas “ ” Ex.: echo “Sou o usuario $USER” Apóstrofos ' ' Ex.: echo 'Sou o usuario $USER' Ex.: echo 'Linha com espaços :' Barra invertida Ex.: echo Crase ex.: echo “Este host chama-se `uname -n`” Parêteses ex.: echo “Este host chama-se $(uname -n)”
  • 10. Prática – Atribuindo valor NOME=”Frederico Madeira” – Exibindo o valor echo $VARIAVEL – Atribuindo a saída de um comando HOJE=$(date +"%Y%m%d") echo $HOJE AGORA=`+"%H:%M"` echo $AGORA – Visualizando todas as variáveis set env – Limpando uma variável unset NOME unset HOJE AGORA
  • 11. Características de um Shell - Metacaracteres Caracteres com significado especial Ex: &, >, <, | - Caracteres Coringas (wildcards) Caracteres especiais usados junto com os argumentos Ex: *, ?, [abc], [a-c],[!0-9]
  • 12. Conceitos - Entrada Padrão (stdin) Entrada padrão de comandos para o shell Ex: teclado, pipe - Saída Padrão (stdout) Saída padrão do do comando Ex: tela, arquivo - Saída de Erro (stderr) Saída padrão para erros de execução do comando Ex: tela, arquivo
  • 13. Conceitos É Case Sensitive .. - Indica o diretório anterior . - Indica o diretório atual ~ - Indica o diretório home do usuário # - Comentário [fred_m@localhost teste]$ - Indica conexão sem privilégios de root [root@localhost teste]# - Indica conexão com privilégios de root
  • 14. Conceitos $ - Definição de variáveis .xxxx - arquivos ocultos | - pipe & (como bg) - Envia aplicativo para background --help – Obtém ajuda sobre utilização do comando
  • 15. Redirecionamento > : Redireciona a saída padrão do comando a esquerda para o arquivo a direita, sobrescrevendo todo o conteúdo. >> : Redireciona a saída padrão do comando a esquerda para o arquivo a direita, adicionando o conteúdo ao final do arquivo. | : Pipe, redireciona a saída padrão do primeiro comando para a entrada padrão do segundo comando. Ex: $ cat /etc/passwd | grep root > /tmp/root $ ping -c 1 www.madeira.eng.br > /dev/null OBS: /dev/null , representa lugar nenhum
  • 16. Redirecionamento Saída Padrão/Erro stderr (2): Saída de Erro. Para redirecionar a saída de erro, usamos: 2> stdout(1): Saída do comando Para redirecionar a saída do comando, usamos: 1> Para redirecionar ambas usamos: &> Ex: Saída do comando [fred@localhost Linux]$ ping www.madeira.eng.br PING www.madeira.eng.br (69.16.250.4) 56(84) bytes of data. 64 bytes from noc88.noc88.com (69.16.250.4): icmp_seq=1 ttl=45 time=300 ms Saída de erro [fred@localhost Linux]$ ping www.madeira.eng.br1 ping: unknown host www.madeira.eng.br1
  • 17. Redirecionamento Saída Padrão/Erro Comando ok, redir saída de erro [fred@localhost Linux]$ ping -c 1 www.madeira.eng.br 2> /dev/null PING www.madeira.eng.br (69.16.250.4) 56(84) bytes of data. 64 bytes from noc88.noc88.com (69.16.250.4): icmp_seq=1 ttl=45 time=250 ms Comando errado, redir saída de erro [fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 2> /dev/null Comando ok, redir saída do comando [fred@localhost Linux]$ ping -c 1 www.madeira.eng.br 1> /dev/null Comando errado, redir saída do comando [fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 1> /dev/null ping: unknown host www.madeira.eng.br1 Comando ok, redir saída do comando e saída de erro [fred@localhost Linux]$ ping -c 1 www.madeira.eng.br &> /dev/null Comando errado, redir saída do comando e saída de erro [fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 &> /dev/null
  • 18. Lógica && - equivalente ao E. O próximo comando só será executado se o anterior tiver sido bem sucedido. || - equivalente ao OU. Se o comando anterior não for bem sucedido, será executado o próximo comando. OU um OU outro. Ex: $ ping -c 1 www.madeira.eng.br && echo “Site está ok” || echo “Site fora do ar” Forma mais elegante: $ ping -c 1 www.madeira.eng.br &> /dev/null && echo “Site está ok” || echo “Site fora do ar” $ mkfs.ext3 /dev/sda1 && echo “Formatação OK” || echo “Erro na formatação”
  • 19. Redirecionamento Saída Padrão/Erro Prática 1. Redirecione a saída de erro dos comandos abaixo para o arquivo /tmp/error.log tar xvfz teste.tar.gz ifconfig ppp0 ifconfig eth0 2. Repita a questão anterior, redirecionando também a saída padrão para /tmp/saida.log (Não sobrescreva os arquivos) 3. Execute os comandos abaixo e retorne as seguintes mensagens (Execute o com ando com um usuário normal): Comando Mensagem Mensagem em caso de NOK OK cat /etc/passwd Listagem OK Falha na listagem cat /etc/audit Listagem OK Falha na listagem
  • 20. Fundamentos de Programação Aplicada a Redes ­  Shell Script Linux Shell Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br