Mudanças entre as edições de "Sistemas Operacionais (técnico)"
(111 revisões intermediárias por 11 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | {{Código |}} | + | {{Código | SOP12501}} |
{{Carga Horária |2|40}}<br> | {{Carga Horária |2|40}}<br> | ||
− | {{Pré-Req || | |}}<br> | + | <!-- {{Pré-Req || | |}}<br> --> |
{{Pós-UE |[[Redes de Computadores]] | | |}} | {{Pós-UE |[[Redes de Computadores]] | | |}} | ||
Linha 68: | Linha 68: | ||
====Objetivos==== | ====Objetivos==== | ||
#Conceituar e trabalhar entradas e saída padrão, saída de erros padrão e pipes; | #Conceituar e trabalhar entradas e saída padrão, saída de erros padrão e pipes; | ||
− | #Trabalhar os comandos ''cut'', ''find'', ''wc'', ''grep'', ''head'' e ''tail''. | + | #Trabalhar os comandos '''cut''', '''find''', '''wc''', '''grep''', '''head''' e '''tail'''. |
+ | |||
====Redirecionamento de entrada e saídas==== | ====Redirecionamento de entrada e saídas==== | ||
Linha 94: | Linha 95: | ||
<li>Acrescentar ao final (''append'') do arquivo ''ListaOrdenada'', a data atual:</li> | <li>Acrescentar ao final (''append'') do arquivo ''ListaOrdenada'', a data atual:</li> | ||
date >> ListaOrdenada | date >> ListaOrdenada | ||
− | <li>Criar um arquivo chamado ''teste1'', com a frase “Alo Mundo”, usando o comando ''echo'' e redirecionamento de saída:</li> | + | <li>Criar um arquivo chamado ''teste1'', com a frase “Alo Mundo”, usando o comando '''echo''' e redirecionamento de saída:</li> |
echo Alo Mundo > teste1 | echo Alo Mundo > teste1 | ||
<li>Criar um arquivo vazio usando somente > arquivo:</li> | <li>Criar um arquivo vazio usando somente > arquivo:</li> | ||
Linha 101: | Linha 102: | ||
Acho que esta é a forma mais rápida de criar um arquivo vazio! | Acho que esta é a forma mais rápida de criar um arquivo vazio! | ||
</blockquote> | </blockquote> | ||
− | <li>Aplicar um comando ''ls'' ao diretório ''/eetc'' (intecionalmente errado) redirecionando a saída para ''lixo1'':</li> | + | <li>Aplicar um comando '''ls''' ao diretório ''/eetc'' (intecionalmente errado) redirecionando a saída para ''lixo1'':</li> |
ls /eetc > lixo1 | ls /eetc > lixo1 | ||
<li>Conferir o conteúdo de ''lixo1'':</li> | <li>Conferir o conteúdo de ''lixo1'':</li> | ||
cat lixo1 | cat lixo1 | ||
− | <li>Repetir o comando ''ls'' ao diretório ''/eetc'' (intecionalmente errado) redirecionando a saída de erro para ''lixo2'':</li> | + | <li>Repetir o comando '''ls''' ao diretório ''/eetc'' (intecionalmente errado) redirecionando a saída de erro para ''lixo2'':</li> |
ls /eetc 2> lixo2 | ls /eetc 2> lixo2 | ||
<li>Conferir o conteúdo de ''lixo2'':</li> | <li>Conferir o conteúdo de ''lixo2'':</li> | ||
cat lixo2 | cat lixo2 | ||
− | <li>Ordenar o arquivo passwd:</li> | + | <li>Ordenar o arquivo ''passwd'':</li> |
sort < /etc/passwd > PasswdOrdenado | sort < /etc/passwd > PasswdOrdenado | ||
</ol> | </ol> | ||
Linha 118: | Linha 119: | ||
<li>Listar de forma controlada (rolando a tela) o diretório ''/etc'':</li> | <li>Listar de forma controlada (rolando a tela) o diretório ''/etc'':</li> | ||
ls -l /etc | more | ls -l /etc | more | ||
− | <li>Procurar arquivos com terminação ''.conf'' no diretório ''/etc'', usando o comando ''find'' e redirecionar a saída de erro para ''/dev/null'' (equivalente a uma lixeira mas sem volta!):</li> | + | <li>Procurar arquivos com terminação ''.conf'' no diretório ''/etc'', usando o comando '''find''' e redirecionar a saída de erro para ''/dev/null'' (equivalente a uma lixeira mas sem volta!):</li> |
− | find /etc -name | + | find /etc -name passwd 2> /dev/null |
<li>Repetir o exercício anterior fazendo um ''pipe'' para o comando ''wc'' (com flag ''-l'' para contar o número de linhas) a fim de verificar o número de ocorrências dos arquivos procurados:</li> | <li>Repetir o exercício anterior fazendo um ''pipe'' para o comando ''wc'' (com flag ''-l'' para contar o número de linhas) a fim de verificar o número de ocorrências dos arquivos procurados:</li> | ||
− | find /etc -name | + | find /etc -name passwd | wc -l |
<li>Eliminar a saída de erros do comando anterior:</li> | <li>Eliminar a saída de erros do comando anterior:</li> | ||
− | find /etc -name | + | find /etc -name passwd 2> /dev/null | wc -l |
− | <li>Usar um pipe com ''cat'' e ''wc'' para determinar quantas linhas existe no arquivo ''/etc/passwd'':</li> | + | <li>Usar um pipe com '''cat''' e '''wc''' para determinar quantas linhas existe no arquivo ''/etc/passwd'':</li> |
cat /etc/passwd | wc -l | cat /etc/passwd | wc -l | ||
<li>Repetir o exercício anterior para verificar quantos caracteres contem o arquivo:</li> | <li>Repetir o exercício anterior para verificar quantos caracteres contem o arquivo:</li> | ||
Linha 130: | Linha 131: | ||
<li>Listar o campo ''1'' do arquivo ''passwd'':</li> | <li>Listar o campo ''1'' do arquivo ''passwd'':</li> | ||
cat /etc/passwd | cut -f 1 -d : | cat /etc/passwd | cut -f 1 -d : | ||
− | <li>Conferir com o comando ''man'' o uso do comando ''cut'':</li> | + | <li>Conferir com o comando '''man''' o uso do comando '''cut''':</li> |
man cut | man cut | ||
</ol> | </ol> | ||
====Outros Exercícios==== | ====Outros Exercícios==== | ||
− | + | <ol> | |
− | + | <li>O comando '''grep''' pode ser usado para verificar ocorrências de palavras em (padrões) em um arquivo. Por exemplo:</li> | |
− | + | grep aluno /etc/passwd | |
− | + | <li>Componha um comando usando '''cut''', '''grep''' e '''wc''' para verificar quantos ''userid'' possuem a cadeia "un";</li> | |
− | + | <li>Gere um arquivo contendo somente os campos ''userid'' e ''nome completo'' de usuários que constam do arquivo ''passwd'';</li> | |
− | + | <li>Pesquisar o comando '''head''' e gerar um arquivo chamado ''DezLinhas'' contendo as 10 primeiras linhas do arquivo ''/etc/passwd'';</li> | |
− | + | <li>Repetir o exercício anterior para as 5 primeiras linhas;</li> | |
+ | <li>Pesquisar o comando '''tail''' e gerar um arquivo chamado ''DezUltimas'' com com as 10 últimas linhas do arquivo ''/etc/passwd'' mas ordene estas linhas com o comando '''sort''' (use ''pipes'').</li> | ||
+ | </ol> | ||
===Aula 11 - Gerenciamento de Processos=== | ===Aula 11 - Gerenciamento de Processos=== | ||
====Objetivos==== | ====Objetivos==== | ||
#Consolidar o conceito de processo; | #Consolidar o conceito de processo; | ||
− | #Usar o comando ps para verificar os processos do sistema; | + | #Usar o comando '''ps''' para verificar os processos do sistema; |
#Encerrar, suspender e reativar processos suspensos. | #Encerrar, suspender e reativar processos suspensos. | ||
Linha 164: | Linha 167: | ||
ps aux | more | ps aux | more | ||
− | Note a coluna PID. Ela indica o número identificador do processo. Em STAT pode-se observar o estado do processo. Existe uma relação de paternidade entre processos e é possível verificar uma árvore de processos com ''pstree''. O comando ''top'' é uma espécide ''ps'' em tempo real. | + | Note a coluna PID. Ela indica o número identificador do processo. Em STAT pode-se observar o estado do processo. Existe uma relação de paternidade entre processos e é possível verificar uma árvore de processos com '''pstree'''. O comando '''top''' é uma espécide '''ps''' em tempo real. |
+ | |||
====Roteiro==== | ====Roteiro==== | ||
<ol> | <ol> | ||
Linha 172: | Linha 176: | ||
tty | tty | ||
<blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
− | O comando tty mostra o nome do terminal que será associado a entrada padrão dos processos que sobre ele se executarem. | + | O comando '''tty''' mostra o nome do terminal que será associado a entrada padrão dos processos que sobre ele se executarem. |
</blockquote> | </blockquote> | ||
+ | <li>Executar o comando yes:</li> | ||
+ | yes Testando | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Este comando, quando executado, se torna um processo cuja função é | ||
+ | imprimir constantemente na saída padrão a cadeia de caracteres passada como | ||
+ | parâmetro | ||
+ | </blockquote> | ||
+ | <li>Para encerrar o processo que está ocupando o terminal faça: </li> | ||
+ | CTRL-c ou (CTRL-c) | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Observe que o processo foi "morto". O CTRL-c envia um sinal ''SIGKILL'' para o processo. | ||
+ | </blockquote> | ||
+ | <li>Coloque novamente o processo em execução, mas agora em ''background'':</li> | ||
+ | yes Testando > /dev/null & | ||
+ | <li>Trazer o processo novamente para o terminal (colocar em ''foreground''):</li> | ||
+ | fg | ||
+ | <li>Suspenda o processo com:</li> | ||
+ | CTRL-Z ou (CTRL-SHIFT-z) | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Suspender o processo é parar o processo mas mantendo-o no sistema com todos os recursos menos a cpu. | ||
+ | </blockquote> | ||
+ | <li>Coloque em execução mais algumas instâncias do processo '''yes''':</li> | ||
+ | yes Testando > /dev/null & | ||
+ | yes Testando > /dev/null & | ||
+ | <li>Neste momento existem 3 processos '''yes''', sendo que dois em execução e um suspenso. Conferir os processos que você lançou com:</li> | ||
+ | ps u | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Este comando lista todos os processos atrelados aos diversos terminais e que pertencem ao usuário. Note que o próprio ''bash'' aparece. Um para cada terminal. | ||
+ | </blockquote> | ||
+ | <li>Abra duas abas de console e para cada uma delas verifique o terminal que se encontra:</li> | ||
+ | tty | ||
+ | <li>Execute em cada uma delas (menos na primeira) um processo ''yes'':</li> | ||
+ | yes Testando | ||
+ | <li>Volte para o primeiro terminal e liste todos os processos que estão atrelados aos terminais, usando a forma longa:</li> | ||
+ | ps l | ||
+ | <li>Faça também com comando topp para verificar os processos em execução: | ||
+ | </li> | ||
+ | top | ||
+ | <li>Vamos "matar" um processo ''yes'' do terminal 2:</li> | ||
+ | kill -KILL <numero_pid> | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Cada processo tem um identificador: PID. O PID deve ser fornecido no comando kill. Note que o comando '''kill''' envia sinais para um processo. | ||
+ | </blockquote> | ||
+ | <li>Vamos usar o comando '''kill''' para suspender e continuar a execução do processo ''yes'' no terminal 3. </li> | ||
+ | kill -STOP <numero_pid> | ||
+ | <li>Ver os processos:</li> | ||
+ | ps -l | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Observe o código STAT. Os processos em execução estão com '''R''' (''running''), os parados com '''T''' (stopped). Os processos dormindo com '''S''' (''sleeping'') | ||
+ | </blockquote> | ||
+ | <li>Coloque o processo em execução novamente:</li> | ||
+ | kill -CONT <numero_pid> | ||
+ | </ol> | ||
+ | |||
+ | ====Alguns exercícios adicionais==== | ||
+ | <ol> | ||
+ | <li>Execute o firefox a partir da interface gráfica. Descubra o PID do processo firefox e depois "mate-o"; </li> | ||
+ | <li>O processo ''init'' é o pai de todos os processos. Qual é o PID deste processo? Tente matar o processo ''init''.</li> | ||
+ | <li>Faça um '''ps aux''' e descubra quais são os três processos que mais consomem CPU.</li> | ||
+ | <li>Pesquise o uso do comando '''killall''' e envie para o professor, via e-mail.</li> | ||
+ | </ol> | ||
+ | |||
+ | ===Aula 12 - Gerenciamento de Processos (revisão) e comandos úteis de empacotamento e compressão=== | ||
+ | ====Objetivos==== | ||
+ | #Comandos adicionais de gerenciamento de processos; | ||
+ | #Utilitários para empacotamento ('''tar''') e compressão de arquivos ('''gzip''' e '''bzip2'''); | ||
+ | |||
+ | ====Roteiro - Parte 1==== | ||
<ol> | <ol> | ||
+ | <li>Abrir um terminal e verificar o nome do mesmo:</li> | ||
+ | tty | ||
+ | <li>Executar o comando yes em background:</li> | ||
+ | yes Alo > /dev/null & | ||
+ | <li>Matar o processo pelo nome do executável:</li> | ||
+ | killall yes | ||
+ | <li>Ver processos se executando em tempo real:</li> | ||
+ | top | ||
+ | <li>Abrir outra aba e colocar o processo yes em execução</li> | ||
+ | yes | ||
+ | <li>Voltar a aba original e conferir a saída do top</li> | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | Sair do '''top''' com q | ||
+ | </blockquote> | ||
+ | <li>Localizar um determinado processo em execução:</li> | ||
+ | ps aux | grep bash | ||
+ | <li>Ver a árvore hierárquica de processos:</li> | ||
+ | pstree -p | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | note a relação de paternidade dos bashes | ||
+ | </blockquote> | ||
+ | <li>Executando múltiplos comandos em uma linha:</li> | ||
+ | id;date | ||
+ | id && date | ||
+ | </ol> | ||
+ | |||
+ | ====Arquivamento e Compressão de Arquivos==== | ||
+ | Existem vários comandos para comprimir/descomprimir arquivos bem como para criar um arquivo único: | ||
+ | *comando '''tar''': usado para empacotar arquivos e diretórios dentro de um único arquivo chamado de '''tarball'''. É um comando interessante para realizar ''backups'' pois preserva a estrutura de diretórios bem como os atributois de arquivos. | ||
+ | *comandos '''gzip''' e '''bzip2''' para a compressão de arquivos; | ||
+ | ===Roteiro - Parte 2=== | ||
+ | <ol> | ||
+ | <li>Criar um diretório</li> | ||
+ | mkdir teste | ||
+ | <li>Entrar para o diretório:</li> | ||
+ | cd teste | ||
+ | <li>Criar arquivos e diretórios dentro do diretório teste:</li> | ||
+ | touch alfa.txt | ||
+ | mkdir beta | ||
+ | touch beta/delta.txt | ||
+ | <li>Mudar o atributo do diretório beta:</li> | ||
+ | chmod 777 beta | ||
+ | <li>Conferir o atributo dos arquivos com</li> | ||
+ | ls -l | ||
+ | <li>Arquivar tudo em um só arquivo chamado arquivo.tar:</li> | ||
+ | tar -cf arquivo.tar alfa.txt beta | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | O ''flag'' '''-c''' cria o arquivo (arquivo.tar) e o ''flag'' '''-f''' serve para fornece o nome do arquivo | ||
+ | </blockquote> | ||
+ | <li>Remover os arquivos criados:</li> | ||
+ | rm alfa.txt | ||
+ | rm -r beta | ||
+ | <li>Conferir a remoção:</li> | ||
+ | ls -l | ||
+ | <li>Restaurar arquivos:</li> | ||
+ | tar -xvf arquivo.tar | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | O ''flag'' '''-x''' extrai arquivos e o ''flag'' '''-v''' verifica o andamento do procedimento | ||
+ | </blockquote> | ||
+ | <li>Remover arquivo tar e conferir restauração:</li> | ||
+ | rm arquivo.tar | ||
+ | ls -l | ||
+ | <li>Verifique os atributos dos arquivos restaurados usando '''ls -l'''. Eles foram preservados? | ||
+ | <li>Refazer o arquivamento dos arquivos e diretórios criados anteriormente mas agora acrescente o flag '''-p''' para preservar os atributos dos arquivos. Restaure os arquivos e confira se os atributos foram preservados.</li> | ||
+ | </ol> | ||
+ | ====Arquivar comprimindo==== | ||
+ | Na seção anterior, o comando tar empacotou arquivos em um arquivo único mas não compactou-os. Para comprimir um arquivo existem vários utilitários que usam algoritmos diferentes. Vamos ver o '''gzip''' e o '''bzip2'''. | ||
+ | <ol> | ||
+ | <li>Copiar o arquivo passwd para o diretório corrente e compactá-lo com gzip:</li> | ||
+ | cp /etc/passwd ./ | ||
+ | ls -lh #Isto serve para ver tamanho original do arquivo | ||
+ | gzip passwd | ||
+ | ls -lh | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | O arquivo original é removido ficando apenas o comprimido! Note a terminação '''gz'''. Se usar o flag '''-c''' mantém o arquivo. | ||
+ | </blockquote> | ||
+ | <li>Descomprimir o arquivo:</li> | ||
+ | gunzip passwd.gz | ||
+ | <li>Comprimir com bzip2:</li> | ||
+ | bzip2 passwd | ||
+ | ls -lh #Isto serve para comparar o tamanho com o gerado pelo gzip. | ||
+ | bunzip2 passwd.bz2 | ||
+ | ls -lh | ||
+ | <li>Arquivar comprimindo:</li> | ||
+ | tar -cvjf arquivo.tar.bz2 alfa.txt passwd beta | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | O ''flag'' '''-j''' comprime usando o comando '''bzip2''' e o ''flag'' '''-z''' usa a compressão com '''gzip'''. | ||
+ | </blockquote> | ||
+ | <li>Remover arquivos e conferir:</li> | ||
+ | rm alfa.txt | ||
+ | rm -r beta | ||
+ | ls -l | ||
+ | <li>Descomprimir arquivos:</li> | ||
+ | tar -xvjf arquivo.tar.gz | ||
+ | <li>Repetir a compressão usando o ''flag'' '''-z''' para comprimir com gzip;</li> | ||
+ | </ol> | ||
+ | |||
+ | ====Vendo espaço no sistema de arquivos==== | ||
+ | <ol> | ||
+ | <li>Verificar o tamanho de arquivos:</li> | ||
+ | cd # vai para o diretório de entrada | ||
+ | du -h # lista arquivos e seus tamanhos | ||
+ | du -sh # tamanho total do diretório | ||
+ | <li>verificar espaços nos sistemas de arquivos:</li> | ||
+ | df -h | ||
+ | </ol> | ||
+ | |||
+ | ==Trabalhos à apresentar== | ||
+ | Cada apresentação tem 30 minutos e tem que ter uma pequena oficina. | ||
+ | <blockquote style="background-color: white; color: black; border:1px solid black; padding: 1em;"> | ||
+ | O que é. Para que serve. Principais características. Equivalente do Windows. Tutorial de uso. | ||
+ | </blockquote> | ||
+ | #Ferramentas de Escritório: '''OpenOffice Editor de Texto'''; | ||
+ | #Ferramentas de Escritório: '''OpenOffice Apresentação'''; | ||
+ | #Ferramentas de Escritório: '''OpenOffice Planilha Eletrônica'''; | ||
+ | #Área de Trabalho do Ubuntu: customização e '''Compiz'''; | ||
+ | #Ferramentas de Desenho: '''gnomepaint''', '''dia''' e editor gráfico do '''OpenOffice'''; | ||
+ | #Browsers: '''Firefox''' e alternativas ao '''Firefox'''; | ||
+ | #Instalando aplicativos no Ubuntu: '''aptitude''' ('''apt-get''') , '''Central de Programas do Ubuntu''', '''Synaptic'''. | ||
+ | #Solução para leitura de ''pdf'': '''acroread''', '''okular''' e '''evince'''; | ||
+ | #Soluções de Áudio/Vídeo (Multimídia) Players: '''Totem''', '''Amarok''' e '''Gravador de Som'''; | ||
+ | #Solução para execução de aplicações windows: '''wine'''; | ||
+ | |||
+ | ==Preparação para a avaliação== | ||
+ | <ol> | ||
+ | <li>Logar no sistema, na interface gráfica, como '''aluno''';</li> | ||
+ | <li>Abrir um console de trabalho: Aplicações ==> Acessórios ==> Console;</li> | ||
+ | <li>Confira com '''pwd''' o diretório de trabalho;</li> | ||
+ | <li>Crie um diretório e entre para o mesmo:</li> | ||
+ | mkdir aval2 | ||
+ | cd aval2 | ||
+ | <li>Coloque o seu nome através de um comando da forma:</li> | ||
+ | echo Joao da Silva | ||
+ | <li>Antes de cada exercício marque o número do mesmo. Por exemplo, para o exercício 1 faça:</li> | ||
+ | echo ex 1 | ||
+ | <li>Não faça nada além do necessário para a execução do exercício.</li> | ||
+ | <li>Aguarde a instrução para o início e ao finalizar NÃO desligue a máquina e deixe o terminal aberto para que o professor possa examinar.</li> | ||
+ | </ol> | ||
+ | |||
+ | ===Questões=== | ||
+ | <ol> | ||
+ | <li>Com o comando '''echo''' e redirecionando a saída padrão CRIAR um arquivo chamado '''lista.txt''' com o seguinte conteúdo:</li> | ||
+ | maria:fase 1:tele:redes | ||
+ | <li>Ainda usando o comando '''echo''' ACRESCENTAR ao arquivo '''lista.txt''' o conteúdo:</li> | ||
+ | joao:fase 2:rac:ar condicionado | ||
+ | <li>Fazer um '''pipe''' com comandos '''cut''', '''grep''' e '''wc''' no arquivo''' lista.txt''' para determinar o número de linhas do referido arquivo que contém alunos do curso de tele (campo 3 do arquivo);</li> | ||
+ | <li>Executar o comando '''yes''' (sem parâmetros) em '''backgroud''' desviando a saída padrão para '''/dev/null''';</li> | ||
+ | <li>Trazer o processo novamente para o terminal (colocar em '''FOREGROUND''');</li> | ||
+ | <li>Abrir uma outra aba de terminal (não esqueça de colocar o echo ex) e enviar um sinal para PARAR o processo '''yes''';</li> | ||
+ | <li>Usando '''pipes''', redirecionamento de saída e os comandos '''ps''' e '''grep''' gerar um arquivo contendo uma linha que mostra o processo '''yes''' e seu estado de PARADO (T);</li> | ||
+ | <li>Enviar um sinal para CONTINUAR o processo anterior;</li> | ||
+ | <li>Fazer um '''pipe''' com os comandos '''ps''' e '''wc''' para determinar o número total de processos que se executam no sistema;</li> | ||
+ | <li>Matar o processo '''yes''' criado no outro terminal;</li> | ||
+ | </ol> | ||
+ | |||
+ | ===Finalizando=== | ||
+ | |||
+ | Deixe o terminal exatamente como está e a FOLHA da prova sobre a mesa. | ||
+ | OBRIGADO!''' | ||
+ | |||
+ | ==Semestre 2013/2== | ||
+ | |||
+ | Aula 01 (20/08/13): Apresentação da Disciplina. | ||
+ | |||
+ | Aula 02 (21/08/13): | ||
+ | [http://wiki.sj.ifsc.edu.br/images/b/b7/Hist%C3%B3rico_da_computa%C3%A7%C3%A3o.pdf História da Computação] e vídeos. | ||
+ | |||
+ | Aula 03 (27/08/13): [http://wiki.sj.ifsc.edu.br/images/d/db/Conhecendo_o_computador.pdf Conhecendo o Computador] | ||
+ | [http://wiki.sj.ifsc.edu.br/images/8/81/Introdu%C3%A7%C3%A3o_ao_hardware.pdf Introdução ao Hardware] | ||
+ | |||
+ | Aula 04 (28/08/13): [http://wiki.sj.ifsc.edu.br/images/3/32/Software_livre.pdf Software Livre] ; Material Auxiliar:([http://wiki.sj.ifsc.edu.br/images/7/72/Shalata_-_Apostila_Software_Livre.pdf Apostila SL Shalata]) ([http://wiki.sj.ifsc.edu.br/images/b/be/Brasil_-_Cartilha_de_software_livre.pdf Cartilha SL]); Atividade: ([http://wiki.sj.ifsc.edu.br/images/5/56/Atividade1_aula4.pdf 01]) | ||
+ | |||
+ | Aula 05 (03/09/13): Exercícios [http://wiki.sj.ifsc.edu.br/images/8/8e/Exercicios1.pdf 01], [http://wiki.sj.ifsc.edu.br/images/0/08/Exercicios2.pdf 02] | ||
+ | |||
+ | Aula 07 (10/09/13): Correção dos exercícios. Introdução ao LINUX ([http://wiki.sj.ifsc.edu.br/images/0/0b/Sistemas_operacionais.pdf Sistemas Operacionais], [http://wiki.sj.ifsc.edu.br/images/7/7f/Carta_do_Linus.pdf Carta Linus]) | ||
+ | |||
+ | Aula 08 (11/09/13): Interface Gráfica do Ubuntu | ||
+ | |||
+ | Aula 09 (17/09/13): Criação de Máquina Virtual e Instalação do Ubuntu ([http://wiki.sj.ifsc.edu.br/images/6/6b/Roteiro1_aula9.pdf Roteiro 01]). | ||
+ | |||
+ | Aula 10 (18/09/13): Introdução Linux modo texto (Conceito de: Kernel e Shell, estrutura de diretórios, usuário e superusuário, diretório raiz, caminho absoluto e relativo; e comandos básicos: cd, .., ~), ([http://wiki.sj.ifsc.edu.br/images/e/ec/Diretorios%29Linux.pdf Estrutura Diretórios Linux]), notas de aula passadas no quadro. ([http://wiki.sj.ifsc.edu.br/images/2/23/Exercicio2_aula9.pdf Exercício Complementar]),([http://wiki.sj.ifsc.edu.br/images/8/85/Gabarito_exercicio2_aula9.pdf Gabarito Exercício Complementar]) | ||
+ | |||
+ | Aula 12 (25/09/13): Continuação Linux modo texto (Comandos básicos: ls, pwd, mkdir, touch, cp, cp -r, mv, man, --help, history, history -c). Notas de aula passadas no quadro. ([http://wiki.sj.ifsc.edu.br/images/b/bc/Roteiro2_aula12.pdf Roteiro 02]) | ||
+ | |||
+ | Aula 13 (01/10/13): Término do roteiro 02 e comandos: cat, more, rm, rm -r e rmdir. | ||
+ | |||
+ | Aula 14 (02/10/13): Exercícios ([http://wiki.sj.ifsc.edu.br/images/3/3e/AulaSOP_2_-_Iniciando_Opera%C3%A7%C3%B5es_com_diret%C3%B3rios.pdf 01], [http://wiki.sj.ifsc.edu.br/images/2/25/AulaSOP_5_-_Revis%C3%A3o_%C3%81rvore_de_Diret%C3%B3rios.pdf 02]). | ||
+ | |||
+ | Aula 15 (08/10/13): Editor VI ([http://wiki.sj.ifsc.edu.br/images/1/1a/EditorVi.pdf Slides Editor VI]), ([http://wiki.sj.ifsc.edu.br/images/6/6d/Roteiro3_aula15.pdf Roteiro 03]). | ||
+ | |||
+ | Aula 16 (09/10/13): Término do roteiro 03 e exercícios pendentes. | ||
+ | |||
+ | Aula 17 (15/10/13): Continuação Linux modo texto (cut, find, >, >>, *, ?, |, [],date, cal, w, ln). | ||
+ | |||
+ | Aula 18 (16/10/13): Inicialização do roteiro prático 04 ([http://wiki.sj.ifsc.edu.br/images/3/39/Roteiro4_aula18.pdf Roteiro 04]). Exercícios Complementares: [http://wiki.sj.ifsc.edu.br/images/4/43/AulaSOP_3.pdf 1], [http://wiki.sj.ifsc.edu.br/images/c/c2/AulaSOP_5.pdf 2], [http://wiki.sj.ifsc.edu.br/images/3/32/Lab4_2009_1.doc 3], [http://wiki.sj.ifsc.edu.br/images/d/d9/Lab5_2009_1.doc 4], [http://wiki.sj.ifsc.edu.br/images/0/0e/Lab6_2009_1.doc 5]. | ||
+ | |||
+ | Aula 19 (22/10/13): Desenvolvimento do roteiro 04 e exercícios. | ||
+ | |||
+ | Aula 20 (23/10/13): Desenvolvimento do roteiro 04 e exercícios. Material auxiliar para estudo: [http://wiki.sj.ifsc.edu.br/images/3/35/Comandos_basicos.pdf Comandos Básicos] | ||
+ | |||
+ | Aula 21 (29/10/13): Desenvolvimento do roteiro 04 e exercícios. | ||
+ | |||
+ | Aula 22 (30/10/13): Término do roteiro 04 e exercícios. | ||
+ | |||
+ | Aula 23 (05/11/13): Avaliação 1. Conteúdo: Linux Modo texto (todos os comandos vistos e editor VI). Permitido: Consulta apenas ao caderno. Não será permitida a consulta as folhas de exercício e roteiros. Sala 07. | ||
+ | |||
+ | Aula 24 (06/11/13): Cedida ao Prof. Alexandre Moreira. | ||
+ | |||
+ | Aula 25 (12/11/13): Entrega e Correção da Avaliação 1. Administração de Usuários e Grupos. Notas de aula passadas no quadro. ([http://wiki.sj.ifsc.edu.br/images/c/ce/Roteiro5_aula25.pdf Roteiro 05]) | ||
+ | |||
+ | Aula 26 (13/11/13): (Continuação) Administração de Usuários e Grupos. Notas de aula passadas no quadro. | ||
+ | |||
+ | Aula 27 (19/11/13): Desenvolvimento Exercícios para entregar. | ||
+ | |||
+ | Aula 28 (20/11/13): Desenvolvimento Exercícios para entregar. | ||
+ | |||
+ | Aula 29 (26/11/13): Permissionamento de arquivos e diretórios. Notas de aula passadas no quadro. ([http://wiki.sj.ifsc.edu.br/images/c/c5/Roteiro6_aula26.pdf Roteiro 06]) | ||
+ | |||
+ | Aula 30 (27/11/13): [http://wiki.sj.ifsc.edu.br/images/4/47/InstalacaoPacotes.pdf Instalação de Pacotes e Descompactadores.] [http://wiki.sj.ifsc.edu.br/images/1/19/Compactados.zip Arquivo Compactado para Download.] [http://wiki.sj.ifsc.edu.br/images/1/1b/Roteiro7_aula21.pdf Roteiro 07] | ||
+ | |||
+ | Aula 31 (03/12/13): Particionamento e Formatação do Disco Rígido. Notas de aula passadas no quadro. [http://wiki.sj.ifsc.edu.br/images/c/ce/Sistema_arquivos.pdf Material Auxiliar], [http://wiki.sj.ifsc.edu.br/images/7/72/Roteiro8_aula22.pdf Roteiro 08] | ||
+ | |||
+ | Aula 32 (04/12/13): Exercícios | ||
+ | |||
+ | Aula 33 (10/12/13): Avaliação 2. | ||
+ | |||
+ | Aula 34 (11/12/13): Recuperação da Avaliação 1. | ||
+ | |||
+ | Aula 35 (17/12/13): Recuperação da Avaliação 2. | ||
− | + | Aula 36 (18/12/13): Recuperação Semestral. | |
==Professores da Unidade Curricular== | ==Professores da Unidade Curricular== | ||
{{Professor|2010-2|[[Odilson Tadeu Valle]]}} | {{Professor|2010-2|[[Odilson Tadeu Valle]]}} | ||
{{Professor|2010-2|[[Eraldo Silveira e Silva]]}} | {{Professor|2010-2|[[Eraldo Silveira e Silva]]}} | ||
+ | {{Professor|2013-2|[[Juliana Camilo Inácio]]}} | ||
+ | {{Professor|2014-1|[[Bruno Fontana da Silva]]}} | ||
{{Curso_Tec_26}} | {{Curso_Tec_26}} |
Edição atual tal como às 20h03min de 1 de março de 2014
CÓDIGO DA UNIDADE CURRICULAR - SOP12501
CARGA HORÁRIA: 2 horas/semana = 40 horas.
UNIDADES CURRICULARES CLIENTES: Redes de Computadores , , ,
Competências
Habilidades
Bases Tecnológicas
Diários de Aula
Aula 9 - Ainda Permissões de acesso a arquivos e diretórios - Uso da umask e exercícios complementares
Objetivos
- Uso da umask;
- Exercícios adicionais.
Uso da umask
A umask é uma palavra binária que permite definir quais são as permissões que serão dadas na criação de um arquivo ou de um diretório. A regra geral para formação destas permissões é:
- Para arquivo: 666 AND (NOT umask);
- Para diretório: 777 AND (NOT umask);
Ou seja, suponha que vamos criar um arquivo. A umask pode ser verificada com o comando:
umask
Normalmente esta máscara é 022. Se você criar um arquivo ele terá as seguintes permissões:
666 AND (NOT 022) = 666 AND 755 = 644
Ou seja, direito de rw para usuário, r para grupo e outros.
Para diretórios seria:
777 AND (NOT 022) = 777 AND 755 = 755
Ou seja, direito de rwx para usuário, rx para grupo e outros.
Se você usar o comando:
umask -S
será possível visualizar estas permissõeses de forma simbólica.
Usando a umask
- Modifique a umask para que todos os arquivos criados para outros tenham direito de leitura e escrita (e execução para diretórios). Basta aplicar o comando umask e a máscara a ser aplicada;
- Crie um arquivo qualquer: touch teste.txt
- Crie um diretório qualquer qualquer: mkdir teste
- Confira os resultados: ls -l
- Volte a umask ao valor inicial
Exercícios adicionais
Usando uma máquina virtual, como na aula anterior, criar 4 usuários: joao, maria, jose e lara. Os usuários joao, maria e lara pertencem a um grupo projX, que também deve ser criado (se ainda não existir).
Algumas restrições de permissão
O usuário joao possui os seguintes diretórios: docs_outros, docs_pessoais e docs_projX. Ele colocou as seguintes restrições de acesso:
- Em docs_pessoais somente joao pode criar e ver arquivos e diretórios, todos os demais grupos e usuários não tem permissão alguma. Em docs_projX, somente joao e os integrantes do grupo projX podem criar arquivos e entrar no diretório;
- Em docs_outros qualquer um pode entrar e listar o diretório mas não pode criar ou renomear arquivos no mesmo;
Testando permissões
- Logue como joao e crie os arquivos alfa.txt e beta.txt no diretório docs_pessoais com direito de acesso a somente leitura para outros. Dê acesso a leitura e escrita para proprietário e grupo.
- Logue como maria e teste os direitos de acesso aos diretórios criados por joao.
- Logue como jose e tente entrar nos diretórios criados por joao. Qual deles permite este acesso?
- Faça lara criar um arquivo em docs_projX;
Aula 10 - Entradas e Saídas Padrão
Objetivos
- Conceituar e trabalhar entradas e saída padrão, saída de erros padrão e pipes;
- Trabalhar os comandos cut, find, wc, grep, head e tail.
Redirecionamento de entrada e saídas
Sempre existem 3 arquivos "abertos" por default para um determinado processo. São eles a entrada padrão (stdin, normalmente associada ao teclado), stdout (normalmente associada a tela) e a saída padrão de erros (stderr, normalmente associada a tela). Estes arquivos podem ser modificados resultando no que se chama de redirecionamento das entradas e saídas do processo.
Cada arquivo aberto, associado a um processo, possui um descritor identificado por um número que se constitui em um índice de uma tabela de arquivos abertos associados ao processo. Segue-se um resumo da forma de realizar redirecionamento.
Redireção de stdout (arquivo lista é sobrescrito):
ls > lista
Redireção de stdout fazendo um append ao arquivo de saída:
ls >> lista
Cria/sobreescreve um arquivo de tamanho zero, similar ao touch
> lixo
Resumo das redireções das saídas:
- 1>filename # Redireciona stdout para o arquivo filename
- 1>>filename # Redireciona e acrescenta a stdout para o arquivo filename
- 2>filename # Redireciona stderr para o arquivo filename
- 2>>filename # Redireciona e faz append da stderr para o arquivo filename
- &>filename # Redireciona ambos stdout and stderr para o arquivo filename
Exercícios
- Listar o diretório corrente, de forma detalhada e em ordem crescente de modificação, redirecionando a saída para um arquivo ListaOrdenada: ls -l > ListaOrdenada
- Acrescentar ao final (append) do arquivo ListaOrdenada, a data atual: date >> ListaOrdenada
- Criar um arquivo chamado teste1, com a frase “Alo Mundo”, usando o comando echo e redirecionamento de saída: echo Alo Mundo > teste1
- Criar um arquivo vazio usando somente > arquivo: > ArquivoVazio
- Aplicar um comando ls ao diretório /eetc (intecionalmente errado) redirecionando a saída para lixo1: ls /eetc > lixo1
- Conferir o conteúdo de lixo1: cat lixo1
- Repetir o comando ls ao diretório /eetc (intecionalmente errado) redirecionando a saída de erro para lixo2: ls /eetc 2> lixo2
- Conferir o conteúdo de lixo2: cat lixo2
- Ordenar o arquivo passwd: sort < /etc/passwd > PasswdOrdenado
Acho que esta é a forma mais rápida de criar um arquivo vazio!
Pipes
A filosofia do unix/linux é resolver pequenos problemas com comandos simples. É possível no entanto resolver problemas mais complexos encadeando saídas em entradas, usando pipes.
- Listar de forma controlada (rolando a tela) o diretório /etc: ls -l /etc | more
- Procurar arquivos com terminação .conf no diretório /etc, usando o comando find e redirecionar a saída de erro para /dev/null (equivalente a uma lixeira mas sem volta!): find /etc -name passwd 2> /dev/null
- Repetir o exercício anterior fazendo um pipe para o comando wc (com flag -l para contar o número de linhas) a fim de verificar o número de ocorrências dos arquivos procurados: find /etc -name passwd | wc -l
- Eliminar a saída de erros do comando anterior: find /etc -name passwd 2> /dev/null | wc -l
- Usar um pipe com cat e wc para determinar quantas linhas existe no arquivo /etc/passwd: cat /etc/passwd | wc -l
- Repetir o exercício anterior para verificar quantos caracteres contem o arquivo: cat /etc/passwd | wc
- Listar o campo 1 do arquivo passwd: cat /etc/passwd | cut -f 1 -d :
- Conferir com o comando man o uso do comando cut: man cut
Outros Exercícios
- O comando grep pode ser usado para verificar ocorrências de palavras em (padrões) em um arquivo. Por exemplo: grep aluno /etc/passwd
- Componha um comando usando cut, grep e wc para verificar quantos userid possuem a cadeia "un";
- Gere um arquivo contendo somente os campos userid e nome completo de usuários que constam do arquivo passwd;
- Pesquisar o comando head e gerar um arquivo chamado DezLinhas contendo as 10 primeiras linhas do arquivo /etc/passwd;
- Repetir o exercício anterior para as 5 primeiras linhas;
- Pesquisar o comando tail e gerar um arquivo chamado DezUltimas com com as 10 últimas linhas do arquivo /etc/passwd mas ordene estas linhas com o comando sort (use pipes).
Aula 11 - Gerenciamento de Processos
Objetivos
- Consolidar o conceito de processo;
- Usar o comando ps para verificar os processos do sistema;
- Encerrar, suspender e reativar processos suspensos.
Estados de Processos no Linux
Os estados possíveis de um processo no linux são:
- R se executando (running) ou na fila de execução;
- D dormindo na espera por algum evento;
- S dormindo na espera por algum por algum evento ou sinal (interruptible sleep);
- T (stopped) Parado (por um sinal ou sendo depurado);
- Z processo Zombie (foi terminado mas ainda presente no sistema).
Uma forma de outros processos ou do próprio sistema operacional se comunicar com processos é transmitir sinais para o mesmo. Existem vários tipos de sinais. Um dos mais famosos é o SIGKILL que "mata" o processo. O sinal SIGSTOP para um processo e o sinal SIGCONT faz com que um processo parado continue a sua execução.
Para ver todos os processos do sistema pode-se fazer:
ps aux | more
Note a coluna PID. Ela indica o número identificador do processo. Em STAT pode-se observar o estado do processo. Existe uma relação de paternidade entre processos e é possível verificar uma árvore de processos com pstree. O comando top é uma espécide ps em tempo real.
Roteiro
- Logar no sistema, na interface gráfica, como aluno;
- Abrir um console de trabalho: Aplicações -> Acessórios -> Console
- Verificar o terminal que você está: tty
- Executar o comando yes: yes Testando
- Para encerrar o processo que está ocupando o terminal faça: CTRL-c ou (CTRL-c)
- Coloque novamente o processo em execução, mas agora em background: yes Testando > /dev/null &
- Trazer o processo novamente para o terminal (colocar em foreground): fg
- Suspenda o processo com: CTRL-Z ou (CTRL-SHIFT-z)
- Coloque em execução mais algumas instâncias do processo yes: yes Testando > /dev/null & yes Testando > /dev/null &
- Neste momento existem 3 processos yes, sendo que dois em execução e um suspenso. Conferir os processos que você lançou com: ps u
- Abra duas abas de console e para cada uma delas verifique o terminal que se encontra: tty
- Execute em cada uma delas (menos na primeira) um processo yes: yes Testando
- Volte para o primeiro terminal e liste todos os processos que estão atrelados aos terminais, usando a forma longa: ps l
- Faça também com comando topp para verificar os processos em execução: top
- Vamos "matar" um processo yes do terminal 2: kill -KILL <numero_pid>
- Vamos usar o comando kill para suspender e continuar a execução do processo yes no terminal 3. kill -STOP <numero_pid>
- Ver os processos: ps -l
- Coloque o processo em execução novamente: kill -CONT <numero_pid>
O comando tty mostra o nome do terminal que será associado a entrada padrão dos processos que sobre ele se executarem.
Este comando, quando executado, se torna um processo cuja função é imprimir constantemente na saída padrão a cadeia de caracteres passada como parâmetro
Observe que o processo foi "morto". O CTRL-c envia um sinal SIGKILL para o processo.
Suspender o processo é parar o processo mas mantendo-o no sistema com todos os recursos menos a cpu.
Este comando lista todos os processos atrelados aos diversos terminais e que pertencem ao usuário. Note que o próprio bash aparece. Um para cada terminal.
Cada processo tem um identificador: PID. O PID deve ser fornecido no comando kill. Note que o comando kill envia sinais para um processo.
Observe o código STAT. Os processos em execução estão com R (running), os parados com T (stopped). Os processos dormindo com S (sleeping)
Alguns exercícios adicionais
- Execute o firefox a partir da interface gráfica. Descubra o PID do processo firefox e depois "mate-o";
- O processo init é o pai de todos os processos. Qual é o PID deste processo? Tente matar o processo init.
- Faça um ps aux e descubra quais são os três processos que mais consomem CPU.
- Pesquise o uso do comando killall e envie para o professor, via e-mail.
Aula 12 - Gerenciamento de Processos (revisão) e comandos úteis de empacotamento e compressão
Objetivos
- Comandos adicionais de gerenciamento de processos;
- Utilitários para empacotamento (tar) e compressão de arquivos (gzip e bzip2);
Roteiro - Parte 1
- Abrir um terminal e verificar o nome do mesmo: tty
- Executar o comando yes em background: yes Alo > /dev/null &
- Matar o processo pelo nome do executável: killall yes
- Ver processos se executando em tempo real: top
- Abrir outra aba e colocar o processo yes em execução yes
- Voltar a aba original e conferir a saída do top
- Localizar um determinado processo em execução: ps aux | grep bash
- Ver a árvore hierárquica de processos: pstree -p
- Executando múltiplos comandos em uma linha: id;date id && date
Sair do top com q
note a relação de paternidade dos bashes
Arquivamento e Compressão de Arquivos
Existem vários comandos para comprimir/descomprimir arquivos bem como para criar um arquivo único:
- comando tar: usado para empacotar arquivos e diretórios dentro de um único arquivo chamado de tarball. É um comando interessante para realizar backups pois preserva a estrutura de diretórios bem como os atributois de arquivos.
- comandos gzip e bzip2 para a compressão de arquivos;
Roteiro - Parte 2
- Criar um diretório mkdir teste
- Entrar para o diretório: cd teste
- Criar arquivos e diretórios dentro do diretório teste: touch alfa.txt mkdir beta touch beta/delta.txt
- Mudar o atributo do diretório beta: chmod 777 beta
- Conferir o atributo dos arquivos com ls -l
- Arquivar tudo em um só arquivo chamado arquivo.tar: tar -cf arquivo.tar alfa.txt beta
- Remover os arquivos criados: rm alfa.txt rm -r beta
- Conferir a remoção: ls -l
- Restaurar arquivos: tar -xvf arquivo.tar
- Remover arquivo tar e conferir restauração: rm arquivo.tar ls -l
- Verifique os atributos dos arquivos restaurados usando ls -l. Eles foram preservados?
- Refazer o arquivamento dos arquivos e diretórios criados anteriormente mas agora acrescente o flag -p para preservar os atributos dos arquivos. Restaure os arquivos e confira se os atributos foram preservados.
O flag -c cria o arquivo (arquivo.tar) e o flag -f serve para fornece o nome do arquivo
O flag -x extrai arquivos e o flag -v verifica o andamento do procedimento
Arquivar comprimindo
Na seção anterior, o comando tar empacotou arquivos em um arquivo único mas não compactou-os. Para comprimir um arquivo existem vários utilitários que usam algoritmos diferentes. Vamos ver o gzip e o bzip2.
- Copiar o arquivo passwd para o diretório corrente e compactá-lo com gzip: cp /etc/passwd ./ ls -lh #Isto serve para ver tamanho original do arquivo gzip passwd ls -lh
- Descomprimir o arquivo: gunzip passwd.gz
- Comprimir com bzip2: bzip2 passwd ls -lh #Isto serve para comparar o tamanho com o gerado pelo gzip. bunzip2 passwd.bz2 ls -lh
- Arquivar comprimindo: tar -cvjf arquivo.tar.bz2 alfa.txt passwd beta
- Remover arquivos e conferir: rm alfa.txt rm -r beta ls -l
- Descomprimir arquivos: tar -xvjf arquivo.tar.gz
- Repetir a compressão usando o flag -z para comprimir com gzip;
O arquivo original é removido ficando apenas o comprimido! Note a terminação gz. Se usar o flag -c mantém o arquivo.
O flag -j comprime usando o comando bzip2 e o flag -z usa a compressão com gzip.
Vendo espaço no sistema de arquivos
- Verificar o tamanho de arquivos: cd # vai para o diretório de entrada du -h # lista arquivos e seus tamanhos du -sh # tamanho total do diretório
- verificar espaços nos sistemas de arquivos: df -h
Trabalhos à apresentar
Cada apresentação tem 30 minutos e tem que ter uma pequena oficina.
O que é. Para que serve. Principais características. Equivalente do Windows. Tutorial de uso.
- Ferramentas de Escritório: OpenOffice Editor de Texto;
- Ferramentas de Escritório: OpenOffice Apresentação;
- Ferramentas de Escritório: OpenOffice Planilha Eletrônica;
- Área de Trabalho do Ubuntu: customização e Compiz;
- Ferramentas de Desenho: gnomepaint, dia e editor gráfico do OpenOffice;
- Browsers: Firefox e alternativas ao Firefox;
- Instalando aplicativos no Ubuntu: aptitude (apt-get) , Central de Programas do Ubuntu, Synaptic.
- Solução para leitura de pdf: acroread, okular e evince;
- Soluções de Áudio/Vídeo (Multimídia) Players: Totem, Amarok e Gravador de Som;
- Solução para execução de aplicações windows: wine;
Preparação para a avaliação
- Logar no sistema, na interface gráfica, como aluno;
- Abrir um console de trabalho: Aplicações ==> Acessórios ==> Console;
- Confira com pwd o diretório de trabalho;
- Crie um diretório e entre para o mesmo: mkdir aval2 cd aval2
- Coloque o seu nome através de um comando da forma: echo Joao da Silva
- Antes de cada exercício marque o número do mesmo. Por exemplo, para o exercício 1 faça: echo ex 1
- Não faça nada além do necessário para a execução do exercício.
- Aguarde a instrução para o início e ao finalizar NÃO desligue a máquina e deixe o terminal aberto para que o professor possa examinar.
Questões
- Com o comando echo e redirecionando a saída padrão CRIAR um arquivo chamado lista.txt com o seguinte conteúdo: maria:fase 1:tele:redes
- Ainda usando o comando echo ACRESCENTAR ao arquivo lista.txt o conteúdo: joao:fase 2:rac:ar condicionado
- Fazer um pipe com comandos cut, grep e wc no arquivo lista.txt para determinar o número de linhas do referido arquivo que contém alunos do curso de tele (campo 3 do arquivo);
- Executar o comando yes (sem parâmetros) em backgroud desviando a saída padrão para /dev/null;
- Trazer o processo novamente para o terminal (colocar em FOREGROUND);
- Abrir uma outra aba de terminal (não esqueça de colocar o echo ex) e enviar um sinal para PARAR o processo yes;
- Usando pipes, redirecionamento de saída e os comandos ps e grep gerar um arquivo contendo uma linha que mostra o processo yes e seu estado de PARADO (T);
- Enviar um sinal para CONTINUAR o processo anterior;
- Fazer um pipe com os comandos ps e wc para determinar o número total de processos que se executam no sistema;
- Matar o processo yes criado no outro terminal;
Finalizando
Deixe o terminal exatamente como está e a FOLHA da prova sobre a mesa. OBRIGADO!
Semestre 2013/2
Aula 01 (20/08/13): Apresentação da Disciplina.
Aula 02 (21/08/13): História da Computação e vídeos.
Aula 03 (27/08/13): Conhecendo o Computador Introdução ao Hardware
Aula 04 (28/08/13): Software Livre ; Material Auxiliar:(Apostila SL Shalata) (Cartilha SL); Atividade: (01)
Aula 05 (03/09/13): Exercícios 01, 02
Aula 07 (10/09/13): Correção dos exercícios. Introdução ao LINUX (Sistemas Operacionais, Carta Linus)
Aula 08 (11/09/13): Interface Gráfica do Ubuntu
Aula 09 (17/09/13): Criação de Máquina Virtual e Instalação do Ubuntu (Roteiro 01).
Aula 10 (18/09/13): Introdução Linux modo texto (Conceito de: Kernel e Shell, estrutura de diretórios, usuário e superusuário, diretório raiz, caminho absoluto e relativo; e comandos básicos: cd, .., ~), (Estrutura Diretórios Linux), notas de aula passadas no quadro. (Exercício Complementar),(Gabarito Exercício Complementar)
Aula 12 (25/09/13): Continuação Linux modo texto (Comandos básicos: ls, pwd, mkdir, touch, cp, cp -r, mv, man, --help, history, history -c). Notas de aula passadas no quadro. (Roteiro 02)
Aula 13 (01/10/13): Término do roteiro 02 e comandos: cat, more, rm, rm -r e rmdir.
Aula 14 (02/10/13): Exercícios (01, 02).
Aula 15 (08/10/13): Editor VI (Slides Editor VI), (Roteiro 03).
Aula 16 (09/10/13): Término do roteiro 03 e exercícios pendentes.
Aula 17 (15/10/13): Continuação Linux modo texto (cut, find, >, >>, *, ?, |, [],date, cal, w, ln).
Aula 18 (16/10/13): Inicialização do roteiro prático 04 (Roteiro 04). Exercícios Complementares: 1, 2, 3, 4, 5.
Aula 19 (22/10/13): Desenvolvimento do roteiro 04 e exercícios.
Aula 20 (23/10/13): Desenvolvimento do roteiro 04 e exercícios. Material auxiliar para estudo: Comandos Básicos
Aula 21 (29/10/13): Desenvolvimento do roteiro 04 e exercícios.
Aula 22 (30/10/13): Término do roteiro 04 e exercícios.
Aula 23 (05/11/13): Avaliação 1. Conteúdo: Linux Modo texto (todos os comandos vistos e editor VI). Permitido: Consulta apenas ao caderno. Não será permitida a consulta as folhas de exercício e roteiros. Sala 07.
Aula 24 (06/11/13): Cedida ao Prof. Alexandre Moreira.
Aula 25 (12/11/13): Entrega e Correção da Avaliação 1. Administração de Usuários e Grupos. Notas de aula passadas no quadro. (Roteiro 05)
Aula 26 (13/11/13): (Continuação) Administração de Usuários e Grupos. Notas de aula passadas no quadro.
Aula 27 (19/11/13): Desenvolvimento Exercícios para entregar.
Aula 28 (20/11/13): Desenvolvimento Exercícios para entregar.
Aula 29 (26/11/13): Permissionamento de arquivos e diretórios. Notas de aula passadas no quadro. (Roteiro 06)
Aula 30 (27/11/13): Instalação de Pacotes e Descompactadores. Arquivo Compactado para Download. Roteiro 07
Aula 31 (03/12/13): Particionamento e Formatação do Disco Rígido. Notas de aula passadas no quadro. Material Auxiliar, Roteiro 08
Aula 32 (04/12/13): Exercícios
Aula 33 (10/12/13): Avaliação 2.
Aula 34 (11/12/13): Recuperação da Avaliação 1.
Aula 35 (17/12/13): Recuperação da Avaliação 2.
Aula 36 (18/12/13): Recuperação Semestral.
Professores da Unidade Curricular
- 2010-2 - Odilson Tadeu Valle
- 2010-2 - Eraldo Silveira e Silva
- 2013-2 - Juliana Camilo Inácio
- 2014-1 - Bruno Fontana da Silva