Você está na página 1de 36

Introduo ao Sistema Operacional

LINUX
Guia Bsico para Iniciantes

Oliver Tompson Lessa

NDICE
Introduo.....................................................................................................................................................4
Um pouco de histria....................................................................................................................................5
O Linux hoje.................................................................................................................................................6
O Linux e a Iniciativa GNU/Open Source....................................................................................................7
Prs...........................................................................................................................................................8
Contras.....................................................................................................................................................9
O Linux e as Distribuies..........................................................................................................................10
Kernel..........................................................................................................................................................11
Usurios e Contas de Usurios....................................................................................................................12
root um usurio especial...........................................................................................................................14
Arquivos e o Sistema de Arquivos (filesystems)........................................................................................14
Direitos de Acesso (permisses).................................................................................................................17
Sistema de Arquivos Hierarquia de Diretrios........................................................................................18
/bin..........................................................................................................................................................19
/boot........................................................................................................................................................20
/dev.........................................................................................................................................................20
/etc..........................................................................................................................................................22
/home......................................................................................................................................................22
/lib..........................................................................................................................................................23
/mnt, /mnt/cdrom, /mnt/floppy e etc.......................................................................................................24
/opt..........................................................................................................................................................24
/proc........................................................................................................................................................24
/root........................................................................................................................................................25
/sbin........................................................................................................................................................25
/tmp........................................................................................................................................................26
/usr..........................................................................................................................................................26
/var..........................................................................................................................................................26
Shell............................................................................................................................................................27
Tipos de shell.........................................................................................................................................27
Sobrevivncia no Linux Modo Texto.......................................................................................................28
Consoles Virtuais
................................................................................................................................................................28
Facilidades do Bash................................................................................................................................28
Metacaracteres (coringas)
................................................................................................................................................................29
................................................................................................................................................................29
Pedindo Ajuda........................................................................................................................................30
Mais comandos.......................................................................................................................................31
cd.......................................................................................................................................................31
ls........................................................................................................................................................31
2

mkdir..................................................................................................................................................31
cp.......................................................................................................................................................32
mv......................................................................................................................................................32
rm.......................................................................................................................................................32
rmdir..................................................................................................................................................32
chmod................................................................................................................................................32
chown................................................................................................................................................33
more...................................................................................................................................................33
cat......................................................................................................................................................33
file......................................................................................................................................................33
which.................................................................................................................................................33
find.....................................................................................................................................................34
less.....................................................................................................................................................34
head...................................................................................................................................................34
tail......................................................................................................................................................34
Juntando comandos................................................................................................................................34
Scripts de shell............................................................................................................................................35
Funcionalidades......................................................................................................................................35
Um exemplo de um script simples:........................................................................................................36

Introduo
Osoftwarelivrevemganhandoespaonosltimosanosdentrodosmaisdiversossetores.
Sejaporrazeseconmicas,tcnicasouatmesmopolticas,adotarmedidasquelevama
soluesrelacionadascomosoftwarelivretemsetornadoumaopoparamuitos.Vemos,
inclusivenoBrasil,iniciativasdeorganizaesealgumaspartesdosetorpblicofazendo
estaopoealcanandoseusobjetivoscombastantesucesso.Diantedisto,nocorremos
nenhumriscoemafirmar:Softwarelivretemqualidade!
NestecenrioimpossvelnodestacaroS.O.Linux.Algunsacreditamqueosurgimento
doLinuxesuatrajetriaataquitenhamsidooacontecimentomaisimportantedentroda
estria do software livre. Sem dvida seu crescimento e sua recente popularidade so
impressionantes. Sem dvida o Linux uma opo slida. Acredito que estas e outras
razes, inclusive de naturezatcnica,sejammotivaessuficientesparaestudarmosum
poucodesteS.O.,mesmoquedeumaformaintrodutria.
Emboraestedocumentoestejavoltadoparapessoasfamiliarizadascomalgumoutrotipo
desistemaoperacional,elenotemapretensodeserumguiaaltamentetcnicoouque
abordecomprofundidadeconceitosrelacionadosahardwareouatmesmootemaS.O.
No,tambm,nenhumatentativadeadvogaremdefesadoLinuxcomrelaoaoutros
sistemasoperacionaisoufazerqualquertipodeconfrontaoouclassificao.
O objetivo de deste documento apresentar uma introduo ao S.O. Linux abordando
algumasdesuasprincipaiscaractersticas,suaoperaobsicaeoutrasinformaesque
possibilitemumentendimentorazovelsobreseufuncionamentodeformaaservirdebase
paraumestudomaisdetalhadonofuturo.

Umpoucodehistria
OcriadordoLinux,hojejbastanteconhecido,chamaseLinusTorvalds.Linusiniciouseu
trabalho com o Linux enquanto ainda era estudante (graduando) de Cincia da
ComputaonaUniversidadedeHelsinki,Finlndia.Naquelapoca,odepartamentode
CinciadaComputaodauniversidadeusavaumaversodoSistemaOperacionalUNIX
chamadaMinixCriadaporAndrewTanenbaum.
OUNIXumdossistemasoperacionaismaispopularesemtodoomundoequecontacom
umaimensabasedesuportealmdetersidolargamentedistribudoaolongodosanos.O
UNIXfoicriadopelaAT&Tentreofinaldadcadade60eoinciodosanos70paraserum
sistema multitarefa de microcomputadores emainframes, tendo jsido classificado por
algunsde:Onicosistemaoperacionaldeverdade.
InsatisfeitoscomoS.O.,Linuseoutrosusuriosresolveramenviarpedidosdemodificaes
e melhoramentos ao autor do Minix, que considerou estas alteraes como no sendo
necessrias. A partir destas respostas, Linus resolveu desenvolver seu prprio sistema
operacional.Suaidiainicialpartiudoprincpiodecriarum"Minix"melhoradoou,em
suasprpriaspalavras:...abetterMinixthanMinix.(umMinixmelhorqueoMinix).
Depoisdealgumtempotrabalhandonoseuprojeto,em5Outrubrode1991,Linusanuncia
oqueseriaaprimeiraversodoseu kernel:oLinux0.02.Nestepontoelejeracapazde
rodarumaversodo bash (theGNUBourneAgainShell),do gcc (theGNUCcompiler)e
algumasoutrascoisas,masnomuitas.
Linus, ento, anunciou seu trabalho deixandoo aberto para todos os que desejassem
contribuircomodesenvolvimentodo kernel.Arespostaveiorpidoemuitaspessoasse
juntaramaeleestabelecendoumprocessodeevoluosurpreendente.Destemomentoat
Dezembro de 1993, o Linux chegou em sua verso de kernel 0.99.pl14, alcanando
praticamente o momento de sua primeira verso oficial pronta para ser distribuda
(verso1.0).MensagemenviadaporLinuxTorvaldsacomp.os.minix:

"Voc suspira por melhores dias do Minix-1.1, quando homens sero homens e
escrevero seus prprios "device drivers" ? Voc est sem um bom projeto e esta
morrendo por colocar as mos em um S.O. no qual voc possa modificar de acordo
com suas necessidades? Voc est achando frustrante quando tudo trabalha em
Minix? Chega de atravessar noites para obter programas que trabalhem correto?
Ento esta mensagem pode ser exatamente para voc.
Como eu mencionei a um ms atrs, estou trabalhando em uma verso independente
de um S.O. similar ao Minix para computadores AT-386. Ele est, finalmente,
prximo do estgio em que poder ser utilizado (embora possa no ser o que voc
esteja esperando), e eu estou disposto a colocar os fontes para ampla distribuio.
Ele est na verso 0.02... Contudo eu tive sucesso rodando bash, gcc, gnu-make,
gnu-sed, compresso, etc. nele."

Durantemuitotempo,LinusTorvaldsfoiomantenedordiretodokerneldoLinux.Hojeesta
responsabiliadeestsobreosombrosdeoutroseodesenvolvimentodosistemacomoum
todo countinua sendo feito com a colaborao de muitas pessoas ao redor do mundo.
Entretando,Linusaindaquemdapalavrafinalsobreoquevaiounoentrarnokernel
doLinuxequandoumaversoestprontaparaseranunciadacomoestveledistribuida.
Aps sua sada da universidade, Linus mudou-se para os EUA e passou a trabalhar
em uma empresa chamada Transmeta. Seu trabalho foi o de ajudar no
desenvolvimento de uma verso de kernel do Linux que pudesse ser alojada em uma
fhash ROM. Isto foi usado no desenvolvimento do "Cruso", um chip voltado para
equipamentos portteis e usando em Note Books.

OLinuxhoje
Comopassardostemposmuitasaplicaesforamportadasoudesenvolvidaspararodar
noLinux,tantolivresquantocomerciais.Seguindoestecrescimento,existehojetambm
umenormesuporteahardwareeperifricos,inclusivecomparandocomosoutrossistemas
operacionais.
HojeoLinuxentrounomercadododesktop.ApesardainegveldominaodaMicrosoft
nesta rea, o Linux tem se mostrado e se estabelecido como uma opo aceitvel e
competitiva. Isto notado pelo desenvolvimento de interfaces grficas cada vez mais
amigveis e outras aplicaes que incluem as compatveis com os produtos Microsoft
como:processadoresdetexto,planilhas,programasdeapresentaoouatmesmopelo
fatodeserpossvelrodarestasprpriasaplicaesdentrodoLinux.
NocampodosservidoresoLinuxinegavelmenteseestabeleceucomoumarefernciano
quedizrespeitoaserumaplataformaestveledebomdesempenho.Provadistoofatode
organizaescomoAmazon,ExrcitoAlemoeCorreiosdosEUAutilizaremoLinuxpara
rodarservidoresdebancodedados.ProvedoresdeacessoecontedodaInternettambm
adotamlargamenteoLinuxsejacomoWebservers,firewallsouemservioscomooGoogle.
ExistemaindaoutrasreasinteressantesaondeoLinuxvemganhandoespao:Clustersde
mquinasrodandoLinuxforamusadosparaacriaodefilmescomoTitanic eShrek,
porexemplo.
H espao tambm no mundo dos portteis e dos appliances. Alguns PDAs e muitos
equipamentoscomopequenosservidores,roteadoreseoutrosdispositivosdestanatureza
6

jtmoLinuxportadoerodandocomoseusistemaoperacionalprincipal.
Mas,oquedizerarespeitodopontodevistadousurio?TrabalharcomoLinuxdifcil?
Nopassado,serumexpertouumusurioexperienteeraumaespciedeprerequisitopara
usar o Linux. Instalar e configurar o sistema realmente exigia um bom nvel de
conhecimentotantodosistemaquantodamquinanaqualeleseriainstalado.Outrofator
quepoderiaassustarosiniciantesinteressadoseraaposturadealgunsdostaisexpertsno
assunto que frequentemente respondiam questionamentos com alguma coisa como:
RTFM(leiaosmanuais).Semdvidaumgrandenmerodemanuaisedocumentaoem
geralsempreestiverampresentesemtodosossistemas.Entretando,aformamuitotcnica
comoeleseramescritospoderiadesanimaralgunsinicantes.
Esta no arealidadedehoje.Aevoluodainterfacecomousurioeasferramentas
adicionadastornaramestaconvivnciamuitomaisamigveleatraenteparaumusurio
qualquer. Empresas como a RedHat, SuSE, Mandrake e outras, vem se esforando em
tornarsuasrespectivasdistribuiesprodutosquepossamserdistribudosfacilmenteem
massa,aexemplodeoutrossistemasoperacionais.

OLinuxeaIniciativaGNU/OpenSource
Aidiadebuscaracolaboraodosdesenvolvedoreseusuriosdesoftware,pormeiode
comentrios,sugestese,principalmente,pelotrabalhodiretoquefoiaplicadaporLinus
TorvaldsnoLinux,norecenteenemumacaratersticaexclusivadatrajetriadoLinux.
RichardStallman,quetrabalhouporalgumtempoemumlaboraboratriodeInteligncia
Artifical no Massachusetts Institute of Technology(MIT), um defensor desta filosofia
desdeosanos70.Eleumdospioneirosnoconceitode"freesoftware"(softwarelivre).
Ao sair do MIT, Richard Stallman, fundou o projeto GNU, que tem como objetivo o
desenvolvimentoemanutenaode"softwarelivre".Apalavra"livre",nestaexpresso,no
querdizernecessariamente"grtis".Algunspoderiamacreditarque"domniopblico"ou
"liberado" seriam expresses que classificariam bem um software. Entretando, ainda
poderiahavercertaconfusocom"grtis"ecomoconceitodepropriedade.Umprograma
um"softwarelivre",paravoc,umusurioparticular,se:
voctemaliberdadedeexecutaresteprograma,paraqualquerpropsito;
voctemaliberdadedemodificaloparaatenderassuasnecessidades(paraqueisto
sejaumarealidade,vocprecisateracessoaocdigofontedoprograma);
voctemaliberdadederedistribuircpias,gratuitamenteouno;
voc tem a liberdade de distribuir verses modificadas do programa. Desta forma,
outraspessoasteriamacessoaosmelhoramentosfeitosnoprogramaporvoc.
7

Almdascitadasnostensacima,queresumemostermosdeumalicenaGNU,umaoutra
idiainteressanterelacionadacomooprojetoGNUadeCopyleft.Estaidiatemcomo
objetivo prevenir que algum "software livre" venha a se tornar, por qualquer razo,
propriedadedealgumoualgumaorganizao.
Umavezque"livre"noserefereapreo,noexistecontradioentrevendercpiasde
programas"opensource"eoconceitode"softwarelivre".Nestescasosoqueocorrenoa
vendadosoftware,massimdotrabalhode"empacotar"estesoftwareemalgumtipode
mdiaedeferramentasdeauxlioinstalaoeconfiguaraodesenvolvidaspeloprrpio
distribuidorcomseusrespectivosmanuais.Narealidade,estaformadedistribuiotem
sidodefundamentalimportnciaparaaproliferaodoLinuxpelomundo.
ParaentendermelhorarelaodoLinuxcomoPorjetoGNU,vamosvoltarumpoucono
tempo:Porvoltade1991, jexistiamcondiesparaacriaodoLinux(SO).Entretanto,
LinusTorvaldshaviaapenasdesenvolvidoo kernel e testadocomalgunsprogramas.Ele
no tinha todo o sistema operacional criado(e no tinha condies para tal), como ele
mesmo disse: "...sozinho, um kernel no leva voc a lugar algum. Para ter um Sistema
Operacionalfuncionalvocprecisadeumshell,compiladores,bibliotecaseetc".
DooutroladooprojetoGNUtinhaaintensodecrirarumsistemaoperacionalejhavia
desenvolvido vrias aplicaes e ferramentas para o S.O. Mas, no tinha um kernel o
coraodosistemaoperacional.NaspalavrasdeRichardStallman:"... o GNUHurd(seu
projetodeSO),noestprontoparautilizao.Felizmente,outrokernelestdisponvel.
Em1991,LinusTorvaldsdesenvolveuumkernelUNIXcompatvelquechamoudeLinux".
DestepontoveioacombinaodosprogramasnecessriosfornecidospeloprojetoGNUe
o kernel desenvolvidoporLinusTorvalds.IstofoionascimentodoSOquechamamosde
Linux.Podemosver,portanto,queosistemaopercionalchamdadoLinux,narealidadea
uniodedoisesforos:ossoftwaresdoprojetoGNUeokernelcujonomeLinux.Baseado
nisto, vemos frequentemente a referncia aoSOcomo Linux/GNUou GNU/Linux. No
podemos separar ou dar maior importncia a uma das partes. Sua integrao e
desenvolvimentoconjuntooqueformaumsistemaoperacionalrobustoeestvel.

AlgunsPrseContrasdoLinux
Prs

OpenSource:OLinuxdistribuido sobalincenaGNU.Istosignificaque
voc no precisa necessariamentepagarpara tlo; nem mesmocompraruma
distribuio. O Linux, em praticamente todas a suas distribuies, est
inteiramentedisponvelparadownloadnaInternet.Nohtaxaspararegistro,
pornmerodecpiasnemmesmoparaatualizaesoupelocdigofonte.

portvel: Uma vez que qualquer pessoa pode ter acesso ao cdigo fonte do
sistemaemodificalo,istopermitequesefaamadaptaesparapraticamente
qualquerplataformadehardware.

escalvel:TornousecomumvermosoLinuxrodandodesdeumPalmtopat
clusters com cententas de nodos ou mesmoemumrelgio depulso (produto
desenvolvidopelaIBM).Sejaqualforoprojeto:reciclarvelhosmicros386ou486
atousoemsistemasembarcados(embutidoscomoalgunspreferem),oLinux
podeserusadocombomrendimentoesucesso.

Oferece versatilidade e um bom grau de estabilidade e segurana: Estas so


caractersticas herdadas do UNIX. O que se espera naturalmente de sistemas
comoestesqueelessemantenhamemfuncionamentodurantetodootempo
semanecessidadedeumreboot equesejapossvelquevriastarefaspossam
serexecutadasduranteas24horasdeumdia.

Contras

Existe um nmero muito grande de distribuies: Apesar de a variedade e a


briga dos distribuidores por espao parecerem, a primeira vista, um ponto
positivo,istotemumladoruim.Cadadistribuidoradotaumcaminho:umaforma
deempacotaroLinuxeescolhequeaplicaesvoincluiremsuadistribuio.
Destaformanotemosumaconvergnciaouumainicitivadepadronizaoem
qualqueraspecto.IstolevaousurioinicianteaumacertaconfusosobreoS.O.
como:ExistemdiferentestiposdeLinux?Qualamelhordistribuio?Queescolha
fazer?

Certosprocessosparainstaloeconfiguraonosoamigveisparaoiniciante:
Ter uma informao prvia do S.O. e conhecer a mquina na qual ele ser
instadado ainda um prrequisto. Entretanto, muitos esforos tm sido
empregados para fazer com que estas informaes estejam cada vez mais
facilmenteaoalcanedosusuriosiniciantes.

Ainda existe resitncia por partedo mercado:O Linux ainda no aceito sem
reservas em muitos setores e pela grande maioria dos usurios. As grandes
empresas que dominam o mercado e ainda formam a opinio da maioria dos
uaurios, tem buscado defender seu espao da amea Linux com algum
sucesso.Entreosargumentosesto:colocaremquestoaqualidadedosoftware
Open Source, dizer que no h suporte adequado e suficiente, que se houver
suporteestetermaiorcustodoquecomparandocomsoftwarecomercialeassim
pordiante.

Sobre este assunto, o desenvolvedor do Enlightment (um gerenciador de


janelas) que se entitula: The Rasterman fez a seguinte declarao:
No nos desktops, no nos PCs. Em nada que lembre o que voc
chama de desktop. O Windows venceu conforme-se. O mercado no
governado por um Kernel superior ou por um sistema que no trava. Os
usurios no se importam, eles simplesmente reiniciam e continuam
com ele. Eles querem aplicativos e se os aplicativos que eles querem e
gostam no esto aqui, ento perda de tempo.

OLinuxeasDistribuies
Como j foi citado anteriormente o Linux tem certas caractersticas de estrutura e
construo que permitem a qualquer pessoa personalizar uma instalao e/ou
configuraoemqualquerplataforma.Istomotivoualgumaspessoas,gruposeempresas
que passarama distribuiro LinuxpelaInterneteemCDsvendendo,nooS.O.mas,o
trabalho de gravar em CD, uma vasta documentao e muitas ferramentas de auxilio a
instalaoeconfiguraodoS.O.edasaplicaesqueoacompanham.Tudoistocoma
intensode"livrar"ousuriodasetapasmaiscomplicadasdosprocessosdeinstalaoe
configurao.
Entresessasdistribuiessurgiram,naturalmente,diferenasquevodesdeaquantidadee
tiposdesoftwaresqueacompanhamoS.O.,manuaisdeinstalao,pequenasdiferenasde
organizao,locaisdeinstalaodossoftwareseatoutrosaspectosquecaracterizamo
distribuidorcomologotiposeconesnainicializaodosistema.
Aqui, valedestacardeumdetalheemque,commuitafrequncia,ocorrealgumtipode
confuso: Uma distribuio no o mesmo que uma verso do S.O. E, mais
especificamente: uma verso de uma distribuio tambm no o mesmo que uma
versodoS.O.Assim,emumamesmaplataformadehardware,peguntasdotipo:"Existem
diferentestiposdeLinux?"ou"QualoLinuxquevocusa?",noestariamcorretasou
corretamentecontextualizadas.
Uma distribuio nada mais do que uma forma de "empacotar" o Linux. Ou seja, a
distribuiocontmoS.O.sejaqualforaversoemqueeleesteja.Nadamaisnaturaldo
que,comopassardotempo,asdistribuiessofreremsuasalteraaesemelhorias.Aisto,
os distribuidores chamam verso. Entretando, no Linux, determinamos a verso
observandookerneleasferramenasessenciaisdosistema;emqualversoestokernel.
Estaseparaopodeparecerumpoucodifcildepercebermasimportante.Sealgum
escolheumadistribuio,comaqualnosesintaconfortvel,paraalgumaaplicaoeno
atingeseusobjetivos,semestaconscincia,fatalmenteir"culpar"oLinuxporseufracasso
enoasuaescolhainadequadadedistribuio.
10

Ento,qualamelhordistribuio?Nateoriaenaprticatudooquepodemosfazercom
umadistribuio,poderemosfazercomoutras.Tentarclassificarumadistribuiocomo
melhoroupiordoqueoutrasnoumbomcaminho.Sendoassim,cabeiraumaoutra
pergunta:Qualdistribuioescolher?Umadasrespostasmaissimplesediretasparaesta
questo:dependedousurio.
Exitem distribuies que poderamos incluir no grupo das mais recomendadas para
usurios iniciantes que so aquelas que, por padro, j ativam em seu processo de
instalaoosuporteaosmaisvariadostiposdehardware(incluindoaquelesqueraramente
osusuriosdispem)bemcomoainstalaoeprconfiguraodeumgrandenmerode
aplicaeseferramentas.Exemplosdedistribuiesdestegrupo:

FedoraLinux
SuSELinux
Mandrake
Knoppix
RedHat
Conectiva(BrasilbaseadanaRedHat)
Kurumin(BrasilbaseadanaKnoppix)

Poroutrolado,algunsusuriosmaisexperintese/ouadministradortesdesistemapodem
nogostardofatodenotertotalcontrolesobretodooprocessodeinstalaodosistemae
da posterior configurao de tudo. Para estes, tambm existem distribuies que se
adequambem,porexemplo:

Slackware(algunsconsideramumpesadeloparaqualqueriniciante)
Debian

Kernel
Vamosagorafalar,rapidamenteesemaprofundamentoterico,sobreaparteessencialem
qualquersistemaoperacional:okernel.EleoncleodoS.O.;seucrebro.Agrossomodo,
elequem"diz"diretamenteaocomputadoroquefazer,quandoecomo.
Ogerenciamentodememria,deprocessos,deentradaesadaso,emlinhasgeraisas
funoesbsicadasdokernel.Emalgunssistemaspodemostertambm,dentrodokernel,
controladoresdedispositivos(drivers).NoLinux,estaprticacomum.Logonasprimeiras
verses, todos os controladores de dispositivos faziam parte do kernel. Com o seu
desenvolvimento,noqueserefereasuportededispositivoseperifricos,okernelcresceu
bastante emtamanho.Apesar dapossibilidadedecompilarmoso kernel comapenasos
controladores para os dispositivos presentes em nosso equipamento, o tamanho ainda
11

poderiarepresentaralgumproblema.Afiguraaseguirilustraasfunesbsicasdokernel
noLinux:

Vieram os mdulos. Os mdulos, noLinux, so controladores(drivers)ealgumas outras


partes do kernel como suporte a outros sistemas de arquivos, preparados para serem
usados sob demanda e que no esto inseridos no kernel que carregado logo aps o
processodeboot.
Normalmente,compilamosokerneldoLinuxdaseguintemaneira:todososcomponentes
vitais,incluindocontroladoresdeE/Seredecomseusprotocolos,incluimosnokernel;os
demais, como controladores de dispositivos e perifricos pouco utilizados, compilamos
como mdulos para serem carregados sob demanda ou logo aps o kernel assumir o
controledamquina.

UsurioseContasdeUsurios
Hoje j comum encontrarmos em quase todos os sistemas a prtica de identificar os
usurios:solicitarnomedeusurioesenhaparaautorizarousodosistema.NoLinux,esta
caracterstica sempre existiu por ser um sistema derivado do UNIX. Entretando, esta
autenticaotemumafunomuitomaiordoqueamerapersonalizaodeconfiguraes
visuais.
OLinuxumsistemamultiusurioemultitarefareal.Istosignificaquevriosusurios
podemestarexecutandomuitas aplicaesaomesmotempoemumamesmamquina.
Isto no ocorre em outros sistemas voltados para desktop como algumas verses do
Windows,porexemplo.
NoLinux,aofornecerseunomedeusurioesenhaaosistemavocestarefetuandoum
processochamadodeloginemsuacontadeusurio.Umacontanoapenasidentificaum
usurio mas tambm representa todos os arquivos, recursos e quaisquer outras
12

informaespertencentesaumusurio,porexemplo:espaoemdiscoquepodeserusado,
poderounoimprimiremumadeterminadaimpressora,cotasdeimpresso,quantidade
dosrecursosdaCPUquepodemserusados,poderdegravaremdiretrios,prioridadese
etc.
Umexmplodateladeloginemmodotexto:
Welcome to Linux 2.4.22 (tty1)
darkstar login: _

Aocriarmosumacontadeusurionosistemadevemosforneceralgumasinformaespara
indentificalo. Cada usurio tem um nmero, nico, que o identifica no sistema. As
informaesfornecidasso:

username(nomedeusuriooulogin)
password(senhaarmazenadadeformacriptografada)
useridouuid(nmeronicodecadausurio)
groupidougid(nmerodogrupoaoqualelepertene)
fullname(nomecompletoeoutrasinformaes)
homedirectory(diretriopessoaldousurio)
loginshell(oprogramaqueserexcutadoaoefetuarseologin)

Nalistacomostensacima,apareceumoutroconceitointeressante:osgruposdeusurios.
No Linux, todos os usurios cadastrados so obrigatoriamente classificados em grupos.
Isto,ampliabastanteaspossibilidadesdeorganizaoeseguranadosistema.Osgrupos,
assim como os usurios, tem seus direitosdentro dosistemasobrearquivos, diretrios,
recursoseetc.Istonospermite combinarosdireitos(nviesdesegurana)deusuariose
grupos, facilitando a administrao do sistema e garantindo a integridade desta
organizao.
Os usurios herdam os direitos do grupo aonde esto includos, sobre os recursos do
sistemadososquaispossuamodomnio.Porexemplo:umusurio,isoladamentepodeter
somenteodireito deleiturasobreumdeterminado arquivo.Entretando, seestemesmo
usurioestivercadastradoemumgrupoquepossuaodireitodegravarnestearquivo,ele
automaticamenteherdarestedireito.

13

rootumusurioespecial
O root umusuriomuitoespecialdosistema,com"poderes"especiais.Narealidade,o
root tem todos os poderes possveis dentro do sistema; ele o administrador, o"super
usurio".Asconfiguraesdosistema,quasequeemsuatotalidade,spodemserfeitas
poresteusurio.Inclusoeexclusodeusuriosedegrupos,configuraodedispositivos,
gernciadepermissesparausarosrecusrosdosistema,desligarosistemaeetc;tudoisso
tarefaeprivilgiodoroot.ousurioquepodeleregravaremqualquerpartedosistema
dearquivos.Orootquemtemtodasas"chaves"evtudo.
Comtodosestes"poderes"extremamentenecessriomuitacautelaaousarmososistema
comoroot.Pressupesequeoadministradordosistematemplenaconscinciadetodosos
seusatos.Dizemos isto porqueo root,normalmente,noadvertidoouimpedidopelo
sistema(emcondiesnormais)aoexecutarcomandoseconfiguraes.Quandoaoapagar
umarquivoouumdiretriointeiro,porexemplo,osistemanofazao root perguntasdo
tipo:"...temcerteza?".
Como vimos anteriormente, o Linux sendo um sistema realmente multiusurio, nos
permitetervriosusurioscadastradosehabilitadosausaloaomesmotempo.Todosestes
esto abaixo do root na hierarquia de poderes dentrodo sistema e, por esta razo, so
advertidos ou simplesmente impedidos de executar tarefas classificadas como de
configurao ou danosas ao sistema. Portando, saudvel e recomendvel em nosso
trabalho do diaadia, usarmos o sistema como um usurio comum, mesmo tendo
privilgiosmaiores,ereservarousodorootparaaadministraoeconfiguraodosistema
oqueocorrenamenorpartedotempo.

ArquivoseoSistemadeArquivos(filesystems)
Ao migrar de outros sistemas como o Windows para o Linux ou algum outro sistema
baseadoemUNIX,umadasmaioresdiferenaspercebidaspelousuriosernoquediz
respeitoaosistemadearquivosesuaorganizao.
Umsistemadearquivosoufilesystemumconjuntodemtodoseestruturasdedadosque
sousadospelosistemaparamanterosarquivosemumdiscooupartio.Ouseja,oque
define a estrutura e forma como as informaes sero armazenas e os meios de
recuperaodelas.Basicamente,temosaseguintesituao:armazenamosinformaesem
arquivos,arquivosemdiretrioseestesformamumaestruturaorganizada.
osistemadearquivosoresponsvelportornaristopossvel.Almdisto,saberondese
encontraumainformaoecomorecuperalatambmseupapel.Aexpressofilesystem
14

podeserusadaparafazerrefernciaaumapartioouaumdiscoquecontmarquivos,
comoparaumtipodepartio.
Falando emtipos de filesystem, podemosdestacar umoutracaractersticaencotradano
Linux que o suporte a vrios tipos de filesystem. Isto permite que, usando o Linux,
possamosleregravaremumapartiocomoutrosistemainstaladocomooWindows,por
exemplo.AlgunstiposdefilesystemsuportadospeloLinux:

minix
xia
ext3
ext2
ext
reiserfs
msdos

umsdos
vfat
iso9660
nfs
smbfs
hpfs
sysv

UmaoutradiferenamarcanteentreoLinuxousistemasderivadosdoUNIX,demodo
geraleoutrossistemasoperacionaiscomrelaoaotratamentodadoaarquivos.Uma
descriobastanteusualempregadaemsistemasUNIXrelacionadaaarquivos:
"Em um sistema UNIX, tudo umarquivo; sealgumacoisano arquivo,entoum
processo."
NoLinux,istotambmseaplicapelofatodeseter:arquivosearquivosespeciais.OLinux
nofazdiferenaentrediretriosearquivos,umavezqueconsideraosdiretrioscomo
sendoapenasarquivosquecontmosnomesdeoutrosarquivos.Dispositivosdeentradae
sada e, em geral, todos os outros dispositivos e perifricos tambm so considerados
arquivos.
Umavezquetudoarquivo,oLinuxtemumsistemadeclassificaodetiposdearquivos.
Todos estes tipos de arquivos so organizados em uma estrutura tipo vore, tambm
chamadadehierarquiadosistemadearquivos,queveremosumpoucomaisadiante.Por
horavamosaostiposdearquivos:

Regulares:soamaioriadosarquivos.Soosquecontmdadosnormaiscomo
arquivos de texto, imagens, arquivos executveis, programas, arquivos que
contmentradaousadadealgumprogramaeassimpordiante.

Diretrios: aqueles que contm listas de outros arquivos (tambm conhecidos


como"pastas").

Arquivos
especiais: so o mecanismo utilizado para entrada e sada; arquivos
ligadosaosdispositivos,usandosparaacessodiretoaelesoucomointerface.A
15

maiorpartedosarquivosespeciaisseencontramnodiretrio/devqueveremos
maistarde.

Links:ummeiodefazercomqueumarquivoestejavisvelemvriaspartesdo
sistema de arquivos. Tambm nos referenciamos a eles como atalhos ou
simplesmesteligaes.

(Domain)sockets:umtipodearquivoespecialsimilaraosocketdoTCP/IP.Ele
usadoparaproporcionarumacomunicaointerprocessospelarede,protegida
pelocontroledeacessodosistemadearquivos.

Namedpipes:tambmumaformadecomunicaointerprocessossemusara
mesmasemnticadossocketsnarede.

Nopromptdecomando,quandosolicitamosalistagemdosarquivosdodiretrioatual,
podemosverificaraindentificaodostiposdearquivosnoprimeirocaracteredacoluna
dosatruibutosesquerda:
oliver@darkside:~/sources/palm$ ls -l
total 9749
drwxr-xr-x

2 oliver

users

168 2004-02-15 15:49 acalc-0.21/

-rw-------

1 oliver

users

28257 2004-02-14 17:56 acalc021.zip

-rw-rw-r--

1 oliver

users

7633 2000-11-30 21:27 BinaryBuddy.prc

-rw-------

1 oliver

users

6543 2004-02-14 17:58 BinaryBuddy.zip

Atabelaaseguirresumeaformadeidentificao:
Caractere

Tipo de arquivo

Regular

Diretrio

Link

Arquivo especial

Socket

Named pipe

16

DireitosdeAcesso(permisses)
NoLinux,todoarquivopropriedadedeumusurioedeumgrupodeusurios.Paracada
categoriadeusuriospodemserdadasaspermissesparaler,escrevereexecutararquivos
podemserdadasouretiradas.Podeexistirtambmumacategoriadeusuriosquenotem
propriedadesobrenenhumarquivoequenopertenceanenhumgrupo.Algunsafirmam
queestaprimeiralinhadedefesadoLinux.
Noexemploanterior,quandofalavamossobreostiposdearquivos,vimosautilizaodo
comandols -lparalistarocontedododiretrio.Vimostambmqueaidentificaodo
tiposelocalizanomesmoblocodeinformaesondeencontramosasespecificaessobre
osdireitosdeacesso(permisses)sobrecadaprograma.Apsoprimeirocaractere,temosa
sequnciadecaracteresqueidentificamosatributos.

oliver@darkside:~/sources/palm$ ls -l
total 9749
drwxr-xr-x

2 oliver

users

168 2004-02-15 15:49 acalc-0.21/

-rw-------

1 oliver

users

28257 2004-02-14 17:56 acalc021.zip

-rw-rw-r--

1 oliver

users

7633 2000-11-30 21:27 BinaryBuddy.prc

-rw-------

1 oliver

users

6543 2004-02-14 17:58 BinaryBuddy.zip

Observandonovamentealistagemacima,dadireitaparaaesquerda,temos: onomedo
arquivo,adataehoradacriaooumodificao,otamanhodoarquivo(embytes),ogrupo
donodoarquivo,ousuriodonodoarquivoeosatributos(permisses).
Napartedosatributos(permisses),logoapsoprimeirocaracterequeindentificaotipode
arquivo,temos(olhandodaesquerdaparaadireita):

Os trs primeiros caracteres indicam as permisses para o usurio dono do


arquivo.
Os trs caracteres seguintes indicam as permisses para o grupo dono do
arquivo.
Altimasequnciadetrscaracteresindicamaspermissesparaoutrosusurios.

17

Oscdigosparacadapermissoso:
Cdigo

Significado

- ou 0

A permisso desta posio no foi definida

r ou 4

Permisso de leitura

w ou 2

Permisso de gravao

x ou 1

Permisso de execuo/busca

Recorrendomaisumavezaoexemploanterior,vamosverificarsomenteosatributosdo
primeiroarquivo(queumdiretrio):
oliver@darkside:~/sources/palm$ ls -l
total 9749
drwxr-xr-x

2 oliver

users

168 2004-02-15 15:49 acalc-0.21/

Deacordocomasdefiniesquevimosanteriormentetemos:drwxr-xr-x
d

Oarquivodotipodiretrio

rwx

Odonodoarquivotempermissesdeleitura,escritaeexecuo(busca)

r-x

Ogrupodoqualousuriofazpartetempermissesdeleituraeexecuo(busca)

r-x

Outrosusuriostmpermissesdeleituraeexecuo(busca)

SistemadeArquivosHierarquiadeDiretrios
AestruturahierquicadediretriosnoLinuxtambmalgodiferentesecompararmoscom
umsistemacomooWindows,porexemplo.AssimcomonoUNIX,oLinuxoptouporter
uma nica e simples estrutura de diretrios que comea a partir do root(raiz),
representadopor/,queseexpandeemsubdiretrios.
NoWindowspoderamoscolocararquivosemqualquerlugar:driveC,driveDeassimpor
diante,umavezqueaestruturadediretrioscontroladapelosprpriosprogramasou
usuriosenopelosistemaoperacional.NocasodoLinux,osdiretriossoorganizadosde
formadescendenteapartirdo root(/) deacordocomsuaimportncianoprocessode
boot.

18

Se voc achou estranho o uso da barra / (inclidada para adireita) e no da barra \


(inclidadaparaaesquerda),arazoparaistosimples:oLinuxsegueatradiodoUNIX.
Da mesma forma, faz diferena entre letras maisculas e minsculas na formao dos
nomesdearquivosemqualquerpartedonome.Porexemplo:teste.tar.gzdiferente
deTeste.tar.gz.Ouseja,soarquivosdiferentesparaosistema.
Outrodetalhedestahierarquiaquesuaordemolocalaondeosarquivosserocolocados
estrelacionadacomafunodoarquivoenocomocontextodoprograma.
Listandoocontedododiretrioroot ou /(raiz)temos:
oliver@darkside:/$ ls -l

total 107
drwxr-xr-x

2 root

root

2416 2004-05-25 21:33 bin/

drwxr-xr-x

2 root

root

drwxr-xr-x

16 root

root

62400 2004-10-05 11:19 dev/

drwxr-xr-x

52 root

root

5208 2004-10-05 17:44 etc/

drwxr-xr-x

5 root

root

drwxr-xr-x

5 root

users

2944 2004-05-29 11:34 lib/

drwxr-xr-x

7 root

root

168 2004-02-25 21:17 mnt/

drwxr-xr-x

9 root

root

264 2004-07-13 14:12 opt/

dr-xr-xr-x

74 root

root

0 2004-10-05 07:19 proc/

drwxr-xr-x

39 root

root

2016 2004-08-27 22:53 root/

drwxr-xr-x

2 root

root

5880 2004-06-10 02:18 sbin/

drwxrwxrwt

25 root

root

7288 2004-10-05 11:20 tmp/

drwxr-xr-x

18 root

root

544 2003-01-06 08:21 usr/

drwxr-xr-x

16 root

root

456 2004-04-30 11:21 var/

304 2004-02-11 13:25 boot/

120 2004-02-14 17:43 home/

/bin
AtualmenteesteumdosdiretriosmaisimportantesdoLinux.Elecontmamaioriados
comandosconsideradosessenciaisequeestodisponveisparatodososusurios(tanto
paraorootquantoparaoutrosusurioscomuns).Seolharmosatentamentealistagemdo
contedoveremososcomandoslseobash,shellqueestamosutilizando,bemcomocp,
mv,rm,cateoutros.Osdemaiscomandostambmtemomesmograudeimportnciano
sistema e, por isso, dizese que o conedo deste diretrio essencial. Este diretrio
tambmcontmprogramasdosquaisosscriptsdebootpodemdepender.
19

Listandoparcialmenteo/bin:
oliver@darkside:/bin$ ls
arch*

df*

gunzip@

mt@

sleep*

ash*

dialog*

gzip*

mt-GNU*

sln*

awk@

dircolors*

head*

mt-st*

stty*

bash*

dmesg*

hostname*

mv*

su*

bunzip2@

dnsdomainname@

ipmask*

netstat*

sulogin@

bzcat@

domainname@

kill*

nisdomainname@

sync*

bzip2*

du*

killall*

ping*

tar*

bzip2recover*

echo*

ksh*

ping6*

tar-1.13*

cat*

ed*

ln*

ps*

tar-1.13.25@

--More--

/boot
Aqui,estotodososarquivosdeconfiguraoteisenecessriosparaoprecessodeboot
taiscomo:cpiasdo masterbootrecords,arquivosdotiposector/systemmape,emalguns
casos,tambmokernelqueestsendoutilizado.Alterarocontedodosarquivoscontidos
nestediretrio,semoconhecimentonecessrio,significarperderoacessoaosistema.
Listandoo/boot:
oliver@darkside:/boot$ ls
boot.0300

config-ide-2.4.22

System.map@

vmlinuz@

config@

map

System.map-ide-2.4.22

vmlinuz-ide-2.4.22

/dev
Listando o contedo do diretrio /dev veremos uma grande quantidade de nomes
normalmente mostradosemamarelo.Todosestes,sodispositivosqueosistemausaou
pode usar. Assim, temos um arquivo para cada dispositivo como, por exemplo, para o
primeirodiscorgidoinstaladonamquina:oarquivo/dev/hda.
Aqui,voltamosanotarumacaractersticainteressantedoLinux,citadaanteriormente:tudo
nosistemaumarquivo.Oprimeirodiscorgido(master)instaldadonamquinaoaquivo
/dev/hda. Logo, se apagarmos estearquivo, perderemoso acessoao disco rgido. Esta
caractersticanospermitemuitasoutrascoisasinteressnates.Se,aotentarmosvisualizaro
contedodeumarquivo,usarmosumredirecionadordisponvelno shell desviandosua
sadaparaumdispositivo,estaremosrealmente"escrevendo"naqueledispositivo.
20

Exemplo:
oliver@darkside:~$ cat musica.au > /dev/audio

No exemplo acima, usando o comando cat, estamos"listando" ocontedodo arquivo


musica.au e,usandooredirecionador >do shell,desviamosasadaparaodispositivo /
dev/audio a placa de som. Neste caso o resultado ser, caso o dispositivo esteja
devidamenteconfigurado,ouvirmososomouamsica.Valeressaltarque,pararealizar
estaoperao,precisamosdasdevidaspermissesoquepodenoserdadoausurios
comuns(acessodiretoadispositivos).
Se fizermos o mesmo procedimento redirecionando a sada para /dev/lp0 estaremos
imprimindo o arquivo em uma impressora conectada na primeira porta paralela.
Desviando para /dev/ttyS0, o contedo do arquivo ser mandado para o dispositivo
conectadonaprimeiraportaserial;ummodem,porexemplo.
Estetipodeinterface,entreosdispositivoseousuario,daosistemaumaflexibilidade
enorme,facilitandoseuusodeeaumentandoaspossibilidadesdeacessoaosdispositivos.
Listagemparcialdo/dev:
oliver@darkside:/dev$ ls -l
total 238
drwxrwxrwx

2 root

root

6192 2002-06-11 14:40 amiraid/

crwxrwxrwx

1 root

sys

14,

11 2003-08-29 03:47 amixer0

crwxrwxrwx

1 root

sys

14,

27 2003-08-29 03:47 amixer1

crwxrwxrwx

1 root

sys

14,

43 2003-08-29 03:47 amixer2

crwxrwxrwx

1 root

sys

14,

59 2003-08-29 03:47 amixer3

crw-------

1 oliver

root

10, 134 1996-06-07 17:25 apm_bios

drwxrwxrwx

2 root

root

1200 2002-05-19 19:41 ataraid/

crwxrwxrwx

1 root

sys

lrwxrwxrwx

1 root

root

crw-------

1 oliver

root

14,

4 2003-08-29 03:47 audio0

crw-------

1 oliver

root

14,

20 2003-08-29 03:47 audio1

lrwxrwxrwx

1 root

root

10,

3 1994-07-17 19:49 atibm


6 2004-02-09 15:59 audio -> audio0

8 2004-02-09 16:24 cdrom -> /dev/hdc

--More--

21

/etc
Aqui,residemtodososarquivosdeconfiguraodosistema.Umarquivodeconfigurao
definidocomoumarquivolocalquecontrolaaoperaodeumprograma;temqueser
estticoenopodeserumbinrioexecutvel.

Damensagemdeboasvindasaoiniciarmosositema,passandopelaconfiguraoderede,
impressoraseoutrasaplicaesteisatoarquivodesenhaseaconfigurao do boot;
todososarquivosestoaqui.Ouseja,praticamenteocentronervosodosistema.Poreste
motivo,semprebomfazerbackups(cpias)regularesdetodoocontedodestediretrio.
Isto ser um fator de grande economia de tempo quando for necessrio fazer alguma
reconfiguraoemcasosdereinstaloouperdadedados.
Soarquivosdetextosimples.EstaumadascaractersticasdoLinux.Suasconfiguraes
sofeitaspormeiodemudanasemarquivostextoque,namaiorparte,podemserlidos
porqualquerusurio.Qualqueralteraoquefizermosemumdestesarquivos,estaremos
mudandoaconfiguraodosistema.
Listagemparcialdo/etc:
oliver@darkside:/etc$ ls
a2ps.cfg

gimp/

krb5.conf-sample

netgroup

scrollkeeper.conf

a2ps-site.cfg

gnome-vfs-2.0/

krb5kdc/

networks

securetty

acpi/

gnome-vfs-mime-magic

ld.so.cache

nntpserver

security/

adjtime

gnopernicus-1.0/

ld.so.conf

nscd.conf

serial.conf

apache/

gpm-root.conf

lftp.conf

nsswitch.conf

services

asound.state

gpm-syn.conf

libgda/

nsswitch.conf-nis

sgml/

at.deny

gpm-twiddler.conf

libuser.conf

ntp/

shadow

bonobo-activation/

group

lilo.conf

ntp.conf

shadow-

bootptab

gshadow

localtime

openldap/

shells

--More--

/home
ComovistoanteriormenteoLinuxumsistemamultiusurio.Assim,cadausuriotem
associadoaeleumdiretrioquedeveestarsomenteacessvelaeleeaoadministradordo
sistema.
Dentro do diretrio /home esto todos estes diretrios particulares dos usurios
cadastrados no sistema. Listando com ls o contedo do home/, veremos todos os
diretriosdosusuarios(seus home),cujosnomessoexatamenteosmesmoscadastrados
nosistema(login).
22

Odiretriohome/$USUARIO areadetrabalhoparticulardecadausurioeestsobseu
domnio.Alielepodecriararquivos,apagalos,instalarprogramaseetc.Almdisso,este
diretrio pode armazenar arquivos que guardam configuraes do seu ambiente de
trabalho ou de aplicaes que utiliza. Estes arquivos geralmente tem seus nomes
comeandocom"."(ponto)eporissosochamadosaquivos"."(ponto).
Estesarquivosnormalmenteficamescondidoseparavlosprecismosutilizaroparmetro
adequadodocomando ls: ls -a. Sehouveralgumconflitoentreasconfiguraesdos
arquivos pessoais e as configuraes globais do sistema, as configuraes pessoais do
usurioprevalecero.
Algunsdosarquivoponto:
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_logout
$HOME/.bash_history

executadoautomaticamentenologin
- executadoautomaticamentenainicializaodoshell
- executadoautomaticamentenologout
- gravaosltimoscomandosdasltimasseces

/lib
Osprogramasquenscriamospodemusarbibliotecasdeondebuscamsuasfunesou
mtodos.Vriosprogramaspodemusaramesmabibliotecadefunesemtodos,tantona
horadesuacompilaoquantoemexecuo.Paraestefim,noLinuxexisteestediretrio
queabrigatodasasbibliotecascompartilhadas.
Destaformatodososprogramas"sabem"ondeencontrarasbibliotecasdefunes.Alguns
mdulos do kernel podem estar presentes neste diretrio para serem "carregados"
medidadanecessidade.Aoinstalarmosalgumasaplicaesnovasnossistema,elaspodem
prnestediretriosuasbibliotecas.Asbibliotecassofacilmenteidentificaspormeiode
suas extenses como: *.so. Alguma coisa equivalente no Windows seriam os arquivos
*.dll.
Listagemparcialdo/lib:
oliver@darkside:/lib$ ls
cpp@

libe2p.so.2.3*

libpamc.so.0.77*

evms/

libext2fs.so.2@

libpam_misc.so@

ld-2.3.2.so*

libext2fs.so.2.4*

libpam_misc.so.0@

ld-linux.so.2@

libgpm.so.1@

libpam_misc.so.0.77*

libanl-2.3.2.so*

libgpm.so.1.18.0*

libpam.so@

libanl.so.1@

liblvm-10.so@

libpam.so.0@

libblkid.so.1@

liblvm-10.so.1@

libpam.so.0.77*

libblkid.so.1.0*

liblvm-10.so.1.0*

libpcprofile.so*

--More--

23

/mnt, /mnt/cdrom, /mnt/floppy e etc


Se olharmos dentro destes diretrios, normalmente, no veremos contedo algum. A
funodestesdiretriosserviremcomopontodemontagemdedispositivos.NoLinux
notemosnadaparecidocom"A:"ou"C:"paratermosacessoaosdipositivos.
UmdrivededisqueteouumaunidadedeCDROM,temdeserexpressamentemontado
(ativado)emalgumdiretrionosistemaparaquepossamosteracessoaele.Montaro
processo pelo qual tornamos um sistema dearquivosdisponvelparaosistema.Assim,
normalmenteusamosocdrom/paramontarmosdrivesdeCD,mnt/deformagenricaeo
floppy/ paradrivesdedisquete.

/opt
Estediretrioreservadoparatodoequalquersoftwareoupacoteadicionalquenofaa
parte da instalao padro do sistema naquela distribuio. Por exemplo: StarOffice,
OpenOffice, Kylix, KDE e outros so algumas aplicaes que, por padro, podem ser
instaladasnestediretrio.

/proc
Estetambmumdiretriobemespecialporserumfilesystemvirtual.Algunssereferema
elecomoumpseudofilesystemdeinformaessobreprocessos.Elenocontmarquivos
"reais"masinformaessobreoestadodosistemaeprocessoscomo:memriadosistema,
dispositivosmontados,configuraodehardwareeetc.Muitosdosutilitriosdosistema
simplesmentefazemumachamadaaosarquivosdestediretrioparacumpriremcomsuas
funes.Porexemplo,usarolsmod omesmoqueocomandocat /proc/modulesou
ainda: lspci o mesmo que cat /proc/pci. Se alterarmos alguns dos arquivos
presentesnestediretriopodemosestarlendo/alterandoparmetrosdo kernel (sysctl)
enquantoosistemaestemfunciomamento.
Listagemdo/proc:
oliver@darkside:/lib$ ls
1/

1032/

1092/

4/

902/

apm

fs/

mdstat

stat

10/

1034/

11/

44/

903/

asound/

ide/

meminfo

swaps

1006/

1035/

1125/

5/

916/

bus/

interrupts

misc

sys/

1008/

1036/

1622/

6/

917/

cmdline

iomem

modules

sysvipc/

1010/

1038/

1623/

861/

925/

cpuinfo

ioports

mounts@

tty/

1012/

1040/

1624/

864/

951/

crypto

irq/

mtrr

uptime

1013/

1042/

1625/

867/

953/

devices

kcore

net/

version

1014/

1068/

1627/

870/

957/

dma

kmsg

partitions

--More--

24

/root
Esteodiretriohomedousurioroot;seudiretrioparticular.Comojvimosodiretrio
home de um usurio sua rea de trablaho particular e, assim, outros usurios tem
restriesdeacessoaele.Nocasodo root,estasrestriesseaplicamaquaisqueroutros
usurios,oquenorecprocopois,comofalamosanteriormente,oroottemacessototala
todasasreasdosistema.
Porqueemumdiretrioseparadoenodentrodo/homecomotodososoutros?Umadas
razesparaistoqueestediretriodevesempreestaracessvelao root epodemocorrer
situaesondeodiretrio /home estejalocalizadoemumaoutrapartiooumesmoem
outrosistema,oquerepresentaumriscodeeventualmentenoestaracessvel.

/sbin
Este um outro diretrio onde o acesso para usurios comuns restringido. Como no
diretrio /bin, ele abriga muitos dos comandos/programas mais frequentemente
utilizados.Etretando,umdiretrio emquepodemosvermas,nodevemosmexer.Os
comandos do diretrio /sbin so para o uso do administrador do sistema, o root. O
comando shutdown, por exemplo est aqui. Se qualquer usurio tentar executar este
comando,ossistemanegar.Outroscomandospodem,eventualmente,serexecutadospor
usurioscomunsmaspodemgerarmensagensdeerro.
Listagemparcialdo/sbin:
oliver@darkside:/sbin$ ls
accton*

jfs_fscklog*

pvdisplay*

adjtimex*

jfs_logdump*

pvmove*

agetty*

jfs_mkfs*

pvscan*

arp*

jfs_tune*

pwdb_chkpwd*

arping*

kallsyms@

quotacheck*

arytst*

kernelversion*

quotaoff@

badblocks*

killall5*

quotaon*

blkid*

ksyms@

raid0run@

blockdev*

ldconfig*

raidhotadd@

--More--

25

/tmp
Neste diretrio, como o prprio nome sugere, ficam os arquivos temporrios. Estes
arquivospodemsergeradostantopeloprpriosistemaquantoporaplicaesqueusamos
nodiaadia.Porpadro,amaioriadasaplicaesdesenvolvidasparaoLinux,seutilizam
deste diretrio para suas informaes temporrias. Frequentemente encontramos "lixo"
nestediretrio.umdiretrioquepodeserusadoportodososusurios(leituraeescrita).

/usr
Aqui,encontramsearquivoseprogramasquedevemestardiponveisatodososusurios
do sistema. Ele umas maiores reas do sistema e sua funo guardar informaes
(programas e arquivos) que podem e dever ser compartilhadas e cujo contedo tenha
poucaounenhumaalteraocomopassardotempo.
Dentro do /usr veremos muitos diretrios que abrigam aplicaes e seus arquivos de
configuraoque,umavezinstalados/configurados,nomudaroporumbomtempoou
nunca.Umexemplodistoodiretrio/usr/X11R6/ouX11@.NelevamosencontraroX
Windows,osistemaparaambientegrficomaisutilizadonoLinux.
Algumas pessoas podem fazer confuso como o nome do diretrio e o seu significado
pensandoque/usrestariarelacionadocom"user"(oudiretriodosusuriosequivalente
ao/home)mas,narealidadeestrelacionadocom"UserSystemResources.
Listagemdo/usr:
oliver@darkside:/usr$ ls
adm@

doc/

i486-slackware-linux/

lib/

man/

spool@

X11@

bin/

etc/

include/

libexec/

sbin/

src/

X11R6/

dict/

games/

info/

local/

share/

tmp@

/var
Este diretrio contm arquivos cujos contedos so variveis. Normalmente, estes
arquivosarmazenaminformaessobreocorrnciaoustatusdeaplicaes/programasque
estosendoexecutadosnomomento.Estasinfomaesearquivosestoorganizadasem
vrios subdiretrios sob o /var. O sistema tambm mantm aqui informaes desta
naturezaemsubdiretrioscomo:/var/pid,/var/log,/var/spooleetc.Algumasdas
informaescontidasaquipodemsercompartilhadasenquantooutrasno.

26

Listagemdo/var:
oliver@darkside:/var$ ls
adm@

empty/

lock/

mail@

named/

rwho@

state/

www/

cache/

lib/

log/

man/

run/

spool/

tmp/

X11R6/

yp/

Shell
Podemosdefinirumshellcomoumprogramaqueinterpretacomandososquaispodemser
recebidosdiretamentedousuriooulidosdeumarquivoqueserchamadodeshellscript
ou programa shell. Scripts de shell so interpretados; no compilados. O shell l os
comandos do script, linha por linha, e procura por estescomandos no sistema eento
executaos.
Quandodigitamoscomandosparaapagararquivo,criardiretrioseetc,estamosusando
umshell.Todosistemaoperacionalusaumshellcomomeioreceberoscomandosdigitados
notecladoparaamquina.Eleumaformaamigvele flexveldecomunicaouma
espciedelinguagementreousurioeoS.O.;umtipodeinterface.
Almdeserumaformadeenviarcomandosparaokernel,umadasprincipaisfunesde
um shell proporcionaraousurioumambientedetrabalhoquepossaserconfigurvel.
Ouseja,quepossarserpersonalizado.

Tiposdeshell

sh ouBourneShell:o shell originaleaindausadoemambientesUNIX.umshell


bsico, um programa pequeno com um nmero no muito grande de
funcionalidades. Embora no sejaoshellpadroaindasuportadonoLinux por
razesdecompatibilidadecomambientesUNIX.

cshorCshell

:umshellcujasintaxelembraalinguagemdeprogramaoC.Alguns
ochamamdeshellparaprogramadores.

tcshorTurboCshell

:umasupersetdoCshell,comalgunsmelhoramentosquanto
avelocidadeeasetornarmaisamigvelparaousrio.

kshortheKornshell

:uma supersetdoBourneshell;emsuaconfiguraopadro
podeserumpoucoassustadorparausuriosiniciantes.

27

bashouBourneAgainshell

:oshellpadrodoGNU.Shell,intuitivoemuitoflexvel.
Almdeser,provavelmente,omaisindicadoparausuriosiniciantestambmuma
timaferramentaparausurios avanadoseproficionais. o shell padro paraa
maioriadosusuriosnoLinux.

SobrevivncianoLinuxModoTexto
Apartirdeagoravamostratardastarefasmaiscomunsecomoexecutalas.Namedidado
possvel,veremosalgumasoutrascoisasteiseinteressantes.

ConsolesVirtuais
O Linux, assim como sistemas operacionais do tipo UNIX, oferecem uma opo muito
interessante:osconsolesvirtuais.LembrandodoantigoMSDOS,aindaantesdoWindows,
tinhamosasituaoem quesomenteerapossvelexecutarmosumprogrmamaporvez.
TrabalharnoLinuxemmodotextolembraostemposdoMSDOS.Etretanto,oLinuxum
sistemamultitarefaemultiusurio.DiferentedovelhoDOS,podemostrabalharcommais
deumprogramaeatcomomaisdeumusurio,aomesmotempo.
Vamosaumexemplo:vocestatrabalhandonamquinaemumprograma,comoousurio
paulo,etemnecessidadedefazeralgumtipodeconfiguraonosistema,comoroot.No
necessrioencerraroprogramaemqueesttrabalhando.UsandoasteclasALT+F2oLinux
mostrarnovamenteatelainicialdelogin.Ento,sentrarcomonomeesenhadonovo
usuriocomquesequertrabalharepronto.
AcombinaaodeALTeumadasteclasdefunonoteclado,irpermitirotrabalhocomo
maisdeumusurioemmaisdeumprograma.Estessoosconsolesvirtuais.

FacilidadesdoBash
OBashdispedealgumasfacilidadesquecertamenteagilizamnossotrabalhonodiaadia
quandoutilizamososterminaisemmodotexto.Atabelaaseguirmostaalgumasdas
principais:

Combinao de teclas

Funo

Ctrl+A

Moveocursorparaoinciodalinhadecomando

Ctrl+C

Interrompeumprogramaemexecuoeretornaaoprompt

28

Ctrl+D

Efetuaologout.Equivalenteaoscomandosexitelogout

Ctrl+E

Moveocursorparaofinaldalinhadecomando

Ctrl+H

Equivalenteateclabackspace

Ctrl+L

Limpaateladoterminal(console)

Ctrl+R

Fazumabuscanohistricodoscomandojdigitados

Ctrl+Z

Suspendeumprograma(seminterrompelo)

Setas e

Buscasequencialnohistricodoscomandosjdigitados

Shift+PageUp/PageDown

Fazemarolagemdateladoterminal

TAB

Recurso de completar automaticamente o nome de um


arquivooucomando

TAB TAB

Mostra as possibilidades para o recurso de completar


automaticamente.

Metacaracteres(coringas)
*

Substitui qualquer string de zero ou mais caracteres

Substitui 1(um) caractere simples na posio

[abc...]

Qualquer dos caracteres delimitados pelos colchetes (um fen


pode ser usado para especificar uma faixa (Exemplo: a-z, AZ, 0-9)

[!abc...]

Qualquer combinao diferente dos caracteres delimitados


pelos colchetes (um fen pode ser usado para especificar uma
faixa (Exemplo: a-z, A-Z, 0-9)

Exemplos:
oliver@darkside:/sbin$ ls ba*

oliver@darkside:/sbin$ ls ch?

oliver@darkside:/sbin$ ls [c-i]*

29

PedindoAjuda
TodasasdistribuiesdoLinuxvmcomumafartadocumentao.Masmesmosemesta
documentaotemosaonossodisporosrecurosdoprpriosistemaquesoosmanuais
doscomandosedamaioriadasaplicaesinstaladasnosistema.
Duasformasdelermosessesmanuaissooscomandos:maneinfo

Exemplos:
oliver@darkside:~$ man ls

oliver@darkside:~$ info cd

Outroscomandosparaajuda:

whatis:mostraumaexplicaocurtasobreocomando

apropos:Buscaportodasasinformaesdisponveisarespeitodeumcomando
ou de um uma palavrachave que no seja necessriamente o nome de um
comandoouprograma.
oliver@darkside:~$ apropos email

audiosend

(1)

- Send an audio email message

mailpost

(8)

- feed an email message into a news group

news2mail

(8)

- a channel script to gateway news into email

pine

(1)

- a Program for Internet News and Email

showaudio

(1)

- Play an audio email message

Aopohelp:amaiorpartedoscomandosaceitaesteparmetroparamostrar
umapequenaajudasobreseuuso.

30

oliver@darkside:~$ cat --help


Usage: cat [OPTION] [FILE]...
Concatenate FILE(s), or standard input, to standard output.
-A,
-b,
-e
-E,
-n,
-s,
-t
-T,
-u
-v,

--show-all
--number-nonblank
--show-ends
--number
--squeeze-blank
--show-tabs
--show-nonprinting

equivalent to -vET
number nonblank output lines
equivalent to -vE
display $ at end of each line
number all output lines
never more than one single blank line
equivalent to -vT
display TAB characters as ^I
(ignored)
use ^ and M- notation,
except for LFD and TAB

Maiscomandos
Vejamosumalistadeoutroscomandoscomumabrevedescriodesuafuno

cd
Abreviaturadechangedirectory.Utilizamosparamudarmosdeumdiretriopara
outro
oliver@darkside:~$ cd /bin

ls
Listaocountudodeumdiretrio.umdoscomandoscomomaiornmerode
parmetrosdosistema.Vejasuapginademanual.
oliver@darkside:/bin$ ls a*
arch*

ash*

awk@

mkdir
Criaumnovodiretrionolocalatual.
oliver@darkside:~$ mkdir dir-teste

31

cp
Copiaosarquivoslistadosnalinhadecomandoparaoarquivooudiretrio
especificado.Aquipodemosusarosinal.(ponto)parafazerrefernciaao
diretrioatual.
oliver@darkside:~$ cp teste/arquivo.txt .

mv
Moveumarquivodeumlugarparaoutropodendonestemesmoprocessoalteraro
seunome.
oliver@darkside:~$ mv teste/arquivo.txt ./arquivo.doc

rm
Remove/apagaumarquivooudiretrio.Aceitavriosparmetros.
oliver@darkside:~$ rm teste/arquivo.txt

rmdir
Remove/apagaumdiretriomassomenteseesteestivervazio.
oliver@darkside:~$ rmdir teste

chmod
Mudaosatributos/permissesdeumaruivo.Useestecomandoparadarumpouco
deseguranaaosseusarquivos.
oliver@darkside:~$ chmod go-xrw teste/arquivo.txt

32

chown
Mudaosproprietrios(usurioe/ougrupo)deumarquivo
oliver@darkside:~$ chown oliver.mail /var/spool/mail/oliver

more
Listaocontedodeumarquivonateladeterminal.Mostraumapartedoarquivo
suficienteparapreencharatela(pgina)eaguardapelaaodousuriopara
continuar;linhaporlinhaoupginaapgina.
oliver@darkside:~$ more teste/arquivo.txt

cat
Concatenaocontedodearquivos.Tambmusamosparaexibirtodoocontedo
deumarquivo,nateladeterminal(console),deumasvez.
oliver@darkside:~$ cat teste/arquivo.txt

file
Mostradequetipooarquivo.Ouseja,quetipodedadosentocontidosno
arquivo.
oliver@darkside:/bin$ file sh
sh: symbolic link to bash

which
Procuraoarquivoespecificadonosdiretriosquefazempartedocaimhodebusca.
Casoencontreoarquivo,mostrasualocalizao.
oliver@darkside:~$ which bash
/usr/bin/bash

33

find
Procuraporumarquivoaapartirdodiretrioespecificado.Vrioscritriosdebusca
podemserespecificadoscomo:nome,tamanho,contedoeetc.
oliver@darkside:~$ find / -name bash

less
aversoGNUdomoreeacrescentaalgumasoutrasfuncionalidadescomobusca
porexpresses,poprexemplo.
oliver@darkside:~$ less teste/arquivo.txt

head
Mostraasnprimeiraslinhasdeumarquivo.
oliver@darkside:~$ head -10 .bash_history

tail
Mostraasnltimaslinhasdeumarquivo.
oliver@darkside:~$ tail -10 .bash_history

Juntandocomandos
Nalinhadecomandoouemscript.Temosapossibilidadedeusarossmbolos| (pipe)e
; paracombinarmosasaesdedoiscomandosdiferentes.
cm1; cmd2 Executa os somandos na seqncia em que aparecem.
cm1 | cmd2 Usa a sada do primeiro comando como entrada para o segundo.
Exemplo:
oliver@darkside:~$ cat /etc/passwd | grep oliver
oliver:x:1000:100:Oliver T Lessa,,,:/home/oliver:/bin/bash

34

Scriptsdeshell
Como j vimos, um shell como o bash pode interpretar comandos colocados em um
arquivoeexecutalos.Esteo script;emcertoscasosbemparecidocomumprograma
escritoemumaliguagemdeprogramaoqualquer.Falandoespecificamentedo bash
notriaagrandeflexibilidadequeeleofereceequefazcomqueosscriptssejamquaseto
versteisquantoprogramaemoutraslinguagens.
Novamostrataraquidaconstruodescriptsedetudooqueobashnosoferecenesta
rea.Vamoslistaralgumasdesuasfuncionalidadeemostrarumexemplo.

Funcionalidades

Permiteusodevariveis;

Arrays

Trabalhacompassagemdeparmetros

Temtodososoperadoresaritimticoscomuns

Trabalhacomexpressesesubstituiesdeexpressesecomandos

Permiteconstruescondicionais:if expressao; then comandos; fi

Comparaesnumricasedestrings

Loopscom: while expressao; do comandos; done

Suporteafunes(incluindopassagemdeparmetros)

etc

35

Umexemplodeumscriptsimples:
#!/bin/bash
clear
printf "This is information provided by mysystem.sh.
starts now."

Program

printf "Hello, $USER.\n\n"


printf "Today's date is `date`, this is week `date +"%V"`.\n\n"
printf "These users are currently connected:\n"
w | cut -d " " -f 1 - | grep -v USER | sort -u
printf "\n"
printf "This is `uname -s` running on a `uname -m`
processor.\n\n"
printf "This is the uptime information:\n"
uptime
printf "\n"
printf "That's all folks!\n"

36

Você também pode gostar