Baixe o app para aproveitar ainda mais
Prévia do material em texto
Especialização em Redes de Computadores e Segurança Comandos básicos “Meu Deus do Shell! Porque eu não optei pelo Linux antes?”1 [1] NEVES, Júlio César Introdução Fundamentos de Shell Comandos básicos Conteúdo programático – Módulo LPIConteúdo programático – Módulo LPI O que é Shell Script?O que é Shell Script? Shell é uma interface textual que interpreta os comandos existentes em um sistema operacional e os envia ao kernel imprimindo posteriormente o resultado do processamento na tela. “Embora seja verdade que haja ferramentas GUI disponíveis para gerenciar praticamente tudo em um sistema GNU/Linux, você precisa ter conhecimento sólido sobre utilitários de linha de comando para se preparar melhor para se trabalhar com qualquer distribuição Linux.” (PRITCHARD; PESSANHA; STANGER; DEAN; LANGFELDT, 2007,P. 53) O que é Shell Script?O que é Shell Script? O SHELL original para sistemas UNIX foi escrito por Steve Bourne e se chamava simplesmente sh. O SHELL padrão de sistemas Linux é o BASH (BOURNE- AGAIN SHELL), que é uma variante GNU de sh. O que é Shell Script?O que é Shell Script? Shell, é um interpretador de comandos que analisa o texto digitado na linha de comando e os executam. Na linha de comandos de um shell, podemos utilizar diversos comandos um após o outro, ou mesmo combiná-los numa mesma linha ( ; && | tee \ ). Se colocarmos diversas linhas de comandos em um arquivo texto simples, teremos em mãos um Shell Script, ou um script em shell. Existe mais de um Shell?Existe mais de um Shell? Exemplos de Shell: ● csh: É a shell mais utilizada em sistemas como *BSD ou Xenix. A sua estrutura de comandos é similar á Linguagem C. ● sh: Ou Bourne Shell é a shell pré-defenida com o Unix (1977). Desde a versão 7 substituindo a tcsh, esta costuma a ser a shell pré-defenida para o root. ● bash: (Bourne-Again SHell) Muito similar a sh, esta é a shell mais utilizada por conter características como: Auto-Complete, podemos personalizar todo o output de uma forma simples,entre outras.... ● tcsh: Compatível e semelhante a csh. ● ksh: Considerada a mais popular no sistema Unix, tendo todas as funções do sh. Korn Shell foi a primeira a introduzir recursos avançados. ● zsh: Z Shell tem como grande vantagem um enorme interpretador de comandos E os interpretadores de comandos?E os interpretadores de comandos? Interpretadores de comandos são programas de computador responsáveis por tomar as ações efetivas conforme a orientação do usuário através de comunicação textual. Exemplos de Interpretadores de comandos: ● csh ● sh ● bash ● tcsh ● ksh ● zsh ● python ● perl ● expect ● awk ● Basic ● Vbscript ● PHP Qual a diferença entre um compilador e um interpretador?Qual a diferença entre um compilador e um interpretador? Compilador: É um programa responsável por gerar, a partir de de um programa escrito em linguagem de alto nível, um programa em linguagem de máquina, não executável. As linguagens de alto nível não possuem nenhuma relação direta com a máquina, fcando esta preocupação para o compilador. Exemplos: C, C++, Delphi, Visual Basic, etc ... Interpretador: Interpretador é considerado um tradutor que não gera código objeto. A partir de um programa fonte, escrito em linguagem de alto nível, o interpretador, no momento da execução do programa, traduz cada instrução e a executa em seguida. Exemplo de linguagens interpretadas: bash, sh, basic, VBscript, PHP, etc... Linguagens “Híbridas”: Interpretada e compilada. Ex. Python, java. Onde encontro o Shell?Onde encontro o Shell? O Sistema Operacional é o código executor das chamadas de sistemas. Onde encontro o Shell?Onde encontro o Shell? Shell é fundamentalmente uma interface entre o Sistema Operacional e o seu usuário. Como funciona um Shell?Como funciona um Shell? Para inicarmos os estudos sobre Shell Script vamos utilizar o bash (/sbin/bash). O BASH permite a execução de seqüências de comandos direto no prompt do sistema ou escritas em arquivos de texto, conhecidos como shell scripts. O BASH é o shell desenvolvido para o projecto GNU, da Free Software Foundation, que se tornou padrão nas várias distribuições Linux. Pode ser usado também com outros sistemas operacionais, como o Unix. É compatível com o Bourne shell (sh), incorporando os melhores recursos do C shell (csh) e do Korn Shell (ksh). Como funciona um Shell?Como funciona um Shell? Pode-se pode customizar o ambiente do bash utilizando alguns arquivos/diretórios como: ● /etc/profle ● /etc/skel ● .bash_profle ● .bash_rc Importante: Nos sistemas GNU/Linux nomes de arquivos são case-sensitive, ou seja, distinguem maiúsculas de minúsculas e vice-versa. TESTE != Teste != teste Como funciona um Shell?Como funciona um Shell? O ambiente de uma sessão SHELL tem seu comportamento alterado de acordo com o conteúdo de algumas variáveis de ambiente, por exemplo: BASH HOSTNAME USER USERNAME PATH PS1 PS2 DISPLAY SHELL HISTFILE HISTFILESIZE Como funciona um Shell?Como funciona um Shell? Designadores de expansão de histórico !! - chama o último comando utilizado History - mostra o histórico de comandos !n - refere-se ao número n do histórico !-n - comando atual -n do histórico !string - refere-se ao último comando que começa com a string (expressão) !?string - refere-se ao último comando que contenha a string (expressão) ^string1^string2 - repete o último comando substituindo a ocorrência string1 por string2 Como funciona um Shell?Como funciona um Shell? Um comando para ser interpretado é dividido em partes distintas: parana@acer:~$ ps -aux | grep bash 1ª parte) comando, o shell identifca se o arquivo existe no PATH e se o usuário possui privilégios sufcientes para executá-lo; 2ª parte) identifca por espaços quais são os parâmetros/argumentos. Esses alteram de alguma forma o comportamento durante a execução e/ou saída do comando; 3ª parte) saída (direcionamento/pipe) que permite ao usuário receber o retorno da execução, seja saída padrão ou alguma mensagem de erro/advertência; Como funciona um Shell?Como funciona um Shell? Onde encontrar um terminal num sistema GNU/Linux? ● Os consoles são levantados pelo init na inicialização do sistema: /etc/inittab ● Controlados pelo getty (/sbin/getty) que abre um novo processo para controlar uma porta ttyX (/dev/ttyX) ● Por padrão são defnifos 6 consoles virtuais: /dev/tty1 CRTL+ALT+1 /dev/tty2 CRTL+ALT+2 /dev/tty3 CRTL+ALT+3 /dev/tty4 CRTL+ALT+4 /dev/tty5 CRTL+ALT+5 /dev/tty6 CRTL+ALT+6 ● Como em todo sistema GNU/Linux é necessário que se realize a autenticação antes de iniciar o uso. Como funciona um Shell?Como funciona um Shell? Onde encontrar um terminal num sistema Gráfco? ● O xterm é um emulador de terminais leve e direto; ● Comando para instalação no Debian: apt-get install xterm ● A variável de ambiente $TERM por padrão defne xterm como terminal a ser utilizado por diversos sistemas. Como funciona um Shell?Como funciona um Shell? gnome-terminal ● O gnome-terminal é o terminal padrão do Gnome (ambiente de trabalho gerenciado pelo servidor Xorg); ● Onde encontro? Menu: Aplicações – Acessórios – Terminal ● A variável de ambiente $COLORTERM defne o gnome-terminal como o terminal padrão. Como funciona um Shell?Como funciona um Shell? konsole ● O konsole é o terminal padrão do KDE (ambiente gráfco gerenciadopelo servidor Xorg); ● Onde encontro? KDE-Menu: Sistemas – Konsole ● O Konsole permite múltiplas sessões em abas, histórico, impressão e favoritos. Comandos BásicosComandos Básicos $ <comando> --help $ free $ continua . . . $ man <comando> $ locate $ ls $ fnd $ cat $ uptime $ cd $ alias $ mkdir $ touch $ rm $ sort $ rmdir $ uniq $ date $ ln $ su $ uname $ du $ wc $ df $ tar Comandos BásicosComandos Básicos $ <comando> --help Mostra os principais paramêtros e forma de uso $ man <comando> Manual on-line do comando -t <manpage> | ps2pdf14 - <arquivo>.pdf $ ls Lista o conteúdo de um diretório -l -la -lh -lha -R $ cat Lista o conteúdo de um arquivo de texto -n -b -T $ cd Alterna entre um diretório e outro Comandos BásicosComandos Básicos $ mkdir Cria um novo diretório -p -v -m=600 $ rm Deleta arquivos e diretórios -r -f -rf -i -v $ rmdir Deleta diretórios vazios $ date Mostra e altera a data/hora do sistema +FORMATO %H %M %d %m %Y . . . $ date mesdiahoraminuto[segundo][ano] Comandos BásicosComandos Básicos $ su Alterna entre um usuário e outro no sistema - -c <comando> -s SHELL $ du Mostra o uso do disco por um arquivo ou diretório -s -h -sh $ df Mostra o status sobre partições em uso, ou da partição onde um determinado arquivo está armazenado. -h -a [arquivo] Comandos BásicosComandos Básicos $ free Mostra uso de memória RAM (/proc/meminfo) -b -k -m -g $ locate <string> localiza um arquivo ou diretório (updatedb) Base: /var/cache/locate/locatedb $ fnd localiza um arquivo ou diretório -name -iname -a -o -size -type -perm -cmin -ctime -mtime -regex -gid -group -printf -exec <comando> {} \; Comandos BásicosComandos Básicos $ uptime tempo desde que a maquina iniciou $ alias mostra e cria um “atalho” para um comando/parametros $ touch altera data criação/alteração de um arquivo -c -t -a -m $ sort exibe de forma a ordenar o conteúdo de um arquivo -u -n -r Comandos BásicosComandos Básicos $ uniq oculta linhas repetidas $ ln cria links simbólicos e hard links -s $ uname exibe informações sobre o sistema, como a versão do Kernel -r -a $ wc realiza a contagem de linhas, palavras e caracteres -l -c -m -w $ tar empacota arquivos/diretórios em um único arquivo -cvzf -zvxf -cvjf -zvjf -rf -tf Comandos BásicosComandos Básicos Exercícios de Fixação 1) De que forma você poderia descobrir em que diretório você está? 2) Qual a diferença entre ( cd / cd .. cd)? 3) Diferencie caminho absoluto e caminho relativo. 4) Qual a seqüência de comando para criar um subdiretório (teste) em /home? 5) Como criar 5 diretórios hierárquicos de uma única vez (Ex. /home/teste/aula/gerds/pos/aula1)? 6) Crie um hard link para arquivo /etc/profle em /tmp/profle. 7) Crie um soft link para o arquivo /etc/resolv.conf em /tmp/dns. 8) Qual a diferença encontrada entre soft link e hard link? RedirecionamentoRedirecionamento Operador Ação < Redireciona a entrada padrão (STDIN) > Redireciona a saída padrão (STDOUT ) 2> Redireciona a saída de erro (STDERR) >> Redireciona a saída padrão, anexando 2>> Redireciona a saída de erro, anexando | Conecta a saída padrão com a entrada padrão de outro comando 2>&1 Conecta a saída de erro na saída padrão >&2 Conecta a saída padrão na saída de erro >&- Fecha a saída padrão 2>&- Fecha a saída de erro Comandos BásicosComandos Básicos Exercício de Fixação 1) Crie um diretório “shell”, dentro dele um novo arquivo “fle” e altere a sua data de criação/alteração para 01/01/2010 15:00. 2) Altere a data do sistema para 22/09/1978 ás 10 horas. 3) Crie um alias chamado “kernel” que mostre a versão do Kernel. 4) Informe quantos usuários e grupos estão cadastrados, inclusive usuários e grupos de sistema. 5) Liste todos os usuários do sistema, e suas propriedades, por ordem alfabética de login. 6) Ordene a saída do comando abaixo: $ echo -e "10 \n 4 \n 8 \n 6 \n 0 \n 2" Comandos BásicosComandos Básicos Exercício de Fixação 7) Mostre o status de uso das partições dos arquivos /etc/debian_version e /proc/meninfo, explique porque são diferentes se os dois arquivos pertencem a mesma árvore de diretórios? 8) Atualize a base de dados do comando locate em background, depois localize o arquivo “70-persistent-net.rules”. 9) Liste todos os sub-diretórios do diretório /home dentro do arquivo /tmp/HomeDirs.txt 10) Com um único comando liste todos os arquivos do sistema, não listar diretórios, que iniciem com a letra a (A ou a), tenham a extensão .txt, e mostre também o tamanho de cada um deles. Não mostre saídas de erro. Comandos BásicosComandos Básicos Exercício de Fixação 11) Execute um único comando que crie cópias backup de todos os arquivos de extensão ".txt" do sistema em um arquivo /tmp/backuptxt.tar; 12) Crie os alias de comando conforme exemplo abaixo: $ data Data do sistema (dd/mm/yyyy): 19/07/2010 $ hora Hora do sistema: 22:15 13) Altere a data de modifcação do arquivo /etc/passwd para: Sex Jul 9 10:26:16 BRT 2010 Atribuição-Compartilhamento pela mesma licença 2.5 (http://creativecommons.org/licenses/by-sa/2.5/deed.pt) Você pode: ● copiar, distribuir, exibir e executar a obra ● criar obras derivadas ● fazer uso comercial da obra Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. ● Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. ● Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. Este é um sumário para leigos da Licença Jurídica (na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode). Termo de exoneração de responsabilidade: http://creativecommons.org/licenses/disclaimer-popup?lang=pt Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32
Compartilhar