Minicurso Linux

409 visualizações

Publicada em

Minicurso Linux - Uma abordagem dirigida por resolução de problemas. Apresentado na Semana Acadêmica de Engenharia e Tecnologia (SAET) da UTFPR câmpus Toledo. Conteúdos: Introdução e Conceitos; Shell Scripting.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
409
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso Linux

  1. 1. 1 Minicurso – INTRODUÇÃO AO LINUX Uma abordagem dirigida por resolução de problemas Alexandre Augusto Giron
  2. 2. 2 Objetivos deste Minicurso ● Aprender os conceitos básicos relacionados ao Linux ● Aprender como utilizar o sistema – Abordagem Problema → solução ● Obs: a instalação não será abordada neste minicurso.
  3. 3. 3 Roteiro ● Introdução ao Linux e às suas distribuições – Histórico e Características – Ambiente Gráfico – Instalação de Pacotes e Utilitários ● Shell Scripting – Introdução – Administração do Sistema – Configuração de Rede
  4. 4. 4 Material Base & Referências ● Apostilas de Linux – http://paginapessoal.utfpr.edu.br/alexandregiron/paginapesso al/fundamentos-de-sistemas-operacionais-2015-2-tsi ● Livros – Artigo: “20 Melhores Livros” https://edersg.wordpress.com/2014/06/18/os-20-melhores-ebook s-gratuitos-sobre-o-gnu-linux/ ● Lista de Comandos (A a Z): – http://paginapessoal.utfpr.edu.br/alexandregiron/paginapesso al/fundamentos-de-sistemas-operacionais-2015-2-tsi/commandos _terminal.txt/view
  5. 5. 5 Introdução
  6. 6. 6 Linux – O básico ● O que é? – Termo usado em contextos diferentes: ● Sistema Operacional (SO) ● Kernel: núcleo de um SO. ● A rigor, o Linux é um Kernel – Compatível com sistema Unix – Criado por Linus Torvalds em 1991
  7. 7. 7 Linux – O básico ● História – 1984: Richard Stallman iniciou o projeto GNU (GNU is Not Unix) ● Fomentar o uso de Software Livre – 1985: Free Software Foundation – 1991: GNU/Linux ● Kernel Linux + Softwares e Utilitários
  8. 8. 8 Distribuições ● Cada distribuição tem característica própria – Pacotes de software: Editores, planilhas, bancos de dados, navegadores, etc. ● Exemplos – Ubuntu – Xubuntu – Debian – Slackware – RedHat – Fedora – Linux Mint – Entre outros!
  9. 9. 9 Distribuições - “flavors”
  10. 10. 10 Distribuições: Qual escolher? ● Escolha depende do objetivo da distribuição ● Alguns exemplos: – Ubuntu: ● Interação com o usuário: mais recomendada para usuários que não conhecem Linux ● Ambiente Unity ● Ubuntu GNOME: ambiente GNOME para Ubuntu – Xubuntu ● Ambiente Xfce – RedHat ● Foco no ambiente corporativo: versões para desktop e para servidores de aplicações – Fedora, Kubuntu ● Interação com usuário ● Ambiente KDE
  11. 11. 11 Ambiente Gráfico ● Ambiente GNOME
  12. 12. 12 Ambiente Gráfico ● Ambiente GNOME ● Tecnologias utilizadas: – GNOME Shell: Interpretador de comandos – GTK+ ● Estilos CSS ● OpenGL ● Suporte Multitouch & acessibilidade (ATK) – X11 ● X window system – GIO ● Sistema de arquivos e E/S
  13. 13. 13 Ambiente Gráfico ● Ambiente KDE
  14. 14. 14 Ambiente Gráfico ● Ambiente KDE ● Tecnologias utilizadas – Arch Linux – Plasma Desktop: área de trabalho – Qt: desenvolvimento de softwares para o KDE ● KDE Applications – KHTML ● Engine HTML desenvolvido para o KDE – Phonon ● API para aplicações multimídia
  15. 15. 15 Estrutura do SO ● Sistema Operacional como intermediário entre Hardware-Software Shell Hardware Kernel Firmware Aplicativos de Usuário
  16. 16. 16 Aplicativos de Usuário
  17. 17. 17 Aplicativos de Usuário – migrando Descrição Programas usados no Windows Programas usados no GNU/Linux Pacote Office Microsoft Office (Word, Excel, Powerpoint) Koffice, LibreOffice (Writer, Calc, Impress) Música & Vídeo Windows Media Player Mplayer, VLC, Rhythm Box, Amarok Edição de Vídeo Windows Movie Maker Avidemux, Cinelerra, Lives, OpenShot, Pitivi Navegador Web Internet Explorer, Google Chrome, Firefox Google Chrome, Firefox, Iceweasel, Konqueror Gravação de Mídia Nero Brasero, K3b Leitor de PDF Adobe PDF Reader Adobe PDF Reader, Evince, Kpdf Compactação Winrar, Winzip Tar, bzip2 Torrent uTorrent uTorrent, qBitTorrent, Transmission, KTorrent
  18. 18. 18 Diretórios: organização dos arquivos ● Divisão de diretórios do Linux (principais diretórios): / → diretório raiz /bin → comandos do sistema /boot → inicialização do sistema /dev → dispositivos do sistema /etc → arquivos de configurações /home → diretório dos usuários /media → diretório para as mídias removíveis (CD, Pen-drives) /root → diretório do usuário administrador /usr → programas de usuário
  19. 19. 19 Hands-On! ● Aplicativos do Xubuntu – Gedit: editor de textos – Firefox: navegador Web ● Acesse as apostilas de Linux: http://paginapessoal.utfpr.edu.br/alexandregiron/pagina pessoal/fundamentos-de-sistemas-operacionais-2015-2-tsi ● Faça o download ● Abra o(s) PDF(s): eles serão úteis! – Gerenciador de Pacotes
  20. 20. 20 Instalação de Pacotes e Utilitários ● Gerenciador de Pacotes – Forma simples de instalar programas – Para instalar é necessário permissão de administrador do sistema – Menu → Sistema → Gerenciador de Pacotes Synaptic ● Alternativa: comando apt-get – Executado por meio do Interpretador de comandos (Shell)
  21. 21. 21 Interpretador de Comandos: Shell ● Shell: programa que interpreta comandos de usuário ao sistema – Comandos internos (built-in) ou Programas externos ● Shell Script – Arquivo composto por um conjunto de comandos ● Tipos: – sh: originário do UNIX – bash (Bourne Again Shell): mais utilizado no GNU/Linux – csh (C shell): sintaxe de comandos similar à da linguagem C
  22. 22. 22 Shell Scripting
  23. 23. 23 Quando usar Shell Scripting ● Automatização de tarefas simples – Criação/cópia/movimentação de arquivos ou diretórios – Processamento de dados – Execução de programas em sequência ● Configurações do sistema – Tarefas administrativas ● Configuração e Instalação de aplicações
  24. 24. 24 Shell Scripting: Passos 1. Escolher um tipo (sh, bash) 2. Utilizar um editor de texto para especificar os comandos – Gedit – Leafpad – Vim, nano 3. Executar o script
  25. 25. 25 Quais comandos posso utilizar? ● Hands-On! Ambientação. Principais comandos: – ls – cd – pwd – man – clear – mkdir – touch – rm – cp – mv – echo – date – cat – find – history – shutdown -now **Mais detalhes: consulte a apostila!
  26. 26. 26 O primeiro script #!/bin/bash # declarar STRING e o dir. atual STRING="Meu Primeiro Script Shell Linux" Meudir=$(pwd) #mostrar o conteúdo em tela echo $STRING # parâmetro informado ao script: echo “Autor do script:” $1 $2 $3 echo “Fim da execução!” exit ● Salve o script como script.sh chmod +x script.sh ● Execução: ./script.sh Nome do Participante
  27. 27. 27 Sintaxe básica ● Cada linha corresponde a um (ou mais) comandos a executar – Linhas precedidas por # são comentários ● Variáveis: – Não há necessidade de declaração de tipos – Padrão: string – Acesso por meio do operador $ #Declaração NOMEVAR=Conteudo #Acesso OUTRAVAR=$NOMEVAR
  28. 28. 28 Abordagem deste Minicurso ● Prática: Dirigida por Resolução de Problemas – Não substitui a leitura de apostilas/livros! ● Lista de Problemas (Rede): 1. Configurações de rede 2. Download de arquivos da Internet ● Lista de Problemas (Admin.): 1. Informações do sistema Linux 2. Usuários logados no sistema 3. Processos em execução 4. Backup 5. Compartilhando Arquivos no SO 6. Permissões 7. Procurar de arquivos 8. Redirecionamento de saída e Pipeline 9. Ler a partir de arquivos CSV
  29. 29. 29 Problema 1: Informações do sistema Linux ● Como descobrir informações do sistema? ● Comando: uname <opções> ● Opções – -a : todas as informações – -m : tipo de máquina – -p : tipo do processador – -r : versão do sistema – --help : lista as opções disponíveis
  30. 30. 30 Problema 1: script #!/bin/bash # exibir informações do sistema uname -a # exibir info. do tipo de máquina uname -r #exibir versão uname -v exit
  31. 31. 31 Problema 2: Usuários logados ● Descobrir usuários logados no sistema ● Comando: who <opções> ● Opções – -a: mostra todos usuários – -q: todos os nomes de login – --help: lista todas as opções
  32. 32. 32 Problema 2: script #!/bin/bash # exibir usuários do sistema who # exibir nomes de login who -q exit 0 #valor de retorno do script
  33. 33. 33 Problema 3: Gerenciando processos ● Processos em execução no sistema – Processo é um programa em execução ● Comandos: ps <opções> top <opções> jobs <opções ● Finalizar processos kill <opções>
  34. 34. 34 Problema 3: estruturas condicionais ● Uso de estruturas condicionais no script if [ <condicao> ] then <comandos> fi ● Parâmetros de execução do script $1, $2, $3 ... ./script par1 par2 par3
  35. 35. 35 Problema 3: script #!/bin/bash # verificar parâmetro if [ “$1” == “ps” ] then ps -ef fi if [ “$1” == “top” ] then top fi exit 0 #valor de retorno do script
  36. 36. 36 Problema 3: finalizando processos ● Script para finalizar processo – Precisamos identificar o PID (Identificação de processo) ou o nome – Realizar o comando kill kill PID kill -9 PID ● Alternativa: – Encerrar por nome killall -e firefox
  37. 37. 37 Problema 3: script para encerrar (por nome) processo #!/bin/bash # Testa se o parâmetro # está presente if [ -n “$1” ] then parametro=$1 killall -e $parametro fi exit
  38. 38. 38 Problema 3: Hands-On ● Modifique os scripts: – Para identificar os processos que executam em segundo plano ● Comando: jobs – Para encerrar um processo pelo seu PID ● Comando: kill <PID>
  39. 39. 39 Problema 4: Backup ● Realizar backup de arquivos e diretórios ● Alguns requisitos: – Espaço ocupado: ● Compactação dos arquivos ● Cópia integral ● Algumas formas (cópia): – dump <opções> – dd <opções> – cp <opções>
  40. 40. 40 Problema 4: Backup ● Compactação de Arquivos: – tar <opções> – zip <opções> ● Outras abordagens – Programas específicos para backup – Compactação usando a interface gráfica ● Botão direito → Comprimir …
  41. 41. 41 Problema 4: Backup ● Script para: – Compactar os arquivos utilizados neste minicurso até agora ● Utilize um nome que descreva informações do backup (data, horário, conteúdo) – Copiar para um armazenamento (ou outro diretório) ● Localização dos dispositivos: /media/
  42. 42. 42 Problema 4: script #!/bin/bash # compactar diretório com tar # Par. 1 é o diretório (.) # Par. 2 é o arquivo final (arq.zip) tar -cvf $2 $1 #criar diretório de backup mkdir BACKUP # copiar para o armazenamento cp $2 “BACKUP/$2” exit
  43. 43. 43 Problema 5: Compartilhamento de Arquivos no SO ● Linux fornece métodos para compartilhar arquivos no SO – Criação de atalhos – Compartilhar arquivos para diferentes usuários ● Dois métodos: – Soft Links: link simbólico – Hard Links: referência ao arquivo ● Requisito: – Conhecer o caminho do arquivo
  44. 44. 44 Problema 5: Compartilhamento de Arquivos no SO ● Todo arquivo no Linux tem um caminho: ● Caminho Absoluto – Desde o diretório raiz até o diretório do arquivo – Começam (normalmente) com a / /home/aluno/Documentos/Arquivo.txt ● Caminho relativo – Refere-se ao diretório “corrente” (atual) Arquivo.txt Documentos/Arquivo.txt ● Um link é criado por meio do caminho do arquivo
  45. 45. 45 Problema 5: Compartilhamento de Arquivos no SO ● Soft Links – Comando: ln -S caminhoArquivo nomeLink ● Hard Links – Comando: ln caminhoArquivo nomeLink ● Criar um script para – Dado o caminho (absoluto ou relativo) do arquivo – Criar um soft link e um hard link para o arquivo
  46. 46. 46 Problema 5: script ● Faça modificações no arquivo – Compare o resultado nos links criados #!/bin/bash # Criação do SoftLink # Par. 1 é o caminho do arquivo # Par. 2 é o nome do Soft link ln -s $1 $2 # Par. 3 é o nome do Hard Link ln $1 $3 # exibir o resultado ls -la exit
  47. 47. 47 Problema 6: Permissões ● Usuários comuns Usuário Administrador ● Permissões: – ACL: Access Control List ● Verificar permissões no Linux: – Comando chmod chmod <valorOctal> nomeArquivo
  48. 48. 48 Problema 6: Permissões ● Tabela de referência
  49. 49. 49 Problema 6: Permissões ● Exemplo: Owner – Group – Universe ● Fazer script para atribuir permissões de escrita, gravação e execução recursivamente em um diretório
  50. 50. 50 Problema 6: script #!/bin/bash # Exibir as permissões do diretório ls -la $1 # Atribuir permissão recursivamente # no diretório chmod -R +x $1 # exibir o resultado ls -la $1 exit
  51. 51. 51 Problema 7: Procurar arquivos ● Sistemas com milhares de arquivos – Realizar busca manualmente é inviável ● Script realizar busca por arquivos – Comando: find find / -name NomeArquivo ● “/” é o caminho do diretório de início da busca ● -name: busca pelo nome do arquivo – Comando: grep
  52. 52. 52 Problema 7: script #!/bin/bash # busca a partir do diretório atual echo “Buscando a partir do dir. atual” find . -name “$1” echo “Buscando a partir do dir. raiz” find / -name “$1” exit
  53. 53. 53 Problema 7: Procurar dentro dos arquivos ● Unir comando grep com o find ● Comando grep: grep <opções> ' texto a procurar ' nomeArquivo – Exemplos: grep -l '/bin/bash' BACKUP/script.sh grep -r '/bin/bash' BACKUP/* ● União com o find find . -name “*.sh” -exec grep 'Texto a procurar' {} ;
  54. 54. 54 Problema 7: script (find + grep) #!/bin/bash # busca todos os scripts a partir do # diretório atual cujo conteúdo tenha # o texto 'ls' find . -name “*.sh” -exec grep -l 'ls' {} ; exit
  55. 55. 55 Problema 8: Redirecionamento de saída e Pipeline ● Pipeline em shell script – Agrupamento de comandos – Exemplo: ls | grep sh ● Redirecionamento de saída – Saída de um comando armazenada em um arquivo – Exemplo: ls -la > arquivoLs.txt
  56. 56. 56 Problema 8: Redirecionamento de saída e Pipeline ● Aplicável em vários contextos diferentes ● Script para realizar um cálculo usando a calculadora do Linux: – Comando: bc ● Redirecionando para o bc – Exemplo: “60+30” | bc
  57. 57. 57 Problema 8: script #!/bin/bash # Calcular a soma entre dois números echo “Digite o primeiro n° e tecle enter” read a echo “Digite o segundo n°” read b echo “$a + $b” | bc exit
  58. 58. 58 Problema 8 ● Hands On! – Faça um script para realizar as 4 operações básicas (soma, subtração, multiplicação e divisão) – Modifique o script para que o resultado de cada operação seja armazenado em um arquivo “resultado.txt”
  59. 59. 59 Problema 9: entrada de arquivos ● Arquivo CSV (Comma-separated values) – Baixe o arquivo CSV (Salário) da página ● Script shell pode ler o conteúdo – “Comando” awk – AWK é uma linguagem (Aho, Weinberger and Kernighan) – Exemplos: awk -F ',' ' {print $0 }' Salario.csv awk -F: '{ print $1 }' /etc/passwd | sort
  60. 60. 60 Problema 9: ler arquivos CSV ● Script para ler apenas a primeira coluna do arquivo “Salario.csv” – Delimitador: vírgula (“,”) – Salve em um novo arquivo “Coluna1Nome.txt”
  61. 61. 61 Problema 9: script #!/bin/bash # Exibir a primeira coluna do arquivo CSV echo “Primeira coluna:” awk -F ',' ' {print $1} ' Salario.csv > Coluna1Nome.txt exit
  62. 62. 62 Problema 9: outra solução: linha por linha #!/bin/bash # estrutura de repetição: input="Salario.csv" while read line do echo "Linha : $line" done < $input
  63. 63. 63 Problema 10: configuração de rede ● Quais as atuais configurações de rede do sistema? – Comando ifconfig : exibir as configurações – Comando ping : enviar um pacote ICMP para um determinado host – Comando nslookup : informações de domínio ● Script para – Exibir as configurações de rede, testar a conexão de internet, exibir informações de domínio
  64. 64. 64 Problema 10: script #!/bin/bash # Configurações ativas e inativas ifconfig -a # Testar conexão (três tentativas) ping www.g1.globo.com -c 3 # exibir informações de domínio nslookup microsoft.com exit
  65. 65. 65 Problema 11: Download da internet ● Script para realizar um download? N downloads? – Comando wget (Web Get): download de arquivos wget –O nomeArquivo endereçoWeb – FTP (File Transfer Protocol): download via FTP ● Script para realizar downloads
  66. 66. 66 Problema 11: Download da internet ● Proxy – Computador que atua entre a rede local e a rede externa (Internet) ● O endereço do proxy deve ser configurado para utilização export http_proxy=“dominio:numPorta” export http_proxy=“usuário:senha@ dominioOuIP:numPorta”
  67. 67. 67 Problema 11: script #!/bin/bash # Download via wget wget -O apostila_so.pdf “http://paginapessoal.utfpr.edu.br/alexandregiro n/paginapessoal/fundamentos-de-sistemas- operacionais-2015-2- tsi/apostila_de_sistemas_operacionais.pdf/at_dow nload/file” exit
  68. 68. 68 Problema 12 ● Hands On! – Faça um arquivo txt contendo as URLs das apostilas de linux na página pessoal – Utilize o wget para ler as URLs desse arquivo para realizar o download das apostilas wget -i Arquivo.txt – Compacte os arquivos usando o comando tar
  69. 69. 69 Muitos problemas? ● Aprendizado de Linux e Shell script requer leitura – Manuais dos comandos – Exemplos de utilização ● Mais importante: – Experimentação! – Testes – Prática
  70. 70. 70 Dúvidas? ● Links interessantes: – http://www.southampton.ac.uk/~feeg6002/le cturenotes/feeg6002_applied_programming07 .pdf – http://www.theunixschool.com/2012/05/shell-re ad-text-or-csv-file-and-extract.html

×