Unix - cloudfront.net

Propaganda
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
Ferramentas
Idealmente: iguais
para toda a equipe
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
DE
Virtualização (3)
M
O
OK, MAS E NA PRÁTICA?
Sistema operacional
Computador (hardware)
Sistema operacional
Ferramentas
Idealmente: iguais
para toda a equipe
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.
2.
3.
4.
5.
6.
Regular (!= especial)
Diretório
Link
Named pipes
Sockets
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
FÍSICA.TXT
ANOTAÇÕES
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
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
/home/
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
/home/john/
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
/home/john/documents/
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
music
file1.txt
/home/john/documents/file1.txt
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
Caminho absoluto
bin
dev
/
etc
…
home
tmp
var
john
file1.txt
documents
music
file1.txt
/home/john/documents/file1.txt
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
documents/
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
documents/file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
Caminho relativo
bin
dev
/
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
documents/file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
Diretórios especiais
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
.
Diretórios especiais
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
...
Diretórios especiais
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
file1.txt
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
...
Diretórios especiais
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
../
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
...
Diretórios especiais
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
../../
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
...
Diretórios especiais
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
../../ ../
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
...
Diretórios especiais
/
bin
dev
etc
…
tmp
var
john
file1.txt
documents
file1.txt
../../ ../ dev
home
music
pictures
projects
Unix > Conceitos básicos > Sistema de arquivos
...
Diretórios especiais
/
bin
dev
etc
…
home
tmp
var
john
file1.txt
documents
music
file1.txt
../../ ../ dev (Caminho relativo)
pictures
projects
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
# 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/
O
comando [opções] [argumentos]
M
Sintaxe padrão
DE
Unix > Conceitos básicos > Linha de comando
DE
Unix > Conceitos básicos > Comandos
M
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
O
Alguns comandos básicos
Unix > Conceitos básicos > Combinação de comandos
Redirecionamento de I/O
STDOUT
STDIN
cat
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
uniq
STDOUT
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.
G3
G1
U1 U2
U4
U3
G2
U5
G4
U6
• U1 ∈ G1
• U2 ∈ G1
• U3 ∈ G1, U3 ∈ G2
• U4 ∈ G3
• U5 ∈ G2
• U6 ∈ G4
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
U3
G2
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
rwxr-xr-x
user
(u)
group
(g)
other
(o)
Ambiente de desenvolvimento > OK
✓ Computador (hardware)
✓ Sistema operacional
Ferramentas
(linguagem de programação, editor de texto,
outros softwares, …)
To be continued…
Download