• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Linux shell
 

Linux shell

on

  • 2,588 views

Aula sobre Linux Shell

Aula sobre Linux Shell

Statistics

Views

Total Views
2,588
Views on SlideShare
2,411
Embed Views
177

Actions

Likes
0
Downloads
111
Comments
0

2 Embeds 177

http://www.madeira.eng.br 164
http://madeira.eng.br 13

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Linux shell Linux shell Presentation Transcript

    • Fundamentos de Programação Aplicada a Redes ­ Shell ScriptLinux Shell Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br
    • ShellShell“É qualquer interface de usuário para o SO Unix. que recebado usuário um input e a converta em instrução para que o SOentenda.”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, oresultado será o mesmo”
    • ShellExemplos de ShellBourne(sh), C shell (csh), Korn (ksh) - comercial, bash (free) Fonte: Linux Magazine, vol 01. Por Julio Cezar NevesQual 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 myfileOnde: -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 echoEx:Errado:[root@madeira ~]# $VAR=abash: =a: command not found...Certo:[root@madeira ~]# VAR=ab
    • VariáveisArmazenam 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áticaAspas “ ”Ex.: echo “Sou o usuario $USER”Apóstrofos Ex.: echo Sou o usuario $USEREx.: echo Linha com espaços :Barra invertida Ex.: echo Craseex.: echo “Este host chama-se `uname -n`”Parêtesesex.: 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- MetacaracteresCaracteres com significado especialEx: &, >, <, |- Caracteres Coringas (wildcards)Caracteres especiais usados junto com os argumentosEx: *, ?, [abc], [a-c],[!0-9]
    • Conceitos- Entrada Padrão (stdin)Entrada padrão de comandos para o shellEx: teclado, pipe- Saída Padrão (stdout)Saída padrão do do comandoEx: tela, arquivo- Saída de Erro (stderr)Saída padrão para erros de execução do comandoEx: 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 dosegundo comando.Ex:$ cat /etc/passwd | grep root > /tmp/root$ ping -c 1 www.madeira.eng.br > /dev/nullOBS: /dev/null , representa lugar nenhum
    • Redirecionamento Saída Padrão/Errostderr (2): Saída de Erro.Para redirecionar a saída de erro, usamos: 2>stdout(1): Saída do comandoPara redirecionar a saída do comando, usamos: 1>Para redirecionar ambas usamos: &>Ex:Saída do comando[fred@localhost Linux]$ ping www.madeira.eng.brPING 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 msSaída de erro[fred@localhost Linux]$ ping www.madeira.eng.br1ping: unknown host www.madeira.eng.br1
    • Redirecionamento Saída Padrão/ErroComando ok, redir saída de erro[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br 2> /dev/nullPING 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 msComando errado, redir saída de erro[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 2> /dev/nullComando ok, redir saída do comando[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br 1> /dev/nullComando errado, redir saída do comando[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br1 1> /dev/nullping: unknown host www.madeira.eng.br1Comando ok, redir saída do comando e saída de erro[fred@localhost Linux]$ ping -c 1 www.madeira.eng.br &> /dev/nullComando 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 anteriortiver 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/ErroPrática1. Redirecione a saída de erro dos comandos abaixo para o arquivo /tmp/error.logtar xvfz teste.tar.gzifconfig ppp0ifconfig eth02. Repita a questão anterior, redirecionando também a saída padrão para /tmp/saida.log (Nãosobrescreva os arquivos)3. Execute os comandos abaixo e retorne as seguintes mensagens (Execute o com ando com umusuário normal): Comando Mensagem Mensagem em caso de NOK OKcat /etc/passwd Listagem OK Falha na listagemcat /etc/audit Listagem OK Falha na listagem
    • Fundamentos de Programação Aplicada a Redes ­ Shell ScriptLinux Shell Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br