Anda di halaman 1dari 26

Departamento de Engenharia Electrotcnica

PROGRAMAO DE MICROPROCESSADORES
2015 / 2016

Mestrado Integrado em Engenharia Electrotcnica


e Computadores
1 ano
2 semestre

Trabalho n 1
Introduo ao Linux Kit de Sobrevivncia

Verso: 3.0

http://tele1.dee.fct.unl.pt/pm

Paulo da Fonseca Pinto


Luis Bernardo

ndice
1
2
3
4
5
6

Objectivos..............................................................................................................................3
Introduo..............................................................................................................................3
Antes do incio: Alguns conceitos teis ................................................................................4
O ambiente de trabalho (desktop) Ubuntu.............................................................................4
Gesto de Programas .............................................................................................................5
Tpicos avanados ..............................................................................................................11
6.1 O terminal .....................................................................................................................11
6.2 O sistema de ficheiros...................................................................................................12
6.2.1 Montar e desmontar dispositivos removveis ........................................................14
6.3 Segurana......................................................................................................................15
6.3.1 Conceitos Bsicos de Segurana ...........................................................................15
6.3.2 Permisses .............................................................................................................15
6.3.3 Utilizadores e grupos .............................................................................................15
6.3.4 Firewall..................................................................................................................16
7 Comandos e Conceitos Bsicos...........................................................................................16
7.1 Pginas de Manual ........................................................................................................18
7.2 Comandos sobre Diretorias ..........................................................................................18
7.3 Comandos sobre Ficheiros............................................................................................20
7.4 Outros comandos ..........................................................................................................25
8 O meu primeiro programa em C .........................................................................................25
8.1 Uso da Memory Stick ....................................................................................................25
8.2 O programa para saudar o Mundo ................................................................................25

Cada vez que este documento tiver uma modificao, a identificao da verso muda. O
critrio de mudana o seguinte:
Verso x.y
Em que
x

o primeiro dgito incrementado quando existirem mudanas de


substncia, i.e. melhoramentos tcnicos, correces, actualizaes, etc.

o segundo dgito incrementado quando apenas mudanas editoriais


forem incorporadas no documento.

1 Objectivos
O objectivo deste trabalho explicar o Linux, e o uso do sistema Xubuntu, em poucas
palavras.
A estrutura do documento a seguinte: Comea com uns conceitos teis seguidos da
descrio do ambiente de trabalho e da gesto de programas. Segue-se depois para tpicos
avanados apresentando-se o terminal, o sistema de ficheiros e alguns aspetos de segurana.
A segunda parte do documento contm uma sequncia de explicaes de comandos de
linha de uso prtico no Linux. Esta segunda parte foi escrita para ser realizada na primeira aula
de Laboratrio da disciplina de Programao de Microprocessadores.
Muita da informao constante neste documento foi retirada da seguinte referncia:
https://ubuntu-manual.org/
Este documento vai ter evolues ao longo do tempo consoante a disponibilidade de tempo
dos seus autores. No ser necessariamente no incio dos semestres. Assim, existe um
identificador da verso na pgina inicial.
A verso 2.0 deste documento (que pode obter no site da disciplina em anos anteriores)
contm uma descrio da verso da poca do Ubuntu.

2 Introduo
O sistema operativo Linux comea a ter uma grande popularidade fruto de diversas razes.
Entre elas est o facto de no existirem direitos de propriedade, ser muito menos atacvel por
vrus e ter o seu cdigo aberto. S estas trs razes j so suficientes para um futuro engenheiro
considerar francamente o seu uso.
A utilizao direta do Linux por alunos do 1 ano pode ser um pouco traumatizante, pois
um computador menos comum pode ter perifricos menos comuns e exigir um esforo muito
considervel na instalao de device drivers. Por exemplo, problemas destes podem ser
comuns: a minha placa grfica ainda no tem o device driver no software que descarreguei.
Como devo proceder? Assim, uma boa alternativa usar mquinas virtuais.
O uso de mquinas virtuais faz com que o sistema Linux fique completamente instalado
de um modo muito fcil pois todos os device drivers so do sistema anfitrio. No
entanto, as mquinas virtuais exigem computadores relativamente potentes.
O sistema operativo Linux tem duas grandes famlias de distribuio: Debian e Red Hat.
Dentro de cada famlia existem depois distribuies. Na Debian existem as distribuies
Ubuntu, Mint, Xandros e CrunchBang. Na famlia Red Hat existem as distribuies Fedora e
Mandriva.
A grande diferena entre estas duas famlias o sistema que usam para instalar e atualizar
programas (software). Estes sistemas so chamados de Package Management Systems, e so o
modo como se pode instalar, apagar e organizar o software instalado nos computadores. A
famlia Debian usa ficheiros deb, enquanto que o Red Hat usa ficheiros rpm. Estes dois
sistemas so incompatveis.
O Ubuntu tem uma interface grfica (o chamado desktop) baseada em unity7.
Anteriormente usava o gnome. O desktop um conjunto de elementos de software (cones,
cores, janelas, temas, menus, etc.) que determinam como interagimos com o computador.
Existem variaes do Ubuntu em que se modificaram o desktop por razes de preferncia ou
por razes de ligeireza para ter sistemas operativos menos exigentes em termos de hardware.
No caso de Programao de Microprocessadores vai-se usar o Xubuntu que usa o ambiente
grfico xfce.

3 Antes do incio: Alguns conceitos teis


O Unix (de onde o Linux originou) trouxe uma caracterstica muito interessante:
SIMPLICIDADE.
Havemos de ver isso ao longo desta explicao depois de passado o pnico de se estar a
utilizar um sistema novo e desconhecido.
O kernel (ncleo) o mago do sistema operativo Linux. o controlador do sistema
operativo e responsvel por alocar memria e tempo do processador. Controla a interface
entre os nossos programas e os perifricos, faz a gesto que permite que muitos programas
corram ao mesmo tempo no computador, e muitas outras tarefas.
O kernel no uma entidade independente. como se fosse uma quantidade de cdigo que
os nossos programas mandam correr quando chamam rotinas de sistema (system calls)
como por exemplo rotinas para ler do teclado ou escrever no ecr.
O kernel do Linux considerado monoltico no sentido em que inclui todos os device
drivers. No entanto, existe tambm a possibilidade hoje em dia de se terem device drivers que
so carregados e descarregados em memria atravs de comandos do utilizador.
Os ambientes de trabalho (desktop) atuais baseiam-se em ambientes grficos em vez da
linha de comando. Mas a linha de comando ainda consegue ser um meio de se executar tarefas
de um modo muito rpido e eficiente. Em Programao de Microprocessadores vamos ainda
dar importncia linha de comando.

4 O ambiente de trabalho (desktop) Xubuntu

O ambiente de trabalho
Xubuntu baseado no ambiente
grfico xfce. Est mostrado ao
lado e pode-se ver uma barra
horizontal, menu bar, e alguns
itens para identificao rpida.

A barra horizontal tem duas


partes: a parte direita chamada
de rea de indicaes (ou
notificaes) e contm, claro,
indicaes vrias:
Ativador de Bluetooth ( ) para ativar a interface Bluetooth.
Network indicator ( ) para gerir as ligaes de rede.
Sound indicator ( ) para o som.
Clock mostra as horas.

A parte da esquerda tem um boto que serve para lanar programas que estejam instalados
no computador. A carreg-lo aparece a janela que se encontra mostrada em baixo. Serve
tambm para terminar a sesso, desligar o computador e outras tarefas do gnero.

Esta janela bastante intuitiva no exigindo grande explicaes. Pode carregar no boto
direito do rato sobre um cone para o criar no ambiente de trabalho e ser mais fcil lan-lo no
futuro. O programa que serve para gerir os programas (instalar, apagar, etc) o Ubuntu
Software Center.

5 Gesto de Programas
Como se referiu na Introduo, o Ubuntu (e outras variaes de Linux) usam um conjunto
de ferramentas para gerir os programas, chamado de package management system, ou package
manager. Um sistema de gesto de pacotes tem uma base de dados de programas chamado de
repository, onde os programas individuais esto organizados em conjuntos designados de
packages (contm o software e muita outra informao como o nome, a verso, a descrio,
nome do vendedor, e uma lista de dependncias para a instalao).
O package management system do Ubuntu o Advanced Packaging Tool (APT).
Para se instalar novos programas existem dois modos de pesquisar repositrios:
Ubuntu Software Center
Comando de linha apt get
Aconselha-se o primeiro.
A seco anterior mostra como se comea o programa. A janela tem quatro seces:
1. uma lista de categorias esquerda,
2. um banner em cima;
3. um painel Whats new por baixo do banner com recomendaes de aplicaes
4. um painel de Top Rated.
Ao clicar numa categoria somos levados para uma lista de aplicaes relacionadas. Por
exemplo, a categoria Internet tem a aplicao de navegao na web Firefox.
5

As reas Whats
New e Top Rated
mostram
diferentes
cones de aplicaes.
Ao clicar neles
mostrada
mais
informao sobre a
aplicao ou a sua
instalao. Para ver
todo o software contido
na rea clique no boto
More
no
canto
superior direito do
painel. As trs seces
no topo representam a
sua vista atual do
catlogo do centro.
Clique
no
All
Software para ver
todo o software que
pode ser instalvel; ou clique no boto Installed para ver a lista do software que j est
instalado no seu computador; ou clique em History para ver as instalaes anteriores, e as
que foram apagadas (organizadas por datas).

5.1 INSTALAO E REMOO DE SOFTWARE


Para instalar um programa basta clicar no boto Install direita do pacote.
Para remover um programa usa-se tambm o Software Center. Pode-se ver todas as
aplicaes que foram instaladas carregando no boto Installed. Escolhido o programa a
remover, se se carregar na seta ao p do boto Installed aparece uma lista de fornecedores de
software que podem ajudar a reduzir a busca. Pode tambm usar a linha de procura (search).
Para remover:
1. Clica-se no boto Remove
2. Digitar a password.

5.2 RECOMENDAES DE SOFTWARE


O Ubuntu Software Center recomenda programas baseado nos programas que j esto
instalados no sistema. Quando se liga as recomendaes (no separador View), uma lista dos
programas que esto instalados enviada periodicamente para os servidores. As
recomendaes aparecem no painel.

5.3 GERIR OUTRO SOFTWARE


O Ubunto Software Center contm uma grande quantidade de software, mas apenas
contm os pacotes que so disponibilizados oficialmente pela distribuio Ubuntu. Por vezes
pode haver interesse em ter uma aplicao disponibilizada noutros repositrios. importante
perceber modos alternativos de acesso e instalao de software (manualmente, ou adicionando
um outro repositrio).

5.3.1 Fontes de Software


Novos repositrios podem ser adicionados ou removidos atravs da aplicao Software &
Updates a partir do separador Edit.

5.3.2 Gerir repositrios oficiais


Quando se abre a aplicao Software & Updates, v-se no separador Ubuntu Software
que as quatro primeiras opes esto ativas por omisso.
Canonical-supported free and open source software (main) este repositrio contm
todas os pacotes open source mantidas pela Canonical.
Community-maintained free and open-source software (universe) este repositrio
contm todos os pacotes open source desenvolvidos e mantidos pela comunidade
Ubuntu.
Proprietary drivers for devices (restricted) este repositrio contm drivers
proprietrios que podem ser necessrios para se poder tirar todo o partido de
perifricos do nosso computador.
Software restricted by copyright or legal issues (multiverse) este repositrio contm
software provavelmente protegido em alguns estados ou pases por leis de proteo de
propriedade intelectual.
Source code este repositrio contm cdigo fonte usado para construir pacotes de
software de alguns dos outros repositrios. Construir aplicaes a partir destas fontes
um processo avanado de criar pacotes, e normalmente s interessa a
7

implementadores. Esta opo no deve estar selecionada a no ser que se tenha


experincia em construir aplicaes a partir de cdigo fonte.

5.3.3 Selecionar o melhor servidor


O Ubuntu d permisso a muitos servidores pelo mundo para servirem como espelhos
oficiais que contenham cpias exatas de ficheiros contidos no repositrio oficial. Isto serve para
distribuir aplicaes e software de um modo mais simples. Quando se seleciona um servidor
deve-se ter em ateno ao seguinte:
1. Distncia ao servidor
2. Provedor do servio de Internet
3. Qualidade do servidor
O Ubuntu escolhe automaticamente o servidor na instalao. recomendado que estas
configuraes no sejam modificadas a no ser que a ligao fsica do computador tenha sido
muito alterada. O Ubuntu tem uma ferramenta para selecionar o servidor que fornece a ligao
mais rpida com o computador.

1. Clicar na caixa ao p de Download from: na janela Software & Updates.


2. Selecionar Other da lista
3. Na janela Choose a Download Server clicar no boto Select Best Server no canto
superior direito. O computador vai tentar uma ligao com cada um dos servidores
disponveis, e selecionar aquele que tiver uma velocidade maior.
Se se estiver contente com a seleo automtica, clicar em Choose Server para retornar
para a janela de Software & Updates. Se no se estiver contente, ou se se preferir no usar a
ferramenta, o servidor mais rpido normalmente o mais perto geograficamente. Neste caso,
escolher Other e escolher o mais perto. Quando estiver contente com a seleo, escolher
Choose Server para retornar janela Software & Updates.

5.3.4 Adicionar mais repositrios


fcil instalar repositrios de terceiros. Os repositrios mais comuns adicionados ao
Ubuntu so designados por ppas (Personal Package Archive). So repositrios on-line usados
para guardar a ltimas verses de pacotes de software, projetos digitais ou outras aplicaes.
So usados tambm para instalar software que no est disponvel nos repositrios oficiais, ou
para sermos notificados quando h atualizaes para estes pacotes.
Se se souber o endereo web de um site que tenha uma um Launchpad ppa, adicion-lo
lista de fontes de software simples: usar o separador Other Software na janela Software &
Updates. No Launchpad site ver um cabealho esquerda chamado Adding this PPA to your
8

system. Por baixo tem um pargrafo contendo um url na forma ppa:test-ppa/example.


Selecione-o com o rato e selecione cpia com o boto direito do rato.
Voltar janela Software & Updates e no separador Other Software clicar em Add..:
em baixo. Aparece uma nova janela com as palavras Apt line: seguidas de um campo de
texto. Clicar o boto direito do rato no espao vazio deste campo e selecione Paste. Vai
aparecer o url que copiou do Launchpad ppa. Clicar em Add Source para retornar janela
Software & Updates. Vai aparecer uma nova entrada na lista de fontes com uma caixa de
seleo selecionada (est ativa). Se clicar Close no canto inferior direito desta janela aparece
uma mensagem informando que The information about available software is out-of-date. Isto
acontece porque se acabou de adicionar o novo repositrio e preciso ligar-se a ele para
descarregar a lista de pacote de que dispe. Clicar em Reload e esperar enquanto o Ubuntu
faz o refrescamento de todos os repositrios que esto ativos. Quando acabar a janela fecha
automaticamente.
Parabns, acabou de adicionar um ppa lista das fontes. Agora abrir o Ubuntu Software
Center e instalar aplicaes deste ppa do mesmo modo como se instalam aplicaes dos
repositrios Ubuntu.
A figura em baixo mostra um exemplo de uma pgina Launchpad para o Ubuntu Tweak
PPA. O Ubuntu Tweak uma aplicao que no est disponvel nos repositrios oficiais da
Ubuntu. Porm, ao adicionar este PPA nossa lista de fonts, fcil instalar e atualizar pacotes
atravs do Software Center.

5.3.5 Instalao manual de software


Se o pacote que se pretende instalar no est em nenhum repositrio tem de se fazer uma
instalao manual. importante ter a garantida que se confia no software e no mantedor dele.
Os pacotes tm a extenso .deb. Se se fizer um clique duplo o pacote abre uma pgina de
overview no Ubuntu Software Center que d mais informao sobre o pacote. Tem informao
tcnica, um link a um stio web, e a opo de instalar. Ao clicar Install, instala-se o pacote do
mesmo modo de outra qualquer aplicao no Ubuntu Software Center.
A figura em baixo mostra a instalao manual de ficheiros .deb usando o centro de
software.
9

5.4 UPDATES AND UPGRADES


O Ubuntu permite que o Utilizador decida quando quer fazer as atualizaes atravs do
separador Updates na janela Software & Updates.

5.4.1 Ubuntu updates


possvel especificar o tipo de atualizaes que queremos instalar no nosso computador.
O tipo depende normalmente na nossa escolha entre termos um Sistema estvel e termos acesso
aos ltimos desenvolvimentos. A aplicao a usar o Software Updater e est mostrado em
baixo.

10

Important security updates (trusty-security) Estas atualizaes so altamente recomendadas


para assegurar que o sistema se mantm to seguro quanto possvel. Esto ativas por
omisso.
Recommended updates (trusty-updates) Estas atualizaes no so to importantes em manter o
Sistema seguro. Porm, elas mantm o fostware atualizado com as mais recentes
correes de bugs, or atualizaes menores que foram testadas e aprovadas. Tambm
est ativas por omisso
Pre-released updates (trusty-proposed) Esta opo para aqueles que preferem estar
atualizados com o risco de instalar uma atualizao ainda com possveis bugs e
conflitos. Ateno que pode encontrar problemas com algumas atualizaes. No est
ativa por omisso.
Unsupported updates (trusty-backports) So atualizaes que ainda no esto completamente
testadas e revistas pela Canonical. Podem ocorrer alguns bugs e por isso tambm no
est ativa por omisso.

5.4.2 Automatic updates


A parte do meio da janela permite personalizar como o sistema gere as atualizaes, tais
como, a frequncia com que verifica se existe pacotes novos, ou se deve instalar pacotes
importantes imediatamente (sem perguntar pela nossa permisso), descarreg-los apenas, ou
simplesmente notificar que eles existem.

5.4.3 Release upgrade


Na parte de baixo do separador Updates da janela Software & Updates existe uma
caixa com o nome Notify me of a new Ubuntu version:. Esta opo serve para indicar ao
Sistema como queremos tratar atualizaes do sistema. Tem as seguintes opes:
Never escolhe-se esta opo se no se quiser ser notificado sobre novas verses do
Ubuntu.
For any new version escolhe-se esta opo se se quiser ter sempre a ltima verso do
Ubuntu, quer ela seja uma verso de longo termo, ou no. Esta opo
recomendada para utilizadores domsticos.
For long-term support versions escolhe-se esta opo se se quiser uma verso que seja
mais estvel e com suporte por um perodo mais longo. recomendada para
propsitos profissionais
A Canonical produz uma verso do Ubuntu a cada seis meses. Normalmente cada
verso destas uma verso normal. Porm, a cada 4 verses (dois anos) a
Canonical produz uma verso de longo termo (lts long term support). Estas
verses tm o objetivo de serem mais estveis e suportadas por perodos de tempo
mais longos. O Ubuntu 14.04 uma verso LTS. O Ubuntu 14.10 uma verso
normal.

6 Tpicos avanados
6.1 O TERMINAL
O terminal permite fazer tarefas sem usar a parte grfica. Tem um papel equivalente
interface grfica e possui uma interface de comando de linha command-line interface (CLI).
Para se abrir um terminal use a aplicao Terminal Emulator do lanador de aplicaes.
Existe um programa que l o que se escreve no terminal e interpreta o que se escreveu. O nome
desse programa shell. Existem vrias shells diferentes (cada uma com comandos ligeiramente
11

diferentes). A mais popular chama-se bash (basic shell). Quando se abre um terminal aparece
um texto, chamado de prompt, seguido de um bloco a piscar chamado de cursor. O texto do
prompt pode ser parametrizado mas geralmente contm o nome do utilizador, o nome do
computador, e o nome da diretoria onde se est. No caso de se estar na diretoria base do
utilizador (a home, ver em baixo) aparece um til (~).
Escreva o comando pwd (print working directory).
Vai aparecer a diretoria corrente /home/yourusername (/home/student).
Alguns comandos necessitam de mais informao. Esta informao suplementar chama-se
parmetros e um deles, muito til, pedir mais informao sobre o comando help ou help. Quase todos os comandos devolvem algum texto, mas existem alguns que no devolvem
nada e apenas aparece novamente o prompt. Um exemplo de um comando que no devolve
texto o cd.

6.2 O SISTEMA DE FICHEIROS


O sistema de ficheiros e os dispositivos de armazenamento (discos, memrias USB, CDs,
diskettes, etc.) tiveram ao longo dos anos uma estrutura complicada que o Unix veio simplificar
muito.
Os sistemas Windows, por exemplo, tm uma forma conhecida de identificar os
dispositivos de armazenamento e as parties neles usadas:
A: floppy disk
B: floppy disk
C: hard disk
D: hard disk
E: Memory Stick
Etc. etc. etc.
Pode-se alargar o pensamento e pensar noutro tipo de dispositivos, que tiveram um
tratamento prprio. Por exemplo, o rato, a ligao de rede, etc.
O Linux simplificou muito estas duas realidades (sistema de ficheiros e dispositivos): tudo
tratado do mesmo modo so apenas dispositivos, ou devices. E os programas para os gerir e
comunicar com eles, os chamados device drivers, esto todos numa pasta chamada /dev. Por
exemplo, o ficheiro /dev/mouse contm o programa para controlar o rato. Para os dispositivos
de armazenamento existe um nome para o dispositivo e depois cada dispositivo pode ter vrias
parties.
No Windows as coisas so um bocadinho mais confusas pois no se sabe partida se duas
parties esto no mesmo dispositivo ou no. Por exemplo as parties C: e D: podem estar no
mesmo disco fsico, ou no.
No Linux podemos ter os seguintes nomes para os dispositivos (Ao longo do tempo, e
dependendo das vrias distribuies de Linux, estes nomes podem variar ligeiramente).
Device

Nome

Primeiro floppy
Segundo floppy
Primeiro disco (disco todo)
Primeiro disco, partio 1
Primeiro disco, partio 2
Primeiro disco, partio 3

/dev/fd0
/dev/fd1
/dev/hda
/dev/hda1
/dev/hda2
/dev/hda3

Segundo disco (disco todo)

/dev/hdb
12

Windows
A:
B:
C:
D:
E:

Segundo disco, partio 1


Segundo disco, partio 2
Segundo disco, partio 3

/dev/hdb1
/dev/hdb2
/dev/hdb3

Primeiro disco SCSI (disco todo)


Primeiro disco, SCSI partio 1
Primeiro disco, SCSI partio 2
Primeiro disco, SCSI partio 3

/dev/sda
/dev/sda1
/dev/sda2
/dev/sda3

Segundo disco SCSI (disco todo)


Segundo disco, SCSI partio 1
Segundo disco, SCSI partio 2
Segundo disco, SCSI partio 3

/dev/sdb
/dev/sdb1
/dev/sdb2
/dev/sdb3

Primeiro disco SCSI CD-ROM


Segundo disco SCSI CD-ROM

/dev/scd0
/dev/scd1

Primeiro dispositivo SCSI genrico (do /dev/sga


tipo scanners, impressoras, etc.)
Segundo dispositivo SCSI genrico
/dev/sgb
Podem
/dev/sg0

ser
nmeros
/dev/sg1

O Ubuntu usa o sistema de ficheiros Linux que baseado numa srie de diretorias a partir
da diretoria raiz (root). Estas diretorias contm ficheiros de sistema que no devem ser
alterados a no ser pelo superutilizador (root), ou pelo uso do comando sudo. Esta condio
existe para nossa segurana. Por exemplo, vrus no podero modificar ficheiros importantes, e
um utilizador normal no consegue tambm modifica-los.

O sistema de ficheiros comea na diretoria raiz (/). Ela contm outras diretorias e ficheiros
de sistema. Existem as seguintes diretorias importantes:
13

/bin e /sbin
/etc
/home
/lib
/media
/root
/usr
/var/log

contm aplicaes essenciais (como o C:\Windows)


contm ficheiros de configurao genricos do sistema
cada utilizador tem aqui uma subdiretoria para guardar os seus ficheiros
pessoais (por exemplo, /home/pm que equivalente ao C:\Users ou ao
C:\Documents and Settings
ficheiros de biblioteca, semelhantes aos ficheiros .dll do Windows
meios removveis (CD-ROMs e dispositivos USB) so montados nesta
diretoria
contm os ficheiros de root (no confundir com a diretoria root).
contm a maioria dos ficheiros dos programas (no confundir com a
diretoria que contm os ficheiros dos utilizadores). equivalente
diretoria C:\Program Files do Windows.
contm ficheiros de log escritos por muitas das aplicaes

Cada diretoria tem um caminho (chamado de path). O path o nome completo da diretoria
descreve o modo como se navega para a diretoria de qualquer posio no sistema. Por
exemplo, /home/pm/Desktop contm todos os ficheiros que esto no Desktop do Ubuntu. Podese olhar para este path e dividi-lo em vrias partes:
/
home/
pm/
Desktop/

indica que o path comea na diretoria root


a partir da diretoria root, o path vai para a diretoria home.
a partir da diretoria home, o path vai para a diretoria pm.
a partir da diretoria pm, o path finaiza na diretoria Desktop.

Cada diretoria do Ubuntu tem um path complete que comea com / e acaba com o nome da
prpria diretoria.
Ficheiros e diretorias que comeam com um ponto (.) esto escondidas. Estas diretorias e
ficheiros s so visveis com um comando especial, ou selecionando-se uma opo especfica.
No gestor de ficheiros Files pode-se ver os ficheiros ocultos selecionando-se a opo no boto
View Options que est colocado na parte superior direita da janela (seleciona-se a Show
Hidden Files). Se estiver a usar um terminal faz-se o comando ls a para ver todos os ficheiros
e diretorias. Existem muitos ficheiros ocultos na diretoria home que so usados para guardar
preferncias de programas. Por exemplo, /home/pm/.thunderbird guarda as preferncias usadas
pela aplicao de correio thunderbird.

6.2.1 Montar e desmontar dispositivos removveis


A qualquer momento pode incorporar um dispositivo de armazenamento no sistema um
disco interno ou externo, uma flash drive USB, um CD-ROM. Ora ele tem de ser montado
antes de poder ser acedido. Montar um dispositivo significa associar um nome de diretoria ao
dispositivo, permitindo assim navegar para ele para aceder aos seus ficheiros.
Quando um dispositivo como uma flash drive USB, ou um reprodutor de msica,
montado no Ubuntu, uma diretoria criada automaticamente para ele na diretoria media, e so
dadas as permisses apropriadas para se conseguir ler e escrever no dispositivo.
A maioria dos sistemas de gesto de ficheiros adicionam um shortcut (atalho) ao
dispositivo montado na diretoria home do utilizador ou no seu Desktop para que o dispositivo
possa ser acedido de um modo fcil.
Claro que se pode sempre navegar para l a partir da linha de comando no terminal.
Quando se acabou de usar o dispositivo, deve-se desmont-lo. Desmontar um dispositivo
separa a relao do dispositivo com a diretoria, permitindo que se ejete o dispositivo. Se

14

desligar o dispositivo, ou remov-lo, antes de o desmontar, pode perder dados que ainda no
forma realmente escritos nele.

6.3 SEGURANA
6.3.1 Conceitos Bsicos de Segurana
As seces seguintes descrevem conceitos bsicos de segurana, como permisses de
ficheiros, passwords (palavras chave), e contas de utilizadores.

6.3.2 Permisses
No Ubuntu, ficheiros e diretorias podem ser configurados para que apenas certos
utilizadores os possam ver, modificar, ou correr. Por exemplo, pode querer partilhar um
ficheiro importante com outros utilizadores, mas no quer que esses utilizadores possam editar
o ficheiro. O Ubuntu controla o acesso aos ficheiros no seu computador atravs de um sistema
de permisses. Permisses so disposies (configuraes) que servem para controlar
exatamente o modo como os ficheiros podem ser acedidos e usados.

6.3.3 Utilizadores e grupos

6.3.3.1 Contas de utilizadores


Quando o Ubuntu se instala, fica configurado automaticamente para um nico utilizador.
Se se quiser novos utilizadores tem de se criar uma conta nova. Cada utilizador tem as suas
configuraes separadas, assim como os seus documentos e outros ficheiros. Se necessrio
pode-se mesmo proteger os ficheiros de serem vistos ou modificados pelos outros utilizadores
que no tenham privilgios de administrador.
Tal como os outros sistemas operativos, o Ubuntu permite a criao de novos utilizadores.
Permite tambm criar grupos de utilizadores, que possibilitam a gesto de permisses para
muitos utilizadores (os pertencentes ao grupo) ao mesmo tempo.
Cada utilizador no Ubuntu membro de pelo menos um grupo. No mnimo, o utilizador do
computador tem permisses no grupo com o mesmo nome do utilizador (pm, pm).
Pode configurar ficheiros e diretorias para serem acedidas apenas por um utilizador e/ou
um grupo. Por omisso, os ficheiros de um utilizador s so acessveis por esse utilizador e os
ficheiros de sistema s so acessveis pelo utilizador root.

6.3.3.2 Gesto de grupos


A gesto de grupos feita atravs do comando de linha (Terminal), ou atravs de
aplicaes que no so distribudas com o Ubuntu. Ver adiante alguns exemplos.
Adicionar um grupo Para adicionar um grupo, escreva sudo addgroup groupname na
linha de comando. Por exemplo, a instruo sudo addgroup pmstudents adiciona o grupo
pmstudents lista de grupos existentes.
Modificar um grupo Para alterar os utilizadores num grupo, escreva sudo adduser
username groupname na linha de comando para adicionar um utilizador, ou sudo deluser
username groupname para remover um utilizador desse grupo.
Remover um grupo Para remover um grupo, escreva sudo delgroup groupname na
linha de comando.
15

6.3.3.3 Atribuir grupos a ficheiros e diretorias


Para modificar o grupo associado a um ficheiro ou a uma diretoria, abra o gestor de
ficheiros e navegue para esse ficheiro ou diretoria. Depois, selecione a diretoria e clique no
boto gears na parte superior direita da janela, escolha Properties, ou faa tudo isto com o
boto direito do rato selecionando tambm Properties. Na caixa de dilogo de Properties,
clique em Permissions e selecione o grupo que pretende a partir da lista de grupos. Feche
depois a janela.
Usar a linha de comando
Pode-se tambm modificar o utilizador e o grupo atravs da linha de comando. Veja
exemplos na seo seguinte.

6.3.4 Firewall
A Firewall uma aplicao que protege o computador contra acessos no autorizados
atravs da rede Internet, ou da rede local. As Firewalls bloqueiam ligaes ao computador que
venham de origens desconhecidas. Deste modo consegue-se prevenir buracos de segurana.
O programa standard do Ubuntu para a firewall chama-se Uncomplicated Firewall
(UFW). Corre a partir da linha de comando, mas um programa chamado Gufw permite
configur-lo atravs de uma interface grfica.
Pode instalar esse programa.
Uma vez instalado, arranque com o Gufw. Para permitir a firewall selecione a opo
Enable. Por omisso, todas as ligaes de entrada so negadas. Esta configurao deve ser a
indicada para muitos dos utilizadores.
Se estiver a correr um servidor no sistema Ubuntu (como um servidor de web, ou um
servidor ftp) ento necessrio abrir portas para serem usadas por esses servios. Se no
necessitar de correr esses servidores, no necessita de abrir portas adicionais.
Para abrir uma porta clique no boto Add. Para a maioria dos propsitos, a opo
Preconfigured a adequada. Selecione Allow da primeira caixa e depois selecione o programa
ou servio que quer.
A opo Simple pode ser usada para permitir acesso a uma nica porta, e a Advanced
pode ser usada para permitir acesso a uma gama de portas.

7 Comandos e Conceitos Bsicos


Esta seco vai descrever vrios comandos de linha do sistema Linux. O objectivo
ensinar os alunos a utilizar a janela de Linux e a pouco e pouco conseguir fazer tarefas
importantes para PM a partir da linha de comando. Os comandos que vo ser descritos podemse dividir em quatro grupos. A tabela seguinte resume os comandos a abordar. Nesta verso do
documento o ltimo grupo no ser coberto. As imagens desta seco so as do Ubuntu com o
Unity. Por esta altura, esta diferena j no deve causar problemas aos alunos.
Diretorias
pwd
cd
mkdir
rmdir
Ficheiros
ls

Mostra a diretoria onde se est print working directory


Muda de diretoria change directory
Cria uma diretoria make directory
Apaga uma diretoria remove directory
Lista os ficheiros de uma diretoria list
16

ls -lah
mv
cp
rm
cat
more
less
Manual
man
Outros
whoami
who
ps
CONTROL C
CONTROL Z

fg
bg
kill
jobs

O mesmo do que o anterior em que se reala o uso de opes


Muda um ficheiro de stio, ou muda-lhe o nome move
Copia um ficheiro copy
Apaga um ficheiro remove
Lista o contedo de um ficheiro concatenate
Lista o contedo de um ficheiro de um modo mais sofisticado
Lista o contedo de um ficheiro de um modo ainda mais sofisticado

Mostra pginas do manual


Mostra quem este utilizador
Mostra todos os utilizadores que esto em sesso
Mostra os processos que esto a correr
Interrompe o programa activo associado ao teclado (foreground)
Pra um programa, deixando parado em background (sem receber eventos
do teclado)
Passa um programa parado em background a foreground
Corre um programa parado em background (sem teclado)
Pra um processo identificado pelo nmero de processo
Lista programas a correr numa consola

Comece ento por colocar o seu monitor com cinco janelas como mostra a figura em
baixo. Para simplificar a explicao vo-se dar nmeros de identificao s janelas. A janela
zero a janela do terminal e as outras quatro so do gestor do sistema de ficheiros. Coloque
todas as janelas do gestor do sistema de ficheiros na diretoria /home/Documents, como est
mostrado.

17

7.1 PGINAS DE MANUAL


O sistema operativo Linux oferece ao utilizador um manual completo de programador,
utilizador e administrador com todas as funes que podem ser utilizadas, desde comandos de
linha a funes de biblioteca disponibilizadas pela biblioteca do C explicando os seus
parmetros e opes.
Sempre que tiver dvidas sobre alguma coisa do Linux tente ler o
manual. Nos primeiros tempos vai ser difcil perceber o tipo de texto e o
modo como est escrito pois o manual assume que as pessoas sabem j
bastante de Linux. A pouco e pouco vai-se habituando. Lembre-se que
na sua vida profissional vai ter de aprender muito por si s.
Este manual est organizado em pastas numeradas de 1 a 9: na pasta 1 esto os comandos
da linha de utilizador; na pasta 2 esto a system calls, na pasta 3 est a maior parte das funes
da biblioteca da linguagem C, e por a adiante (a pasta 5 tem os formatos dos ficheiros e a pasta
8 os comandos de administrao de sistema, por exemplo). Pode-se aceder a este manual
utilizando o comando man, seguido do nmero de pasta, e do nome do comando.
Tente ver a explicao para um comando de linha muito simples: o comando pwd que
mostra o nome da diretoria onde se est.
Para isso execute o seguinte comando e veja se consegue perceber o que l est escrito.
man pwd

Para sair carregue em q de quit.


s vezes tem de se escrever mesmo a pasta em que queremos que o manual encontre a
entrada, pois pode haver mais do que uma entrada possvel (por exemplo, uma funo de C e
um comando de linha com o mesmo nome). Assim, neste caso, pode tambm escrever
man 1 pwd

Se quiser ver as entradas que existem para o man (isto , a que palavras o man responde)
use a janela 1 para ir ver os ficheiros nas diretorias /usr/share/man/manN em que N a pasta
respetiva (comece por usar a tab Sistema de Ficheiros). No se assuste com o nmero de
entradas!...

7.2 COMANDOS SOBRE DIRETORIAS


Nos comandos sobre diretorias, vamos comear mesmo com o pwd pois j sabe o que ele
faz por ter lido a pgina do manual na seco anterior. Na janela 0 faa ento
pwd

Vai aparecer qualquer coisa do gnero


/home/pm

Vamos agora comear a criar qualquer coisa. Vamos mudar para a diretoria Documents.
Na janela 0 faa o comando:

18

cd Documents

Isto faz com que agora a diretoria onde estamos a Documents. Repare que no prompt j
no aparece simplesmente o til, mas agora aparece ~/Documents. Vamos copiar um ficheiro
para se ter alguma coisa. O comando seguinte copia o ficheiro que contm as passwords dos
utilizadores do sistema para a diretoria Documents. Repare como ele aparece nas vrias janelas.
cp /etc/passwd .

Para criar uma diretoria nova, chamada primeiro, nesta diretoria Documents, faa
mkdir primeiro

e observe que a pasta aparece nas outras janelas. O comando mkdir (make directory) cria uma
diretoria. Vamos mudar para l na janela do terminal. J no seria preciso dizer, mas faa
cd primeiro

Repare no prompt com a indicao de onde estamos. J estamos dentro da pasta primeiro,
como pode tambm verificar fazendo pwd. Crie agora uma nova pasta a chamada de
segundo. Mude depois para essa pasta e crie uma diretoria chamada de terceiro.
Coloque agora as janelas 1, 2, 3, e 4 do seguinte modo: Janela 1 fica em Documents; janela
2 na diretoria primeiro (tem apenas uma pasta chamada segundo); janela 3 na diretoria
segundo (tem apenas uma pasta chamada terceiro); janela 4 na diretoria terceiro (no tem
nada). A figura abaixo mostra o que se pede.
Como ltima actividade desta seco faa o comando seguinte na janela 0
cd

O que aconteceu? Faa pwd na janela para ver o que aconteceu e depois se tem dvidas
leia a nota de p de pgina1.
Falta testar o comando rmdir que apaga pastas/diretorias. No se faz aqui nenhum
exerccio pois precisamos das diretorias que foram criadas.

O comando cd sem mais nada faz com que a diretoria de trabalho volte a ser a diretoria base. s vezes
importante para se ir diretamente para l.
19

7.3 COMANDOS SOBRE FICHEIROS


O que est numa diretoria? Nas janelas de 1 a 4 v-se bem quais so os ficheiros. Vamos
ver na janela 0 Mude a janela 0 para Documents.
Nessa janela execute o seguinte comando
ls

A resposta o ficheiro primeiro que uma pasta, e o ficheiro passwd. Repare nas cores
diferentes em que so apresentados.
O comando ls tem a possibilidade de colocarmos opes e com isso saber mais coisas. Um
modo de se saber as opes possveis usarmos o manual
man ls

Faa ento o comando ls com as opes l e a, de long e de all. As opes escrevem-se


depois de um hfen.
ls -la

Agora j aparece qualquer coisa como o seguinte

20

importante perceber o que est escrito, mas antes veja a figura abaixo para a explicao
de alguns campos.

Vendo agora a janela 0 l de cima repare que existem duas diretorias especiais: uma
chamada de ponto . e outra chamada de ponto-ponto .. J se vem tambm o ficheiros
passwd e a diretoria primeiro.
A diretoria ponto representa a prpria diretoria. Neste caso a diretoria atual (Documents).
A diretoria ponto-ponto representa a diretoria imediatamente acima desta. Se fizer cd pontoponto vai para essa diretoria (/home/pm).
cd ..

Volte diretoria Documents.

21

A figura seguinte mostra o significado das letras que esto esquerda. Elas representam as
permisses que o ficheiro (ou diretoria) tem. Como se pode ver existem trs grupos: dono,
grupo e outros (world). Para cada grupo existem trs campos: leitura, escrita, execuo. Por
exemplo, no caso do ficheiro mostrado o dono tem permisso para ler (ver), para mudar
(escrever ou apagar) e para correr este ficheiro como se fosse um programa. Estamos perante
um ficheiro executvel. Os outros utilizadores que pertencem ao mesmo grupo do dono do
ficheiro podem ver e correr este ficheiro mas no podem mudar (escrever ou apagar). O mesmo
acontece para os outros que so todos os utilizadores que no so o dono nem os do grupo do
dono. Pode-se mudar as permisses de um ficheiro com o comando chmod. Pode-se mudar o
dono de um ficheiro com o comando chown.

Vamos agora criar ficheiros em vrios locais. Como ainda no sabemos realmente escrever
ficheiros que faam sentido vamos usar o ficheiro passwd que j foi copiado. Note que o
propsito perceber os comandos de manipulao de ficheiros, e no propriamente o que os
ficheiros contm.
Relembrando, a janela 0 est na diretoria Documents. Faa ento o seguinte comando
cp passwd banana

Este comando copiou o ficheiro passwd para outro ficheiro com o nome de banana. Se
fizer ls la pode verificar isso, mas tambm pode verificar na janela 1. Os ficheiros so
iguais. Um modo de vermos isso vermos o que o ficheiro contm. Para isso use o seguinte
comando
cat passwd

e depois
cat banana

Deve ter percebido que o ficheiro passou to depressa que no deu para ver o incio. Um
modo de controlar mais as coisas usar more em vez de cat. O more mostra um ecr de cada
vez e quando tocamos na barra de espao passa para o ecr seguinte. Se quisermos ver linha a
linha use o Enter. Quando quiser sair carregue em q de quit.
Outro programa mais potente do que o more o less que faz o mesmo que o more e mais
ainda pois permite andar um ecr para trs quando se prime a tecla b de back. As pginas
do manual usam o less. Faa ento
22

less banana

Podemos mudar o nome do ficheiro banana. Faa o seguinte comando


mv banana bacano

e verifique na janela 1 a alterao. Agora vamos criar um ficheiro dentro da diretoria primeiro.
Faa o seguinte comando na janela 0 e repare na janela 2.
cp bacano primeiro/tomate

J agora para aprender uma utilizao do ponto . faa o seguinte comando


cp primeiro/tomate .

Olhe para as janelas 1 e 2 e veja o que aconteceu. Qual o significado do ponto neste
comando? Se no percebeu pergunte ao docente.
Faa agora a seguinte sequncia de comandos mostrada abaixo na janela 0. J agora saiba
que o Unix e o Linux foram desenhados por pessoal que entendia o esforo mnimo como
um lema de vida. Nos comandos seguintes faa uma coisa quando os est a escrever.
Depois de escrever as primeiras letras dos nomes das diretorias ou dos
ficheiros carregue em Tab (->|) em vez de escrever o resto das letras.
cp tomate primeiro/segundo/limo
cp tomate primeiro/segundo/terceiro/manga

O ecr deve estar como mostra a figura.

23

Vamos ento aprender a apagar coisas. Mude a diretoria de trabalho na janela 0 para a
diretoria segundo. J agora escreva sempre a primeira letra e Tab. Temos de ser preguiosos
para honrar o esprito do Linux!...
Vamos ento apagar a diretoria terceiro com o comando rmdir. Faa o seguinte comando
rmdir terceiro

O que aconteceu? A diretoria no foi apagada pois no estava vazia. Tinha l um ficheiro
o ficheiro manga. Podemos fazer duas coisas.
1) Forar o comando a apagar diretorias no vazias por meio da escolha de uma opo (vai
ter de aprender qual essa opo com o man);
2) Apagar todos os ficheiros da diretoria antes de a apagar a ela (ficam apenas os ficheiros
ponto e ponto-ponto).
Vamos fazer esta segunda hiptese pois assim vamos usar o comando rm.
A diretoria onde estamos a de cima. Assim podemos apagar o ficheiro manga a partir
daqui (mostrado em baixo esquerda), ou ir para a diretoria de baixo, apagar o ficheiro, e
voltar para cima (mostrado em baixo direita).
cd terceiro
rm manga
cd ..

rm terceiro/manga

Agora sim, podemos apagar a diretoria.


rmdir terceiro

Para ver se j domina isto tudo, apague todos os ficheiros e diretorias que acabmos de
criar sempre a partir da janela 0. No final o ecr deve estar assim:

24

7.4 OUTROS COMANDOS


Esta seco ser escrita proximamente.

8 O meu primeiro programa em C


8.1 USO DA MEMORY STICK
As reas no laboratrio 1.1-X so apagadas depois de cada aula terminar. Assim, os alunos
tm de guardar os seus programas nas chamadas Memory Sticks com interface USB (flash drive
USB) que em Portugal so conhecidas pelo nome bem Portugus de PEN.
Podem tambm enviar os programas por mail para vocs mesmo
Se estivssemos a usar Windows, quando introduzimos o dispositivo na interface USB o
sistema operativo reconhece-o. O mesmo acontece no mundo Linux e o dispositivo montado
na diretoria /media/USB DISK.
tudo o que preciso saber. Agora fcil copiar os ficheiros para a Memory Stick e
guard-los para a prxima aula. Se quiser fazer as coisas de um modo grfico, use as janelas do
Ubuntu

8.2 O PROGRAMA PARA SAUDAR O MUNDO


Nesta seco vai-se fazer um primeiro programa em C. O objectivo ensinar como se usa
o compilador de C.
Comece por arrancar o editor de texto e escreva o seguinte programa
#include <stdio.h>
main ()
{
printf ("Ol Mundo\n");
}

Guarde este ficheiro na diretoria Documents com o nome ola.c. Na janela 0 compile
ento o programa. Para isso faa o seguinte comando
gcc o ola ola.c

A opo -o do compilador serve para indicar ao compilador qual o nome que queremos
para o ficheiro de sada o ficheiro executvel. Verifique com o comando ls la que o ficheiro
que queramos foi criado.
Podemos ento correr o programa. Para isso basta chamar o programa como se ele fosse
um comando de linha. Faa ento
ola

25

Como deve ter reparado, NO FUNCIONOU! O problema est que a diretoria onde se
est no pertence ao conjunto de diretorias onde o sistema procura comandos de linha. O
conjunto dessas diretorias designado de $PATH e pode ser visto com o comando
echo $PATH

Como a diretoria onde se est no pertence, temos de forar o correr este programa com o
seguinte comando de linha
./ola

Conseguiu?

J agora. capaz de dizer para que serve o comando seguinte e o que se ganha com isso?
export PATH=.:$PATH

e se em vez do anterior se tivesse feito este?


export PATH=$PATH:.

BOM
LINUX
E BOA
PROGRAMAO DE MICROPROCESSADORES

26

Anda mungkin juga menyukai