Aula1 Linux UFF
-
Upload
thais-carvalho -
Category
Documents
-
view
215 -
download
0
description
Transcript of Aula1 Linux UFF
-
Treinamento InfoLAB
2011
softwarelivre.uff.br
-
Sumrio1 Introduo.......................................................................................................................3
1.1 Objetivos do Treinamento....................................................................................31.2 O que Software Livre.........................................................................................31.3 Vantagens do Software Livre...............................................................................4
2 O Sistema GNU/Linux....................................................................................................42.1 Hierarquia do Sistema de Arquivos Linux............................................................42.2 Organizao.........................................................................................................52.3 Funcionamento.....................................................................................................6
2.3.1 Usurios e Permisses ................................................................................62.4 Shell de Comandos / Terminal.............................................................................82.5 Programas residentes .........................................................................................92.6 Memria virtual ..................................................................................................10
3 Comandos Bsicos .....................................................................................................113.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 Pr-
Reitoria 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 prximo
(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
pr-requisito 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.
3
-
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.
4
-
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 subdiretrioslocalizados 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 Literal OctalLeitura r 4Escrita w 2
Execuo x 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.
7
-
PERMISSESUsurio Leitura Escrita Execuo
Dono Sim/No Sim/No Sim/NoGrupo Sim/No Sim/No Sim/NoOutros 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
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
8
-
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
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 para matar o processo. Eis um exemplo:
usuario@nti:/$ ps -aux
USER PID %CPU %MEM TTY STAT START TIME COMMAND usuario 5431 0.0 0.0 pts/1 S 11:00 0:00 -bash usuario 5760 12.0 80.0 ? 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 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 ou comando -x -y -z (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 umdiretrio 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 dosubdiretrio 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 Descompactar em
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 Descompactar em .
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