Você está na página 1de 14

Treinamento InfoLAB 2011

softwarelivre.uff.br

Sumrio
1 Introduo.......................................................................................................................3 1.1 Objetivos do Treinamento....................................................................................3 1.2 O que Software Livre.........................................................................................3 1.3 Vantagens do Software Livre...............................................................................4 2 O Sistema GNU/Linux....................................................................................................4 2.1 Hierarquia do Sistema de Arquivos Linux............................................................4 2.2 Organizao.........................................................................................................5 2.3 Funcionamento.....................................................................................................6 2.3.1 Usurios e Permisses ................................................................................6 2.4 Shell de Comandos / Terminal.............................................................................8 2.5 Programas residentes .........................................................................................9 2.6 Memria virtual ..................................................................................................10 3 Comandos Bsicos .....................................................................................................11 3.1 Manipulao de Arquivos ..............................................................................11 Atividade 1..................................................................................................................14

1 Introduo
1.1 Objetivos do Treinamento
O projeto dos laboratrios de graduao (Projeto InfoLab) foi criado em 2003 pela PrReitoria de Assuntos Acadmicos (PROAC), em parceria com o Ncleo de Tecnologia da Informao e Comunicao (NTi). O objetivo era implantar laboratrios de informtica com o uso de software livre - destinados aos alunos de graduao da universidade. Estes laboratrios, administrados pelos prprios cursos, seriam gerenciados com a ajuda de alunos treinados. O treinamento tem os seguintes objetivos: Familiarizar os participantes com o ambiente do sistema operacional Linux; Difundir o conceito de software livre; Habilitar o participante a prover o suporte dos laboratrios da Universidade; Habilitar o participante a exercer as tarefas de administrao bsicas no Linux; Divulgar as formas de contato com a equipe de suporte e de realizar um intercmbio de informaes;

1.2 O que Software Livre


Software livre o software que atende, fundamentalmente, a quatro quesitos bsicos: A liberdade de executar o programa, para qualquer propsito (liberdade n 0). A liberdade de estudar como o programa funciona, e adapt-lo para as suas necessidades (liberdade n 1). Acesso ao cdigo-fonte um pr-requisito para esta liberdade. A liberdade de redistribuir cpias de modo que voc possa ajudar ao seu (liberdade n 2). A liberdade de aperfeioar o programa, e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie (liberdade n 3). Acesso ao cdigo- fonte um prrequisito para esta liberdade. Um programa software livre se os usurios tem todas essas liberdades. Portanto, voc deve ser livre para redistribuir cpias, seja com ou sem modificaes, seja de graa ou cobrando uma taxa pela distribuio, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que voc no tem que pedir ou pagar pela permisso. prximo

1.3 Vantagens do Software Livre


Alm das vantagens estratgicas como o desenvolvimento local e criao de possibilidades de intercmbio e exportao de tecnologia, o software livre possui outras vantagens dentre as quais destacam-se: Portabilidade; Alto ndice de customizao; Desenvolvimento colaborativo; Intenso processo de depurao que leva construo de programas bastante estveis e seguros.

2 O Sistema GNU/Linux
2.1 Hierarquia do Sistema de Arquivos Linux
Ao migrar de outro sistema operacional, algo que pode afetar profundamente o usurio a diferena nos sistemas de arquivos. O sistema de arquivos composto dos mtodos de como os dados sero salvos no disco ou numa partio e da sua organizao estrutural. A maioria dos sistemas UNIX usam estruturas similares, apesar de haver pequenas variaes de sistema para sistema, pois visa-se a portabilidade entre os diversos sistemas existentes. Como no UNIX, o Linux tem somente um nico diretrio hierrquico. Tudo comea na raz, representada pela / (barra) e se expande em subdiretrios ao invs dos to chamados 'drives'. No ambiente Windows, por exemplo, um usurio pode colocar arquivos onde ele quiser: no drive 'C:', no drive 'D:' e etc. Essas estruturas hierrquicas dos sistemas de arquivos so inicializadas pelos programas (programas de diretrios) em si e no pelo sistema operacional. Por outro lado, o Linux organiza os diretrios descendentemente a partir da raiz / de acordo com sua importncia no processo de inicializao (boot) do sistema. Se voc se pergunta por que o Linux usa a barra (/) ao invs da contra barra (\, como no Windows), devido ao padro adotado no UNIX. O Linux, como o UNIX tambm adotou o padro case sensitive. Isso significa que letras maisculas e minsculas importam. Logo, isso no igual a ISSO. Esses recursos causam uma variedade infinita de problemas para novos usurios, especialmente nas transferncias de arquivos em pen-drives e outros meios como o FTP.

Estrutura de Diretrios de sistemas (Lin)UNIX

Nota: Em distribuies recentes, a pasta 'X11R6' foi transferida para o diretrio /etc como X11. O mesmo ocorre com 'srv', onde os 2 subdiretrios localizados nele foram movidos para 'var'.

2.2 Organizao
/ - o diretrio raiz, este o local onde a arvore de diretrios comea ; /bin este diretrio contem programas executveis que so necessrio em modo usurio simples e para inicializar o sistema ou repar-lo ; /boot contm arquivos estticos utilizados pelo boot loader. Este diretrio contm apenas os arquivos que so necessrios durante o processo de boot; /dev arquivos de dispositivo, que fazem referncia aos dispositivos fsicos ; /etc contm arquivos de configurao locais ; /etc/skel quando uma nova conta de usurio criada, arquivos deste diretrio geralmente so copiados para o diretrio home do usurio; /etc/X11 arquivos de configurao sistema de janelas X11 ; /home diretrios pessoais dos usurio s comuns do sistema; /lib este diretrio deve conter as bibliotecas compartilhadas que so necessrias para inicializar o sistema e executar programas no sistema de arquivos raiz ; /mnt este diretrio costuma conter pontos de montagem de sistemas de arquivos montados temporariamente; /proc este o ponto de montagem do sistema de arquivos proc, que fornece informaes sobre os processos que esto em execuo e do kernel ; 5

/root este diretrio normalmente o diretrio home do usurio root ; /sbin assim como o diretrio bin, este diretrio contem comandos que so necessrio para inicializar o sistema, mas que no so normalmente utilizados por usurios normais; /tmp este diretrio contem arquivos temporrios; /usr este diretrio normalmente deve conter, informaes compartilhveis e somente de leitura; /usr/bin este o diretrio primrio para os programas executveis, a maioria dos programas executados por usurios normais que no so necessrios para o processo de inicializao ou manuteno do sistema devem ser colocados aqui; /usr/lib bibliotecas, incluindo bibliotecas dinmicas e alguns executveis que normalmente no so invocados diretamente; /usr/sbin este diretrio contm binrios de programas para administrao do sistema que no so essenciais para o processo de boot; /usr/src/ - este o lugar tradicional para armazenar os arquivos fontes do kernel;

/var/log arquivos de log diversos .

2.3 Funcionamento
Genericamente, os sistemas de arquivos suportados pelo Linux mantm, associados a cada arquivo, informaes como identificadores do dono do arquivo e do grupo do dono, o tipo do arquivo, as permisses relativas ao arquivo, data e hora de criao e ltima modificao e etc. Atualmente, os sistemas de arquivos mais usados e mais famosos do GNU/Linux, junto com o EXT4, so o Reiser Filesystem, criado por Hans Reiser; o Journaled Filesystem (JFS), criado pela IBM para o AIX, a verso do Unix da mesma empresa e o Extended Filesystem (XFS), criado pela Silicon Graphics Incorporated (SGI) para o Irix, sua variao do Unix. 2.3.1 Usurios e Permisses Sistemas operacionais multiusurio, como o Linux permitem que vrios usurios utilizem o sistema ao mesmo tempo - tm de zelar pela segurana e privacidade dos dados individuais de cada usurio, bem como prezar pela integridade do sistema. Para isso existem as chamadas permisses de acesso, que atuam em dois aspectos fundamentais. O primeiro a privacidade e o segundo, a segurana. 6

O GNU/Linux tem um mtodo muito simples de lidar com permisses. Inicialmente, elas so divididas em duas categorias: as permisses simples e as permisses especiais. As permisses simples atuam liberando ou bloqueando o acesso leitura, escrita e execuo nos arquivos. Existem diversas formas de se demonstrar as permisses de um arquivo. Nesse instante mostraremos de forma simplificada, detalhes sero mostrados mais adiante:

Permisso Leitura Escrita Execuo

Literal r w x

Octal 4 2 1

Leitura (r): A permisso de leitura a que vai dizer se o usurio tem ou no direito de ver o contedo do arquivo ou do diretrio; Escrita (w): Essa permisso diz se o usurio ter ou no o direito de modificar o contedo do arquivo ou diretrio; Execuo (x): Por fim, a permisso de execuo especifica se o usurio pode ou no executar o arquivo, caso ele se trate de um binrio ou de um script. No caso de um diretrio, especifica se o usurio poder ou no acess-lo. Somente a existncia dessas permisses no suficiente. Suponha que voc crie um arquivo,

e queira que o usurio joo tenha acesso a ele, mas nenhum outro usurio tenha. Dessa forma, as permisses podem ser aplicadas a: Dono: Chamamos de dono o usurio que criou o arquivo. O sistema de permisses no GNU/Linux permite que alteremos as permisses para ns prprios. Podemos, assim, evitar que, por exemplo, faamos alteraes acidentais em arquivos importantes; Grupo: todo usurio do sistema GNU/Linux pertence pelo menos um grupo. Assim, voc pode definir as permisses em nvel de grupo, de forma que, se voc liberar o acesso de leitura para o grupo professores, todos os usurios que fizerem parte desse grupo tero permisso de leitura no seu arquivo; Outros: Simplesmente, todos os usurios que no so voc mesmo nem pertencem ao seu grupo primrio.

PERMISSES Usurio Leitura Dono Grupo Outros Sim/No Sim/No Sim/No

Escrita Sim/No Sim/No Sim/No

Execuo Sim/No Sim/No Sim/No

2.4 Shell de Comandos / Terminal


Ao abrirmos um terminal (prompt de comando, estilo o DOS do Microsoft Windows), algumas coisas so indicadas: usuario@nti:/tmp$ Isso quer dizer: O usurio usuario est utilizando um computador de nome nti e atualmente est no diretrio /tmp. Os smbolos @ e $ so os separadores do nome do usurio e da da linha do comando, respectivamente. Quando o usurio que est utilizando o sistema o administrador, ou super-usurio, que normalmente tem o nome de usurio root, o ltimo separador se transforma no smbolo #. Se o usurio est no seu diretrio home, o diretrio corrente substitudo pelo smbolo ~. Para esclarecer, o diretrio home (/home/usuario) o diretrio para onde o usurio direcionado quando entra no sistema e onde possui permisso irrestrita (afinal, ele o dono da sua prpria 'casa') para criar, apagar ou modificar arquivos e/ou diretrios existentes l. Outro item importante do Shell so as chamadas variveis de ambiente. Elas so pares de chaves e valores que determinam alguns comportamentos do sistema. As variveis de ambiente podem ser verificadas com o comando set. Uma varivel de ambiente importante a PATH. Ela determina em quais diretrios e em que ordem o sistema buscar por comandos para executar. Por exemplo, se a varivel PATH tem o valor /bin:/sbin e digitamos o seguinte no prompt de comando: usuario@nti:/meus_programas$ imprime_texto <enter> O sistema far o seguinte: buscar o arquivo imprime_texto no diretrio /bin, se encontr-lo o executar (se tiver permisso para isso, claro). Se arquivo no for encontrado, o sistema ir procur-lo no diretrio /sbin e o executar. Se ainda no encontr-lo retornar a

mensagem arquivo no encontrado. Observe que o sistema no busca o arquivo imprime_texto no diretrio corrente. Se quisssemos executar esse programa e ele estivesse no diretrio /meus_programas, deveramos digitar o seguinte no prompt: usuario@nti:/meus_programas$ ./imprime_texto <enter>

2.5 Programas residentes


Todo programa para ser executado precisa estar na memria. Ento, quando um usurio invoca um determinado programa, o arquivo lido do disco e copiado para a memria, se transformando em um processo. Depois de executar a sua tarefa o programa encerrado e seus processos deixam a memria, liberando-a para que outros programas possam utiliz-la. Enquanto executado, dizemos que o programa reside em memria. Porm, existem alguns programas que executam tarefas ininterruptas e que no interagem com o usurio de forma direta. Esses programas tambm ficam residentes em memria e so denominados daemons (pronuncia-se, dimons). Se um processo iniciado por outro processo em execuo, ele dito um processo filho do primeiro, e o processo original chamado de processo pai. Se um processo filho encerrado de forma inesperada, normalmente o processo pai inicia um novo processo filho para substitu-lo. Porm, se um processo pai encerrado, normalmente o programa inteiro encerrado. Podemos observar essa organizao dos processos com o comando pstree (indisponvel em alguns sistemas). Para encerrar um processo, devemos primeiramente descobrir o seu nmero de identificao. Cada processo recebe do sistema, no momento em que iniciado, um nmero. Esse nmero chamado de PID (Process ID). Para descobrir o PID do processo usamos o comando ps -aux. Depois usamos o comando kill <PID> para matar o processo. Eis um exemplo: usuario@nti:/$ ps -aux <enter> USER PID %CPU %MEM TTY usuario 5431 0.0 0.0 pts/1 usuario 5760 12.0 80.0 ? STAT START TIME COMMAND S 11:00 0:00 -bash R 11:05 16:25 calc [kdeinit]

O processo calc (calculadora) parece estar consumindo muita memria. Para encerrar o processo da calculadora e com isso liberar 80% da memria, executaramos o seguinte comando: 9

usuario@nti:/$ kill 5760 Caso o comando acima no finalize a calculadora podemos enviar o sinal -9 para o comando kill de forma que ele encerre o processo de forma incondicional. O comando ficaria assim: usuario@nti:/$ kill -9 5760 Como um programa pode iniciar muitos processos, no seria nada produtivo encerrar todos os subprocessos um a um. O comando killall pode ser utilizado nesses casos. Por exemplo, para encerrar todos os processos com a string kcalc no campo COMMAND executaramos o seguinte comando: usuario@nti:/$ killall kcalc O comando killall pode receber o parmetro -9 da mesma forma que o comando kill.

2.6 Memria virtual


A memria virtual um recurso presente em todos os sistemas atuais. Ela consiste em simular memria RAM utilizando reas no disco rgido, denominadas de SWAP (troca). Esse recurso possibilita que mais programas possam ser executados simultaneamente mesmo que no haja memria fsica disponvel. Exemplificando: suponhamos que voc tenha um computador com 64 MB de RAM. Voc inicia o seu sistema operacional e l se vo 24 MB de sua memria. A, voc abre o navegador de internet que consome mais 30 MB e depois de achar algum artigo interessante sobre a origem das batatas voc resolve ouvir algumas msicas em MP3 enquanto degusta a leitura (e l se vo os 10 MB restantes). Ento voc lembra que tem que fazer um trabalho para a faculdade e abre o editor de textos. O que ocorre? Em um sistema sem memria virtual o seu editor de texto no abre alegando insuficincia de memria. Mas em um sistema com suporte memria virtual os dados dos processos do seu navegador vo para a rea de SWAP liberando 30 MB suficientes para abrir o seu editor de textos.

10

3 Comandos Bsicos
Abaixo uma listagem dos principais comandos necessrios para manipulao bsica do sistema na linha de comando.
Nota: Todos comandos abaixo so seguidos de <enter> e o -X (onde X representa uma letra qualquer) representa um parmetro. Um ou mais parmetros podem ser passados precedidos de espao, logo aps o comando e juntos, inclusive. Exemplo: comando -xyz <enter> ou comando -x -y -z <enter> (ambos executam a mesma coisa).

3.1 Manipulao de Arquivos ls lista o contedo do diretrio atual -l formato long, mostra informaes adicionais -a lista arquivos ocultos (arquivos ocultos no linux sempre comeam com um .) pwd indica o diretrio corrente cd dir muda para o diretrio 'dir' cd sem argumentos vai home do usurio corrente .. desce um diretrio (Se voc est em /home/usuario e o executa, voc vai para /home) ~ idem ao sem argumentos - volta para o diretrio anterior a mudana para o diretrio corrente Exemplos: a) Estou no diretrio /tmp e quero ir para o diretrio /etc/apt: cd /etc/apt ou cd ../etc/apt b) Agora quero voltar um diretrio antes do /etc/apt (que o /etc): cd .. c) Agora quero ir direto minha pasta home (/home/usuario): cd ou cd ~ d) Agora quero voltar para /etc: cd (perceba que o sistema pegou o ltimo diretrio no qual voc estava antes de ir para o diretrio atual
[/home/usuario]).

mkdir cria diretrios -p cria o(s) diretrio(s) pai(s), caso necessrio(s) 11

Exemplos: a) Estou no meu diretrio home (/home/usuario) e quero criar um diretrio chamado temp: mkdir temp b) Quero criar dentro de temp, um diretrio chamado teste e dentro de teste, um diretrio chamado outros: mkdir -p temp/teste/outros
Nota: Perceba que voc no criou o temp novamente, ao invs disso, voc especificou que dentro de temp haver um diretrio teste e com o parmetro '-p', voc disse para criar tambm o subdiretrio dentro de teste, chamando 'outros'.

rm remove arquivos e ou diretrios -r remove diretrios e seus contedos recursivamente (normalmente se utiliza para remover diretrios que contm arquivos) -f fora a remoo do arquivo (normalmente utilizado para suprimir a solicitao de confirmao) cp origem destino copia arquivos e diretrios -r copia diretrios recursivamente (normalmente utilizado para copiar um diretrio com o seu contedo) -a copia mantendo as permisses originais do arquivo/diretrio. mv origem destino move (renomeia) arquivos Exemplos: a) Mover o diretrio '/home/usuario/temp' para /media: mv temp /media b) Renomear o diretrio 'temp' para 'temporario': mv temp temporario
Nota: Perceba a hierarquia: No exemplo (a) 'temp' estava em /home/usuario e foi movido para /media, fora do subdiretrio usuario do diretrio /home (ou seja, fora de /home/usuario). J no exemplo (b), apenas renomeamos 'temp' para 'temporario' sem mudar sua localizao (o diretrio continuar no diretrio onde ele est, apenas mudar de nome). Nota: Nos itens (a) e (b), antes de efetuar os comandos citados, v ao diretrio especficado. Logo, para executar o item (a) o seu diretrio corrente deve ser /home/usuario e no item (b), /media.

ln [opes] destino nome_do_link cria links entre arquivos -s cria links simblicos -a compartilha o endereo fsico de um arquivo no disco 12

Exemplos: a) Estou no meu home e quero criar um link para /mnt/publico com o nome Publico: ln -s /mnt/publico Publico b) Estou na minha home e quero compartilhar o endereo de /opt/programa.bin: ln -a /opt/programa.bin
Nota: No item (b), caso voc delete o arquivo criado na sua home ou o arquivo em /opt, ambos sero destrudos, pois compartilham o mesmo endereo fsico no disco.

touch nome_arquivo cria (um arquivo em branco) ou atualiza informaes sobre o arquivo 'nome_arquivo' existente. cat concatena arquivos e imprime na tela (pode ser usado apenas para ver o contedo de um arquivo) -n numera a listagem. less permite fazer a leitura de um arquivo. tail / head imprime a ltima / primeira parte de um arquivo -n onde n o nmero de linhas do final / incio do arquivo que ser impressa -f imprime as informaes que esto sendo adicionadas ao arquivo conforme ele vai crescendo (til para monitorar atualizao de arquivos dinamicamente indisponvel para o head). locate arquivo tenta localizar no sistema de arquivos o arquivo e mostrar sua localizao. tar1, zip e rar utilitrios de arquivamentos (h outros tambm). Exemplos: a) Baixei um arquivo chamado fotos.tar.gz e quero descompact-lo: tar -xvzf fotos.tar.gz Ele descompactar no diretrio atual. tar -xvzf fotos.tar.gz -C <Caminho Diretrio> Descompactar em <Caminho Diretrio> 1 - Os parmetros servem para: x Extrao, v Verbose (mostra detalhes da extrao/compactao), f Arquivo comum, c Compactao,
z Tipo GZIP (.tar.gz) [Para tipos BUNZIP2 (.tar.bz2), use j ao invs do z].

13

b) Quero compactar em formato GZIP a pasta Documentos, que est na minha home: tar -cvzf documentos.tar.gz ~/Documentos c) Baixei um arquivo chamado teste.rar e quero descompact-lo: unrar e teste.rar Descompactar no diretrio atual. unrar e teste.rar <Caminho Diretrio> Descompactar em <Caminho Diretrio>.
Nota: O unrar no usa parmetros com o - como os demais.

d) Baixei um arquivo chama programa.zip e quero descompact-lo unzip programa.zip Descompactar no diretrio atual. unzip programa.zip -d <Caminho Diretrio) Descompactar em <Caminho Diretrio>. e) Quero compactar em formato ZIP a pasta Documentos, que est em minha home: zip -r documentos.zip ~/Documentos man <Comando> exibe um resumo do que o comando faz e explica os seus parmetros. Exemplo: Quero ajuda com o comando cp: man cp
Nota: Uma grande maioria dos comandos tem uma ajuda simplificada embutida, basta digitar comando --help (Exemplo: cp help)

Atividade 1
Busque por um comando que encontre o arquivo sources.list, de acordo com as seguintes especificaes: a) Busque em todo o sistema de arquivos a partir da /. b) Busque apenas no prprio tipo do sistema de arquivos. Qual dos itens acima o mais veloz? (a) ou (b)? Qual a localizao do arquivo?

14