Aula 1. 23/02/2015. Práticas de Desenvolvimento de Software Aula 1 Unix, Linux e a linha de comando Oferecimento
Ambiente de desenvolvimento Computador (hardware) Sistema operacional Idealmente: iguais para toda a equipe Ferramentas
Virtualização (1) Virtualização Máquinas virtuais (VMs) Guest OS Guest OS Guest OS Aplicação de virtualização Sistema operacional hospedeiro (Host OS) Hardware Memória Tamanho do disco virtual Pastas compartilhadas Acesso à Internet Hardware" configurável
Virtualização (2) Virtualização Por quê? Maior aproveitamento de hardware Segurança e isolamento Padronização Uso como ambiente de teste Portabilidade
Virtualização (3) DEMO OK, MAS E NA PRÁTICA?
Sistema operacional Computador (hardware) Sistema operacional Idealmente: iguais para toda a equipe Ferramentas
Ubuntu, Linux e Unix (1) Ubuntu 14.10 (Utopic Unicorn) Ubuntu 14.10 Ubuntu Debian Linux + GNU Unix é uma versão do que usa como base o que é uma distribuição do que é compatível com
Ubuntu, Linux e Unix (2) Muita história por trás Ubuntu 14.10 Ubuntu Debian LINUX LINUS TORVALDS Linux + GNU RICHARD STALLMAN GNU Unix FREE SOFTWARE KEN THOMPSON DENNIS RITCHIE OPEN SOURCE
Ubuntu, Linux e Unix (3) Ubuntu Um sistema operacional Unix-like
Unix > Conceitos básicos Conceitos básicos de Unix/Linux Arquivos e processos Sistema de arquivos Linha de comando (shell) Comandos Combinação de comandos Modelo de segurança e permissões
Unix > Conceitos básicos > Arquivos e processos Conceitos básicos de Unix/Linux Arquivos e processos Sistema de arquivos Linha de comando (shell) Comandos Combinação de comandos Modelo de segurança e permissões
Unix > Conceitos básicos > Arquivos e processos Os 6 tipos de arquivos 1. Regular (!= especial) 2. Diretório 3. Link 4. Named pipes 5. Sockets 6. Arquivos de dispositivos
Unix > Conceitos básicos > Arquivos e processos 1. Arquivos regulares Apresentações Documentos de texto Arquivos de código-fonte Planilhas de Excel Arquivos de áudio Para o SO, não importa o conteúdo. São as aplicações que atribuem sentido ao que está armazenado.
Unix > Conceitos básicos > Arquivos e processos 2. Diretórios CÁLCULO.TXT ANOTAÇÕES FÍSICA.TXT QUÍMICA.TXT
Unix > Conceitos básicos > Arquivos e processos 3. Link ATALHO PARA NOTAS.TXT NOTAS.TXT
Unix > Conceitos básicos > Arquivos e processos 4. Named Pipes 5. Sockets Usados para comunicação entre processos (Inter-process communication, ou IPC).
Unix > Conceitos básicos > Arquivos e processos 6. Arquivos de dispositivos Representam e permitem comunicação padronizada com dispositivos de hardware Exemplos: impressoras, discos rígidos, modems, portas seriais,
Unix > Conceitos básicos > Sistema de arquivos Sistema de arquivos Forma de representar, armazenar, organizar e recuperar os arquivos existentes em um dispositivo de armazenamento. ==? NOTAS.TXT notas.txt
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects /home/
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects /home/john/
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects /home/john/documents/
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects /home/john/documents/
Unix > Conceitos básicos > Sistema de arquivos Caminho absoluto / bin dev etc home tmp var john documents music pictures projects /home/john/documents/
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects documents/
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects documents/
Unix > Conceitos básicos > Sistema de arquivos Caminho relativo / bin dev etc home tmp var john documents music pictures projects documents/
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos Diretórios especiais / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos Diretórios. especiais / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos. Diretórios especiais.. / bin dev etc home tmp var john documents music pictures projects
Unix > Conceitos básicos > Sistema de arquivos. Diretórios especiais.. / bin dev etc home tmp var john documents music pictures projects../
Unix > Conceitos básicos > Sistema de arquivos. Diretórios especiais.. / bin dev etc home tmp var john documents music pictures projects../../
Unix > Conceitos básicos > Sistema de arquivos. Diretórios especiais.. / bin dev etc home tmp var john documents music pictures projects../../../
Unix > Conceitos básicos > Sistema de arquivos. Diretórios especiais.. / bin dev etc home tmp var john documents music pictures projects../../../ dev
Unix > Conceitos básicos > Sistema de arquivos. Diretórios especiais.. / bin dev etc home tmp var john documents music pictures projects../../../ dev (Caminho relativo)
Unix > Conceitos básicos > Linha de comando
Unix > Conceitos básicos > Linha de comando
Unix > Conceitos básicos > Linha de comando
Unix > Conceitos básicos > Linha de comando
Unix > Conceitos básicos > Linha de comando
Unix > Conceitos básicos > Linha de comando DEMO Sintaxe padrão comando [opções] [argumentos] # Listar arquivos do diretório atual. ls # Listar arquivos de outro diretório. ls ~/poli/2015/1quadrimestre/ # Listar arquivos normais e arquivos ocultos. ls -a ~/poli/ # O mesmo que o anterior + ordenar por tamanho. ls -as ~/poli/
Unix > Conceitos básicos > Comandos DEMO Alguns comandos básicos echo pwd, cd, ls touch, ln, mkdir, cp, mv, rm cat, more, tail, head, sort, wc find, grep man Cheat sheets: http://cb.vu/unixtoolbox.xhtml http://files.fosswire.com/2007/08/fwunixref.pdf
Unix > Conceitos básicos > Combinação de comandos Redirecionamento de I/O STDIN cat STDOUT STDERR Fluxo de informação de processos Normalmente: STDIN: teclado STDOUT: tela STDERR: tela
Unix > Conceitos básicos > Combinação de comandos Redirecionamento de I/O cat < input.txt cat > output.txt cat 2> error.log cat < input.txt > output.txt Manipulação de entrada e/ou saída
Unix > Conceitos básicos > Combinação de comandos Pipe: cat STDOUT STDOUT uniq wc -l Encadeamento de processos cat uniq wc -l
Unix > Conceitos básicos > Combinação de comandos Shell scripts Sequências de comandos escritos na linguagem do shell Podem ter estruturas de controle de fluxo Uso comum: automatização de tarefas #!/bin/bash echo "Hello, $USER!" echo "Your current working directory is `pwd`" echo "Enter a path: " read directory file_counter.sh
Unix > Conceitos básicos > Modelo de segurança Modelo de segurança Todo usuário (id) pertence a um grupo primário (gid) e pode pertencer a grupos secundários. G1 G3 G4 U1 G1 U2 G1 U1 U2 U4 U6 U3 G1, U3 G2 U4 G3 U5 G2 U3 U6 G4 G2 U5
Unix > Conceitos básicos > Modelo de segurança Modelo de segurança Todo arquivo ou processo pertence a um usuário (owner user) e a um grupo (owner group) G1 U2 é o owner user de A1 G2 é o owner group de A1 U1 U2 A1 G2 U3
Unix > Conceitos básicos > Modelo de segurança Modelo de segurança Permissões são concedidas a classes para atuar sobre processos e arquivos. Tipos de permissão: 1. Leitura (read) (r) 2. Escrita (write) (w) 3. Execução (execute) (x) Tipos de classes: 1. Owner (u) 2. Group members (g) 3. Other (o) 4. Todos (a)
Unix > Conceitos básicos > Modelo de segurança Modelo de segurança chmod: change file modes chown: change owner and/or group Comandos relacionados # Altera o owner do arquivo foo.txt chown john foo.txt # Altera o owner e o grupo do arquivo foo.txt chown john:developers foo.txt # Remove a permissão execução (x) de todos (a) para foo.sh
Unix > Conceitos básicos > Modelo de segurança Modelo de segurança Visualização das permissões de arquivos: ls -l drwxr-xr-x 6 root admin 204 Feb 9 12:54. drwxr-xr-x 33 root wheel 1190 Mar 1 13:57.. drwxrwxrwt 7 root wheel 238 Feb 9 12:54 Shared drwxr-xr-x+ 60 deborasetton staff 2040 Mar 4 18:21 deborasetton drwxr-xr-x+ 23 infosimples staff 782 Sep 3 2013 infosimples
Unix > Conceitos básicos > Modelo de segurança Modelo de segurança Visualização das permissões de arquivos: ls -l drwxr-xr-x 6 root admin 204 Feb 9 12:54. drwxr-xr-x 33 root wheel 1190 Mar 1 13:57.. drwxrwxrwt 7 root wheel 238 Feb 9 12:54 Shared drwxr-xr-x+ 60 deborasetton staff 2040 Mar 4 18:21 deborasetton drwxr-xr-x+ 23 infosimples staff 782 Sep 3 2013 infosimples Escopos: Permissions Owner user Owner group r w x r - x r - x user (u) group (g) other (o)
Ambiente de desenvolvimento > OK Computador (hardware) Sistema operacional Ferramentas To be continued (linguagem de programação, editor de texto, outros softwares, )