Table of Contents

Objetivo

Apresentar a filosofia do Software Livre e do desenvolvimento colaborativo. Instigar uma visão crítica sobre o tema, permitindo conhecer soluções para o uso acadêmico e nos desáfios profissionais. Desenvolver questões éticas relacionadas com a computação, uso das redes e uso das informações.


Aula 0

Leitura do Estudo Sobre Software Livre Bases de artigos online. Responder as seguintes questões:

  1. O que é código fonte na perpectiva do Software Livre?
  2. Quando o código fonte é suprimido de um programa, o que mais é perdido?
  3. Como foi que os programas de computadores deixaram de ser livres?
  4. O que é o Sistema Operacional GNU/Linux?
  5. Quais são as tres dimensões do Software Livre?
  6. Quais são as quatro liberdades que constituem o contrato de licenciamento em rede?
  7. Conceitue engenharia reversa.
  8. Como surgiu o UNIX?
  9. Como e o que motivou o surgimento da Free Software Foundation?
  10. Como e o que motivou o surgimento GNU?
  11. Como surgiu o GNU/Linux?
  12. O que é a GNU GPL e quais os pilares que definem se um software é livre?
  13. O que é o contrato viral?

Aula 1

Introdução ao GNU/Linux (iniciante). Responder as seguintes questões:

1. Conceito de Software Livre

  1. A Free Software Foundation
  2. O Projeto GNU
  3. Responda a pergunta: “Qual a finalidade de uma licença de Software LIvre?”

2. Licenças, descrever resumidamente as seguintes licenças:

  1. GPL
  2. BSD
  3. Debian
  4. Apache

2.2. Comparar GPL x BSD

3. Linux

  1. Histórico do Linux (cronologia) - até a versão 1.0
  2. O que é uma distribuição (“distro”)!
  3. As maiores (mais usadas) do Brasil!
  4. As maiores distribuições no mundo!

4. Como se dá a inclusão digital e a universalização do direito de acesso?

5. Defina Creative Commons! Cite exemplos!

6. Descreva as principais licenças Creative Commons!


Aula 2

Objetivo da aula: reflexão sobre o modelo de desenvolvimento A Catedral e o Bazar. Apresentação e Bases de artigos online.

  1. O que difere a Catedral e o Bazar quanto ao desenvolvimento de software?
  2. Qual foi a fonte de inspiração para a criação do Kernel Linux?
  3. Qual sua visão à afirmação “planeje jogar algo fora, você irá de qualquer maneira”?
  4. O que mantém uma comunidade de desenvolvedores ativa?

Aula 3


Aula 4


Aula 5


Aula 6

stdin
stdout
stderr
| (pipe)
1> ou >
2>
<
>>
2>>
| 
&
;
(
)
<
>
||
&&

Comandos básicos do shell:


Aula 7

Loop no shell

for i in 1 2 3 4 5 6 7 8 9 10; do echo $i; done
for i in $(seq 10); do echo $i; done
for ((i=1;i<=10;i++)); do echo $i; done
i=1 ; while [ $i -le 10 ]; do echo $i ; i=$((i+1)) ; done
i=1 ; until [ $i -gt 10 ]; do echo $i ; i=$((i+1)) ; done         

Sequências numéricas com vim:

:for i in range(1,254) | .put ='192.168.1.'.i  | endfor
:put =range(30,40)
:put =range(-30,-40) 

Sequências numéricas no shell:

for ((i=1;i<=10;i++));do echo $i;done
for i in $(seq 10); do echo $i;done 

Loop nas linhas de um arquivo ou saída de comando

cat /etc/passwd | while read LINHA; do echo "$LINHA"; done
grep 'root' /etc/passwd | while read LINHA; do echo "$LINHA"; done
while read LINHA; do echo "$LINHA"; done < /etc/passwd
while read LINHA; do echo "$LINHA"; done < <(grep 'root' /etc/passwd)

Caixa de Ferramentas do Shell

Comando Função Opções úteis
cat mostra arquivos -n, -s
date mostra data -d +'…'
diff compara arquivos -u -Nr, -i, -w
echo mostra texto -e -n
find encontra arquivos-name, -iname, -type f, -exec, -or
grep encontra texto -i, -v, -r, -qs, -n, -l, -w -x, -A -B -C
headmostra início de arquivo -n -c
paste paraleliza arquivos -d, -s
revinverte textonenhuma
seqconta números-s, -f
sortordena texto-n, -f, -r, -k -t, -o
tacinverte arquivonenhuma
tailmostra final-n, -c, -f
tee rquiva fluxo-a
trtransforma texto-d, -s, A-Z a-z
uniqremove duplicatas-i, -d, -u
wcconta caracteres-c, -w, -l, -L
lslista diretorio-lhat -la -lh -ls

ls -l

letraLembreteTipos de arquivo
--Arquivo normal
dDiretorioDiretorio
lLinkLink simbólico
bBlockDispositivo de bloco (HD)
cCharDispositivo de caracteres (modem serial)
sSocketSocket mapeado em arquivo (comunicação serial)
pPipeFIFO ou Named Pipe (comunicação de processos)
--Permissão desativada
rReadAcesso de leitura
wWriteAcesso de escrita
xExecuteAcesso de execução ou acesso ao diretório
XExecuteAcesso ao diretório somente
sSet IDUsuario/grupo para execução (SUID] SGID) permissão “x” ativada“,
SSet IDUsuário/grupo para execução (SUID] SGID) permissão 'x' desativada
tStickyUsuários só apagam seus próprios arquivos permissão 'x' ativada
TStickyUsuários só apagam seus próprios arquivos permissão 'x' desativada

Aula 8

Aula de 10/10/2016 através de apresentação de trabalho. Dúvidas usar discussão abaixo. As soluções serão discutidas em sala. Objetivo: exercitar uso da linha de comando;

tarefa 1
  1. O que faz o comando ls ~/ ?
  2. O que faz o comando pwd ?
  3. O que faz o comando cd - ?
  4. O que faz o camoando cat?
  5. Para analisar as últimas linha de um arquivo/log, qual o comando recomendado?
tarefa 2

Baixe o aquivo de exemplo lista.zip e descompacte na sua pasta /tmp; Exercite e escreva os comandos que vocẽ usou para:

  1. Mostrar os últimos 10 produtos;
  2. Mostrar os primeiros 10 produtos;
  3. Mostrar a lista completa de produtos;
  4. Mostrar a lista em ordem alfabética;
  5. Mostrar os itens para notebooks;
  6. Conte os produtos WIFI;
  7. Crie uma lista com 20 itens mais caros;
tarefa 3

Crie um script que apresente o seguinte:

 Olá <usuário logado>
 Seu ID é <xx>
 Agora são:<hora do sistema>
 Existem: <xx> usuários no sistema
 O sistema está a <xx> ligado   

Aula 9

Trabalho Para 21/11/2018

Sugestão para leitura adicional


Dúvidas ou sugestões, comente abaixo: