sobre o e-book - amazon simple storage service · assembly (linguagem de máquina) para a...

119

Upload: hanga

Post on 09-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

SobreoE-book

Este livro tem como objetivo capacitar o leitor na utilização e administração de uma distribuiçãoGNU/Linux.O livro não aborda em particular nenhuma distro¹, porém, os conceitos tratados sãoabrangentesdemodoquevocêpoderáteraliberdadedeescolherqualdelasutilizar.Olivrotambém

abordaconteúdorelacionadoaoexame101dacertificaçãoLPI(LinuxProfessionalInstitute).O conteúdo do livro foi enxugado de modo que ele vai direto ao ponto, sem rodeios. Esta

compactação é fruto da minha experiência de mais de dez anos atuando como professor dotreinamentodeLPIC-1e2ecoordenandopedagogicamentecursosdeAdministraçãodesistemasemescolasparticulareseUnivesidades.

Referências:Distro¹–AbreviaturaparaDistribuiçãodeGNU/LinuxTux4you²–Redesocialparaocompartilhamentodoconhecimentohumanowww.rede.tux4.com.br

Sobreoautorporelemesmo

MeunomeéJulianoRamos,souconsultordeServidoresLinuxamaisdedezanos,certificadoLPIC-3, Novell Linux e Ubuntu. Atuei na prefeitura de São Paulo coordenando trinta unidades deTelecentros(Centrosdeinclusãodigital)queeramimplantadosembairrosdebaixoIDH.Apóscincoanosàfrentedestetrabalho,seguiparaumaempresaprivadaatuandocomocoordenadorpedagógicoemprojetos para o terceiro setor e hoje atuo emminha própria empresa como consultor deTI eprofessor.SouativistadomovimentoOpenSourceepalestranteemeventoscomooCampusParty,masminhagrandeinspiraçãonavidaéseromantenedordaredesocialTux4youaqualsoutambémo criador.Estamídia social diferente das outras é composta por pessoas que curtem compartilharconhecimento. Neste espaço você ganha tempo e não “perde tempo”, hoje passamos de 50.000membros,mas ainda existe umgrandepotencial a ser explorado, aguardovocêpor lá e excelenteleituradestelivro.

Créditos

ADeus,quesemostroucriador,quefoicriativo.Seufôlegodevidaemmimmefoisustentoemedeucoragemparaquestionarrealidades

eproporsempreumnovomundodepossibilidades.

Àminhaamadaesposa,porsuacapacidadedeacreditar

emmim,mesmoquandoninguémmaisofez.

ÀminhapequenaluzefontedeinspiraçãoObrigadopeloseusorrisodiário

Giovanna,minhafilha.

Capítulo1–AorigemdoGNU/Linux

Nestecapítulo:

HistóriadoMultics–Unix–Minix–GNUeLinuxSimbiose:LinuxeGNUSoftwareLivreSimbioseGNUeLinux

No ano de 1964 o MIT (Instituto de Tecnologia de Massachusetts) junto com a divisão de

computadoresdacompanhiaGeneraleletric(GE)eoslaboratóriosBelldeTelefoniainiciaramumprojeto que estava muito adiante do seu tempo. Tratava-se da criação de um grande sistemaoperacionalde“TempoCompartilhado”.Emumsistemade tempocompartilhadoacapacidadeeoprocessamentodamáquinaédivididoentremúltiplosusuários,queacessamatravésdeterminais.Ousuário dirige a sua tarefa, seus comandos são interpretados e executados em seguida(processamentoonline).

Segundoavisãodos seuscriadores,haveria imensocomputadores,poderosose inderrubáveis,rodandoMultics, sendo acessados pormilhares de pessoas em "terminais" espalhados por todo oplaneta.Essesusuáriospagariamsuas"contasdocomputador"comohojepagamosluz,águaeTVacabo.

Noanode1969os laboratóriosBell abandonaramoprojeto, suadivisãode computadores foicompradapelaHoneywell em1970que tentouusarde formacomercial oMULTICS semsucesso.Comdurascriticasoprojetoficouabandonadoetevesuaúltimainstalaçãooperacionaldesligadaem31deoutubrode2000.Apesardoinsucessodesteprojeto,oMULTICSfoioiníciodeumarevoluçãonomododesefazereusarsistemasoperacionais.

UNIX

KenThompson,trabalhavaparaaGEdesenvolvendooMULTICS.Quandoaempresaabandonouoprojetoem1969elecomeçouareescreverosistemanumconceitomenosambicioso,batizando-odeUnicseusandoa linguagemdemontagem(assembly).Mas tarde,osistemafoi rebatizadodeUnixpôrBrianKernighanquefoipioneironodesenvolvimentodaslinguagensdeprogramaçãoAWKeAMPL.

UmmarcoimportantenomundoUNIXaconteceuem1973quandotodoosistemafoiportadodeAssembly (linguagem de máquina) para a “Linguagem C” . A linguagem de programação C foicriadapôrDennisRitchie,semsombradedúvidas,grandepartedosucessodoUnixeseusderivadoséporcausadesta linguagemdeprogramação.A linguagemC foi influênciaparaas linguagensdeprogramaçãorecentes,taiscomo:C++,Java,C#,PHPeJavascript.Ritchiemorreuem12deoutubrode 2011, uma semana após a morte de Steve Jobs. Sua morte só foi noticiada em alguns portaisespecializados,bemdiferentedoqueaconteceucomJobs.

MINIX

“Umaopçãolivre,decódigofonteaberto,paraseaprenderUNIX”.AndrewS. Tanenbaum criou o sistema operacionalMINIX para explicar o funcionamento dos

sistemasoperacionais.Tanenbaumlançouumlivroem1987chamado"OperatingSystemDesignandImplementation"quecontinha12.000linhasdecódigodokernel,gerenciadordememóriaesistemasdearquivos.EstesistemaeracompatívelcomasétimaediçãodoUNIX,porém,eradecódigoabertoe disponível.Os cursos universitários deTecnologia, começaram a usar oMINIX que rodava emcomputadoresmodestos;paraexplicarofuncionamentodosistemaoperacionalUNIX,proprietário,caríssimoequeexigiaumsupercomputador.

GNU

“OiniciodoconceitodeSoftwareLivre”

RichardMatthewStallman,ouRMSnasceuem16demarçode1953,fundadordoprojetoGNUe

dafundaçãodosoftwarelivreéumdosativistasmaisatuantesemfavordosoftwarelivrenomundo.Seu primeiro contato com um computador aconteceu no ano de 1969 no primeiro ano do ensinomédio (High School), Stallman passou o verão escrevendo seu primeiro programa - um pré-processador para a linguagem de programação PL/1 no IBM360. "Eu escrevi primeiro emPL/1,passandoentãoparaalinguagemdemáquina(assembly)quandooprogramaPL/1tornou-segrandedemaisparacabernocomputador".ContouStallman,anosdepois(Williams2002,Capítulo3).

Nosanosde1980aconteceuo"Odeclíniodaculturahacker"queatéentãodominavaavidade

Stallman.Aportabilidadedossoftwarestornou-seumproblemaparaosfabricantesdecomputadores,quecomeçaramanãodivulgarocódigofontedosseussoftwaresdemodoqueosconcorrentesnãopoderiamutilizá-lo.QuandoestanovaculturadesoftwaresproprietáriosatingiuoMITondeRMStrabalhava, ele a rejeitou. Negou-se a assinar acordos de não-divulgação de informação. Eleescolheu,aocontrário,compartilharseutrabalhocomosoutros,oqueconsideroucomoumespíritoclássicodecolaboraçãocientífica.Noanode1984StallmanparouseutrabalhonoMITparadedicar-seintegralmenteaoseuprojetoGNU,anunciadoemsetembrode1983.

Noanode1985RMSpublicouoManifestoGNU¹.Referência:http://www.gnu.org/gnu/manifesto.pt-br.html

GNUeoKernel

OGNUéumsistemaoperacionalquefoicriadonospadrõesUNIXporémcomumcódigopróprioqueélivreparaserdistribuído,usado,melhoradoecopiado.Porémde1985quandofoi lançadoomanifestoGNUaté1992osistemaoperacionalGNUnãoestavaprontoparaserdistribuído,faltava-lheumkernelquefosserealmenteutilizável.

Kernel(Núcleo)éosoftwarequefazagestãodoHardwaredoseucomputador,eleservedeponteentre os aplicativos e o processamento real de dados feito a nível de Hardware. O sistema GNUiniciou o desenvolvimento de um kernel chamado HURD em 1990 porém por um erro dedesenvolvimento este projeto acabou ficando estagnado. De acordo com Thomas Bushnell, oarquitetoinicialdoHurd,oplanoinicialeraadaptarokernel4.4BSD-lite(Eistoprovavelmentedariacerto de acordo comBushnell) para o sistemaGNU, porém, Stallman propôs que eles usassem oMach microkernel que estava sendo desenvolvido na universidade Carnegie Mellon (CMU). Estaescolhaatrasouodesenvolvimentoemtrêsanos,devidoaincertezaseaCMUirialiberarocódigodoMachemuma licençadeacordocomoGNU.Neste intervalode incertezasalgo surpreendenteaconteceu.

OKernelLinux

O projeto GNU seguia firme com vários desenvolvedores abraçando a causa, foram criadasferramentasindispensáveisparaumsistemaoperacional,comoumcompiladorparaalinguagemC,editores de texto entre outras aplicações. Em 1992 o sistema já estava "quase" pronto, mas aindafaltava um kernel funcional. Neste ano um jovem Finlandês chamado Linus Torvalds, mudou alicençadeumkernelquetinhadesenvolvidoapartirdoMinix,deacordocomsuaspalavras(EraumMinixmelhorqueoMinix)para a licença livreGPLdoprojetoGNU.Então, nãodemoroumuitopara os desenvolvedores empacotarem o Kernel Linux, com as dezenas de softwares GNU jádisponíveiscriandoumsistemaoperacionalcompleto.

ASimbiose

Simbiose é uma relaçãomutualmente vantajosa entre dois oumais organismos vivos de espéciesdiferentes.Explicaroqueé"simbiose"foiamelhormaneiraqueencontreiparaexplicarosucessodoGNU/Linux,umdependiadooutro.SemalicençalivredoprojetoGNUchamadadeGPL(GNUGeneralPublicLicense)oLinuxnãoteriaalcançadoseusprimeirosdesenvolvedoresvoluntáriosquetornaramocódigoutilizávelemlargaescala,alémdisto,paraousuário final, foramossoftwaresaplicativos(GNU)quetornaramosistemaoperacionalrealmenteoperacional.

FreeSoftware

AFSF-FreeSoftwareFoundationemportuguês(FundaçãodoSoftwareLivre)éumaorganizaçãosem fins lucrativos, fundada em 04 de outubro de 1985 por Richard Stallman e que se dedica aeliminação de restrições sobre a cópia, redistribuição, estudo e modificação de programas decomputador.Noanode1989RichardStallmanlançoupelaFSFalicençaGPL(GnuPublicLicense)-LicençaPúblicaGeralquegarantiaaosdesenvolvedoresdoprojetoGNUqueumsoftwarelivreseriasemprelivre.Stallman,compreendeu,queseriamuitodifícileliminarasleisdeCopyright(direitosautorais)então,eleusouesta leia favordesuas ideias,criandooconceitodeCopyleft (Esquerdosautorais).

A GPL é uma licença com Copyleft, isto significa que ela é "viral", ou seja, quando umprogramador usa um código GPL e altera/modifica este código ele também deve deixar estasmodificaçõessobreGPL.MasquaisliberdadesaGPLgarante?Sãoquatroliberdadesbásicas:

ALiberdadeparausarosoftwareALiberdadedeestudarosoftwareALiberdadedecopiarecompartilharosoftwarecomoutrosALiberdadeparamodificarotrabalhoetambémparadistribuirostrabalhosmodificadosederivados

Com a garantia destas liberdades, a GPL permite que os programas sejam Administrando o

linuxdistribuídosereaproveitados,mantendo,porém,osdireitosdoautorporformaanãopermitirque essa informação seja usada de umamaneira que limite as liberdades originais.A licença nãopermite,porexemplo,queocódigosejaaponderadoporoutrapessoa,ouquesejamimpostossobreelerestriçõesqueimpeçamquesejadistribuídodamesmamaneiraquefoiadquirido.Comopassardos anos, outras licenças livres foram desenvolvidas, algumas mais outras menos permissivas, aFundaçãodosoftwarelivreconsideralivreumalicençaqueatendapelomenosasquatroliberdades.AGPLganhouuma segundaversão em1992 (GPLV2) e a uma terceira versão em junhode2007(GPLv3)queéaversãoatual.

DistribuiçãoGNU/Linux

VocêpodeusarosistemaoperacionalGNUcomokernelHURD(Nãoestável),BSDoucomoLinux(Maiscomumerecomendado).Nestecaso,écomumchamarmosdedistribuiçãoGNU/Linux.UmadistribuiçãoGNU/Linux(distro)éumsistemaoperacionalcompleto,istoincluionúcleo(linux),umconjunto de pacotes (softwares), um sistema de gestão de pacotes e um repositório. Algumasdistribuições foram criadas e são mantidas por pessoas e/ou comunidades de voluntários, outrasporém, são mantidas por empresas. A primeira distribuição de GNU/linux foi lançada em 1992chamadadeMCCInterimLinux,emseguidasurgiuaSLS(SoftlandingLinuxSystem)eaindaquenão tenha durado muito, foi a base para a criação da distro Slackware (Que até hoje está emevidência).Em1993IanMurdochlançouoDebianLinux,enoanoseguintevieramoRedHatLinuxeoSuSeLinux.

Capítulo2–SobreasdistribuiçõesdeGNU/Linux

Nestecapítulo

ConheçaasprincipaisdistribuiçõesdeGNU/LinuxDebian,Slackware,Fedora,Ubuntu,ArchLinux,TrisquelLinux

Debian

ODebianfoilançadoem16deAgostode1993porIanMurdock,aotempoestudanteuniversitário,queescreveuoManifestoDebianqueapelavaàcriaçãodeumadistribuiçãoLinuxasermantidadeuma maneira aberta, segundo o espírito de Linux e do GNU. O projeto Debian cresceuvagarosamenteaté1995quandooprojetodpkgganhounotoriedade.

O dpkg é a base de gerenciamento de pacotes da distribuição linux Debian. Foi inicialmente

criadoporMattWelsh,CarlStreetereIanMurdockcomoumaaplicaçãoPerl,sendoposteriormentereescrito,emsuamaiorparte,paraalinguagemC(Linguagemdeprogramação)porIanJacksonem1993.Odpkgéumsoftwareparainstalar,removereatualizarprogramas.Aprimeiraversão1.xdoDebianaconteceuem1996.

OciclodedesenvolvimentodasversõesdoDebianpassatrêsfases:

“Unstable”-Instável“Testing”-Teste“Stable”-Estável

Quando as versões estão na fase “testing” elas são identificadas por codinomes tirados dos

personagens do filme “Toy Story”. Ao se tornarem “Stable” as versões recebem um número deversão(ex:5.0).

Aversão“Testing”atualé“Stretch”.Aversão“Unstable”terásempreonomeSid,personagemquecostumavaaquebrarosbrinquedos,emalusãoaosbugsquepodemocorrernestaversão.

SlackwareLinux

OSlackwareéumsistemaoperacionalbaseadoemprojetosoficiaisdesoftwarelivre,desenvolvidoporpessoasespalhadasnomundoorganizadasemcomunidadeseinstituições,sendoaprincipaldelasaFSF(FreeSoftwareFoundation)comseusprojetoselicenciamentosGNULGPLdesoftwarelivre.UtilizaoKerneloficialdaLinuxFoundation,Linux.Onome“Slackware”tevesugestivaorigemda“TheChurchOftheSubGenius”(IgrejadoSubgênio)queéumaorganizaçãoreligiosaoriginalmentebaseada emDallas, no estado estadunidense do Texas, a igreja do Subgênio ganhou destaque nasdécadas de 1980 e 1990 emantêm uma presença ativa na internet.A igreja ganhou espaço com apopularizaçãodainternetem1990comumsiteelaboradamentedecoradoedois“newgrousUsenet”(alt.slackealt.binaries.slack)epeloprogramaderadiosemanal(Hourofslack).

PatrickVolkerdingcriadordoSlackwareincorporoudaIgrejadoSubgênioestenome,deonde

idealiza-se o termo “SLACK” que, satírica e ironicamente, incorpora-se o “Senso de liberdade,independência e originalidade para alcançar suas metas pessoais”. Como a tradução literal de“SLACK”é“Preguiça”e“WARE”é“Produto”muitosassociamonomecomo“Produtopreguiçoso”principalmenteporqueoSlackwarenãousasoftwaresdelançamento,somenteversõesestáveis,alémdisto, todas as configurações do sistema são feitas diretamente nos documentos de texto deconfiguraçãoenãocomutilitáriosgráficos.

O Slackware Linux (ou simplesmente “Slack”) tem como objetivo manter-se fiel ao padrões

UNIX,mantendo-sebemestruturada eorganizadapara administradores eusuários, profissionais eacadêmicos,rejeitandoferramentasdeconfiguraçãoqueescondamorealfuncionamentodosistemaadotando o princípio KISS (Acrônimo em inglês de:Keep It simple, stupid – Faça isto simples,estúpido)deprodução.AprimeiraversãodoSlackware,o1.0.0,foilançadaem16ou17dejulhode1993porPatrickVolkerding,fundadoreprogramadorlíderdoprojetoatéosdiasatuais.

O Slackware possui seu próprio gerenciador de pacotes, o pkgtool, e traz os comandos de

gerenciamento: installpkg, upgradepkg, removepkg, explodepkg, makepkg; todos semgerenciamento de dependências. O formato dos pacotes .tgz/.txz são bastante similar a um .tar.gz,contendoapenasosarquivosasereminstaladosemsuasrespectivaspastasemrelaçãoàpastaraizdosistema,alémdeumscriptcomcomandoscomplementaresparaainstalação.

Fedora

FedoraantigamentechamadodeFedoraCoreéumsistemaoperacionalquetemporbaseolinux,adistribuiçãolinuxécompletamentelivredecustosparapoderusufruirepartilhar.FoicriadapelaRedHat.AtualmentemantidapeloprojetoFedora(FedoraProject)epatrocinadopelaRedHat.

OgerenciadordepacotesdoFedoraéoRPM (RedHatPackageManager),oRPMservepara

instalar, atualizar, desinstalar, verificar e procurar softwares. Até a versão 17 o instalador erasemelhante ao da distribuição Red Hat 9, na versão 18 o sistema de instalação foi totalmentereformulado.NovasversõesdoFedorasãolançadasaproximadamenteacadaseismeses.Alémdasversões oficiais, o Fedora possui também uma versão instável, o Rawhide, que serve como umcampodeprovasparatodasasatualizaçõesemudançasquefarãopartedapróximaversão.

OFedora distribui software absolutamente livre que temum instalador gráfico completo, vemcomferramentasdesktopedeadministraçãofáceisdeusar.Fedoraéonomedeumclássicochapéuquesurgiunadécadade20.

Ubuntu

UbuntuéumadistribuiçãobaseadanoDebianpatrocinadapelaCanonicalLtd.OUbuntudiferencia-sedoDebianporterversõeslançadassemestralmente,pordisponibilizarsuportetécniconos9mesesseguintes ao lançamento de cada versão (as versões LTS – Long Term Support – Para desktop eservidorrecebem5anosdesuporte)epelasuafilosofiaemtornodesuaconcepção.ApropostadoUbuntu é oferecer um sistema que qualquer pessoa possa utilizar sem dificuldades,independentementedenacionalidade, nível de conhecimentoou limitações físicas.O sistemadeverserconstituídoprincipalmenteporSoftwareLivre.Devetambémserisentodequalquertaxa.

O nome “Ubuntu” - [u'buntu] deriva do conceito sul africano de mesmo nome, diretamente

traduzido como “Humanidade comos outros” ou “sou o que sou pelo que nós somos”.O ubuntuassimcomooDebianutilizapacotesnoformato.DEBquepodemserinstaladospeloutilitáriodpkgouapt.

Um grande diferencial do Ubuntu em relação as outras distribuições de GNU/Linux é a sua

interfacegráficaUnity.OUnityfoidesenvolvidopelacomunidadeAyatanaeadaptadopelaCanonicalLtd.Suaprimeira aparição foi naversão10.10paranetbooks, ele foi desenhado inicialmenteparafazer um uso mais eficiente do espaço das telas limitadas dos netbooks, devido ao seu sucesso,tornou-sepadrãonaversão11.04queaindaincluíaoGNOMEcomoopção.DiferentedoGNOME,KDE,XFCEeLXDEoUnitynão incluiaplicações, jáque foi feitoparausarprogramasGTK+ jáexistentes.Apartirdaversão11.10doUbuntuoUnitypassouaseraúnicainterfacepadrão.

Opensuse

ApósadquiriroSuselinuxemjaneirode2004,aNovell,umaempresaAmericanaquenadécadade1980ficoufamosaporseusistemaoperacionalderede(Netware)incentivouodesenvolvimentodeumacomunidadeparaodesenvolvimentodeumadistribuiçãoGNU/Linux.AcomunidadeOpenSuseProjectépatrocinadapelaNovellecontacomvoluntáriosdetodoomundo.

OpenSuseécompletamentelivreedisponívelparadownload,elestambémvendemumDvd-Box

para o público em geral que deseja colaborar com o projeto. O OpenSuse possui edições paraarquiteturas x86 e x86-64.OOpenSuse é compatível comoRPM (RedHat Package) e possui seuprópriogerenciadordepacotesZypperquefuncionadeformasimilaraoapt-getdoDebian.

ArchLinux

OArchassimcomooSlackwareéumadistribuiçãoKISS.Osistemaébaseadoemtornodearquivosbinários,quesãoclassificadoscomoi686ex86_64,sendoumsistemaparecidocomosports/ebuildestádisponivelparaacompilaçãoautomáticadospacotes,trata-sedoArchBuildSystema.

OArchLinuxéconsideradoumadasdistribuiçõesmaisdifíceisdeseinstalar,istoporquê,não

existeumprogramade instalação.Vocêvai realizando tarefasatravésdescriptsquesimplificamoprocesso.O gerenciamento de pacotes é feito pelopacman que conduz a instalação, atualização eremoçãoeatualizaçãodepacotes.

TrisquelLinux

Oprojetonasceuem2004comopatrocíniodaUniversidadedeVigo,efoioficialmenteapresentadoemAbrilde2005comRichardStallman,fundadordoprojetoGNU.Oprojetohospedaseusprópriosrepositórios,quederivamdo“main”e“universe”doUbuntu,porémtodoosoftwareproprietáriooucomlicençasnãolivressãoeliminados.OTrisquelestánalistadedistribuiçõeslivresdaFSF.

Capítulo3–InstalandooLinux

Nestecapítulo:

PassossobreainstalaçãoAnalisandooHardwareUsandoumLive-CDInstalandoolinuxpelopendriveParticionandooDiscorígido

Quando você compra um computador, normalmente ele possui o Microsoft Windows pré-

instalado.SevocêpretendeusaroLinux,deverárealizarasuainstalação.O processo de instalação de uma distribuição GNU/Linux costuma ser fácil. A parte que

normalmentecausa fobianosnovatoséoparticionamentododisco,o restoda instalaçãoé rotina,apenas uma questão de seguir instruções. Se você ainda não se sente confortável para instalar oLinux, tudo bem, você poderá realizar o download de umadistribuiçãoLive-CDe executá-la semprecisaralterarnenhumamodificaçãonoseudiscorígido.TodoosistemanestecasofuncionapeloCDouDVD,quandovocêreiniciaocomputadoreremoveoCDdodrive,todasassuascoisasestãolá,intactas.

Porém, quando você executa o sistema pelo CD/DVD e até mesmo pelo pendrive, não terá o

mesmodesempenhoeprazerqueéusarolinuxnativamenteemseucomputador.

PassosdainstalaçãodoLinux

InstalarqualquerdistribuiçãodeLinuxenvolveumasériedepassos.Vouorientá-losobreestas

etapasdemodoquevocêpoderáinstalarqualquerumaseguindoasorientaçõesdosinstaladores.Algumas distribuições de Linux exigem que você tenha um pouco de informação sobre o

hardware do seuPC.Felizmente a grandemaioria das distribuições instala de forma automatizadatodososseusperiféricos,exemplo:UbuntuLinux,OpenSuse,FedoraeLinuxMint.

1)Oprimeiropassoévocêrealizarodownloaddesuadistribuição.Nositeoficialécomumo

link para a seção download com diferentes arquiteturas. Escolha 32 Bits se seu computador temmenos de 4GB dememóriaRAM e um processadormais antigo, opte pela versão 64Bits se seuprocessadorémaismodernoevocêpossui4GBoumaisdememóriaRAM.

É padrão que a distribuição seja disponibilizada no formato (ISO) – Imagem de disco. No

Windows, clique com o botão direito do mouse sobre a imagem da distro que você realizoudownloadeescolhaaopção“gravadordeimagensdediscodowindows”.

2)OSegundopasso é configurarnoSetupdo seuPCa inicializaçãopeloCD/DVD.As etapas

específicasparaentrarnaconfiguraçãodoSetupedefinirodispositivodebootvariadecomputadorparacomputador.NormalmentevocêacessaoSetupcomumatecla(F2ouDelete)apósligaroPC,movimentando-se com as setas do teclado, você localiza a opção (Boot) e coloca oCD/DVD emprimeiro lugar da ordem de boot. Após isto é necessário salvar o Setup, fechar e iniciar ocomputadorcomoCD/DVDdesuadistronodrive.

3)Caso sua distribuição sejaLive, você poder escolher a opção de testar a distribuição.Neste

caso, após reiniciar o computador remova o CD/DVD. Nenhuma alteração será realizada no seudiscorígido.

4)Sevocêpretende instalaroLinux,antesdequalquercoisa, façaumbackupdeseusarquivos

(emoutroHD,DiscoRígidoexterno,emalgumHDvirtualcomoodropboxougoogledrive).SevocêpretendeinstalarjuntocomoWindows(DualBoot)demodoquepossaescolherqualusarnainicializaçãodocomputador.InstaleprimeirooWindowsereserveumespaço(pelomenos20GB)para o Linux. Instaladores como os do Ubuntu, OpenSuse, Fedora, já vão detectar este espaço eofertá-lo para você instalar o sistema. Caso o instalador pergunte sobre em qual local instalar ogerenciadordeboot(gruboulilo)selecioneMBR.

5)Seleçãodesoftwares.Agrandemaioriadasdistribuiçõesjáinstalamumconjuntodepacotes

(softwares) de modo automático. Se você é iniciantes sempre escolha as opções (default) dosinstaladores.

6)Nofinaldainstalaçãovocêvaireiniciaroseucomputador.Lembre-sederemoveroCD/DVDparanãoiniciarnovamenteoprocessodeinstalação.DistribuiçõescomooFedora,OpenSuseeOpenMandriva,oferecempacotesadicionaisnoprimeiroboot.

AnalisandooseuHardware

Sevocê está preocupado se seuPCpodeounão rodar oLinux, aqui está uma lista das principaisconsideraçõesantesdecomeçaroprocessodeinstalação.

UnidadedeDVD:VocêdeveterumaunidadedeDVDequeseucomputadorsejacapazdeiniciarporestaunidade.Omodeloexatonãoimporta.SevocêadicionarumaunidadedeDVDexternaaumaportaUSBfuncionarásemproblemasnolinux.DiscoRígido:QualquerunidadedediscoIDE/SCSIfuncionanolinux.Parausarasdistribuiçõesatuaisconfortavelmente,tenhapelomenos20GBdeespaço.Teclado:TodosostecladosvãofuncionarnoLinux.Monitor:Otipodemonitornãoéparticularmentecrítico,excetoqueeledevesercapazdeexibirasresoluçõesdetelaqueaplacadevideousa.Seoinstaladornãodetectaroseumonitorvocêpodeescolherummodelogenérico.Mouse:Oprogramadeinstalaçãopodedetectaromouse.Todosostiposdemouse(comoPS/2ouUSB)vãofuncionarnoambientegráficodoLinux(XWindowSystem).Placaderede:Normalmenteoinstaladorirádetectaretentarconfigurar(DHCP)suaplacaderede.Sevocêtiverproblemas,tenteencontrarnaplacaamarcaeomodelo,procurenosbuscadoresinformaçãodecomoprocederparainstalarnasuadistroespecifica.Placadesom:SeoseuPCtiverumaplacadesom,façaumapesquisacomamarcaemodelonaWEBparatercertezaseelaécompatívelcomolinux.PlacadeVídeo:Linuxfuncionabemcomtodasasplacasdevídeo(Tambémconhecidoscomoadaptadoresdevídeo),algunsmodelosporémnãopossuemsuporte3Devocêpodeterproblemascomaltasresoluções,destacoaqui,osadaptadoresSYSqueestãoemNotebooksmaisantigos,dalinhaPositivo.Sevocêusaumadaptador:Intel,NvidiaouATIfiquetranquilocomoLinux.Impressora:EsteéumhardwarequevocêdevepesquisarmarcaemodeloparasaberseécompatívelcomoLinux.Equipamentosquepossuemumbomsuporte(tratando-sedeimpressoras)sãoosfabricadospelaHP.

VocêpodevisualizarumalistadeHardwarecompatívelcomolinux,nesteendereço:http://www.tldp.org/HOWTO/Hardware-HOWTO/

InstalaçãodoUbuntuLinux

Este livro não aborda em particular nenhuma distribuição de Linux, no entanto, abordaremos oprocessodeinstalaçãodoUbuntuLinuxqueconsideroomaissimplesefácilparausuáriosiniciantes.

Ligue o computador, coloque o CD/DVD do Ubuntu. Deixe o computador prosseguir com a

inicializaçãodoinstalador.Hojeemdiaagrandemaioriadoscomputadoresnovosjásaemdefábricacoma configuraçãoparadarbootpelaunidadedeCD/DVD-ROM,portanto, seo seu computadornãoestivercomestaconfiguraçãodefinida,vocêdeveráentrarnosetupdasuamáquinaparasetaressaopção.

A figura abaixomostra a tela de configuraçãoda linguagema ser utilizada.Vamos escolher alinguagemPortuguêsdoBrasiledarumcliquenobotãoInstalaroUbuntu:

Na tela que aparecer em seguida, Preparando para instalarUbuntu, selecione a opção InstalaresseprogramadeterceiroeentãocliqueemContinuar.

Caso seu computador não possua nenhum sistema operacional, a tela Tipo de Instalação, iráaparecer conforme imagem abaixo. Dê um clique na primeira opção (Apagar disco e reinstalarUbuntu)edepoisumcliquenobotãoInstalarAgora.

Casovocêtenhaalgumsistemaoperacional,vocêteráaopção(ApagaroseusistemaoperacionaleinstalaroUbuntu).

Na próxima tela,Onde você está?, dê um clique na região domapa onde você se encontra e

cliquenobotãoContinuar:

NatelaDisposiçãodoteclado,vejaqueautomaticamenteoinstaladorjámarcaexatamenteotipode layout do seu teclado. Se você estiver em dúvida se o layout do seu teclado foi configuradocorretamente,bastavocêdigitaralgumaspalavrasacentuadasnocampo"Digiteaquiparatestaroseuteclado".Seaconfiguraçãoestiver incorreta,vocêpoderádarumcliquenobotãoDetectar adisposição do teclado. Quando terminar e o teclado estiver corretamente configurado, clique emContinuar:

Agora nesta próxima tela (Quem é você?), você deverá fornecer algumas informações

necessárias ao instalador. Veja no exemplo abaixo como fizemos o preenchimento e ao términocliqueemContinuar:

Ao término da cópia dos arquivos, clique no botão reiniciar agora lembre-se de remover o

CD/DVDdodrive.

Capítulo4–Noçõesfundamentais

Nestecapítulo:

NoçõesfundamentaissobreoShellHistóricodecomandosGerenciamentodeArquivosFiltrosdeTexto

OShell

OShell é um interpretador de comandos que analisa o texto digitado na linha de comandos e osexecutaproduzindoalgumresultado.Sevocêestáusandoomodográfico,aperteasteclas:ctrl+alt+f1paraacessaromodo-texto.

OsprincipaistiposdeShell:bash,sh,csh,tcsh,kshezsh,sendoobash,oshellpadrãonamaioriadasdistribuiçõesdeLinux.PromptdoShellOsímbolo$(dólar)identificaopromptdecomandosdoshell.Algumasvariaçõesdestesímbolo

sãopermitidas,comoonomedeusuário,docomputador,diretóriocorrenteentreoutrasopções.SimbologiaOpromptdoshellpodevariar,dependendodousuárioqueestáutilizandoosistemanomomento.

Osinal“$”significaqueumusuáriocomuméqueestáusandoamáquina.Osinal“#”significaqueosuper-usuárioestálogadonosistema.

Root–TambémconhecidocomoSuperUsuárioOsuper-usuárioéoadministradordosistemaLinux.Ele tempoderesparafazerabsolutamente

tudonosistema.Eleéconhecidocomousuário“root”ou“raíz”traduzindodoinglês.VariáveisAmbientaisDurante a execução do bash algumas variáveis são carregadas, elas também, podem ser

configuradasmanualmente.

PromptSting1

A primeira variável que abordaremos é a “prompt string 1” ou simplesmente PS1, esta variávelguardaoconteúdodopromptdecomandosdobashquandoeleestáprontopararecebercomandos.

Oconteúdodequalquervariávelpoderáservisualizadoutilizandoocomandoechoeonomedavariável:

echo$PS1Geralmenteopromptéexibidodaseguintemaneira:juliano@trisquel:/home$Querepresenta:nomedeusuário@nomedocomputador:/diretórioNavariáveléconfiguradodaseguintemaneira:\u@\h:\W\$VejamosaseguirumatabelacomoscaracteresdaPS1:\]Termina\tExibeahora\hExibeohostname(nomedocomputador)\sExibeoshell\uEspecificaonomedousuário\wEspecificaodiretóriocorrenteExemplodeconfiguraçãodavariávelPS1,abraseuterminaldecomandosedigite:PS1=”\u@\h:\W:”

PromptString2

AvariávelPS2armazenaoconteúdodopromptdecomandosquandoénecessáriomúltiplaslinhasdecomandosparacompletarumcomando.Estavariáveléosimboloqueapareceparaousuárioquandoumcomandonecessitaseguirparaumasegundalinha.

VariáveisGlobaleLocalExistemdoistiposdevariáveisdeambiente:Globalelocal.Variáveisdeambientelocal:São as variáveis disponíveis pelo shell corrente, e que não estão sendo acessadas por

subprocessosdosistema.Paravisualizarasvariáveisdeambiente locais,executeoscomandosenvouprintenv.Asvariáveisglobaispodemseracessadasporqualquershell.

Comandosparamanipularasvariáveisdeambiente:echoExibeovalordeumavariáveldeambiente,exemplo:echo$USEREspecificarumintervalodetempo(Emsegundos)antesdeexecutaropróximocomando:sleepExemplodeusodocomandosleep:sleep5Paratornarglobalumavariaveldeambienteuseocomandoexportcomonoexemplo:VALOR=10exportVALORExecutareexportarcomandoscontidosemumarquivonoshellcorrente:aliasExemplodocomando:aliascor='ls–color'

Noexemploacima,criamosumcomandochamado(cor)queaoserutilizado,executaocomandols–color.Sevocêdesejarqueestecomandoexistaapósreiniciaroseucomputadordeverácriaroueditar(casojáexista)oarquivo.bashrclocalizadonoseudiretóriodeusuário.Observequenafrentedonomedoarquivoexisteumponto(.bashrc)noambienteUnix,istorepresentaumarquivooculto.Sevocêestáemumterminaldecomandospelomodográfico,podeexecutaroseueditordetextojáabrindooarquivo,nestecaso,digiteocomando:

gedit/home/seu_usuario/.bashrcSevocênãotemoeditorgedit,tentecom(kedit,xedit,pluma).Vocêtambémpodeabrirumeditor

emmodo-texto,omaissimpleséonanonestecasouse:nano/home/seu_usuario/.bashrcColoquenoarquivoalinha:aliascor='ls–color'No caso do editor nano, salve o documento com as teclas:<ctrl+o> e saia do editor com as

teclas:<ctrl+x>Paraexcluirovalordeumavariáveldeambiente,executeocomandounset.Exemplo:unsetVALOR

Variáveisdeambientedobash

Vejamosagora,algumasvariáveisdegrandeutilizaçãodoshellbash:MANPATHExibeosdiretóriosondeocomandomanencontrasuaspáginasdemanual.echo$MANPATHDISPLAYExibeoterminaldoambientegráficoatualmenteusado,exemplo:echo$DISPLAYHOMEExibeodiretóriohomedousuárioecho$HOMETERMExibeoterminalatualmenteutilizado;echo$TERMLOGNAMEExibeologindousuárioecho$LOGNAMEUSERExibeonomedeusuárioecho$USERLANGExibeoidiomadosistemaecho$LANGHISTSIZEDefineovalormáximodecomandosdohistory.echo$HISTSIZEOSTYPEExibeaarquiteturadosistema.echo$OSTYPE

HistóricodeComandos

OShellmantémumhistóricodosúltimoscomandosdigitadospelousuário,podendoservisualizadopelocaractere!De4formasdiferentes:

!!Visualizaroúltimocomandodigitados!nOnde n é o número que você deve especificar que está no histórico de comandos. A cada

comandoquevocêdigitaeleficararmazenadoemumalista.!stringComandosqueiniciamcomostringquevocêespecificar.(String:éumasequênciadecaracteres,

normalmentepalavras).!-nOnde n é o numero que você deve especificar (Ele mostra a partir do último comando do

histórico).

history

Exibealistadecomandosdigitados.Opçõesmaisutilizadas:history-rUsa como histórico o arquivo (/home/usuario/.bash_history) ao invés de usar o histórico de

comandosglobal.history-wReescreveoarquivo(/home/usuario/.bash_history)history-cLimpaohistóricodecomandos.

Aliases(Apelidosdecomandos)

Usamosocomandoaliasparacriarapelidoquesãocomoatalhosparacomandos.Oseuarquivodeconfiguraçãoficalocalizadonoarquivo(/home/usuario/.bashrc).

Exemplo:aliascor=`ls–color'Paraapagarumapelidodecomando,usamosocomandounalias:unaliascor

Entrandocomcomandosnoshell

CadacomandoUnix/LinuxpossuiumasintaxeúnicaepodehavervariaçõesdependendodesuadistribuiçãodeLinux.Algunscomandospodemrequereropções,geralmenteprecedidospelosimbolo“-”ou“--”eporargumentos.OcomandoprecisaserválidoeestarnosdiretórioslistadosdavariávelPATHoucomsualocalizaçãoabsoluta.

Aoabriroterminaldecomandosdigitels,exemplo:lsObservequeelenãonecessitadenenhumargumentoouopçãoparaserexecutado.Nocasodestecomando,asopçõespodemserconfiguradasseparadamenteoucombinadas:ls-aMostratodososarquivosdoseudiretórioincluindoosocultos(queiniciamcomponto).-tMostraosarquivosordenadospelaúltimadatademodificação.Paraalgunscomandosasopçõestêmdeserprecedidascomdoistraços“--”aoinvésdeumtraço.OBS:Algunscomandosoferecemformasalternativasdeindicarumamesmaopção.Nocasodo

“ls”asopções“-a”e“--all”produzemomesmoefeito.

Man,HelpeInfo

ObviamentevocênãoaprenderáoudecorarátodasasopçõesdoscomandosUnix/Linuxdeumanoiteparaodia.Talveznuncaconsigae isto,nãoé realmentenecessário.Paraa salvaçãodenósmerosmortais,temososcomandos:man,helpeinfo.

Sintaxedocomandoman:mannome_do_comandoSintaxedocomandoinfo:infonome_do_comandoSintaxedocomandohelpnome_do_comando–help

GerenciamentodeArquivos

OFilesystemHierarchyStandard(Padrãoparasistemasdearquivoshierárquicos),ouFHS,defineos principais diretórios, e o seu conteúdo, em um sistema operacional Linux ou do tipo Unix. Aversão atual é a 2.3, anunciada em 29 de janeiro de 2004. O FHS émantido pelo Free StandardsGroup, uma organização sem fins lucrativos formada por importantes empresas de hardware esoftware, como HP, Red Hat, IBM e Dell. Ainda hoje, a grande maioria das distribuições deGNU/Linux,incluindomembrosdaFreeStandardsGroup,nãoadotamfielmenteopadrãoproposto.Em particular, diretórios (paths) criados pela FHS, como o /srv/, não foram adotados em grandeescala.AlgunssistemasUnixeLinuxrompemcomopadrãoFHS,comooGoboLinux.OMacOSxutilizaumaestruturacomnomes legíveisparahumanosemconjuntocomumsistemabaseadoemFHS.

Paravisualizartodaaestruturadearquivosdesuadistribuição/bin/Comandosbináriosessenciaisparatodososusuários./boot/ArquivosdoBootLoader/dev/Dispositivos,exemplo:/dev/null/etc/Arquivosdeconfiguraçãoespecíficosdocomputador./etc/opt/Arquivosdeconfiguraçãoparao/opt/./etc/X11/ArquivosdeconfiguraçãoparaoXWindowSystema,Versão1.1/etc/sgml/ArquivosdeconfiguraçãoparaSGML/etc/xml/ArquivosdeconfiguraçãoparaXML/home/Diretóriosdeusuários.(Opcional)/lib/

Diretóriocomasbibliotecasessenciaisparaosarquivosbinárioscontidosnosdiretórios/bin/e/sbin/.

/mnt/Sistemasdearquivos“montados”temporariamente./media/Pontosde"montagem"paramídiaremovível,comoCD-ROMs(surgiramnaversão2.3doFHS)./opt/Pacotesestáticosdeaplicações./proc/Sistemasdearquivovirtual,quepossuioestadodonúcleoeprocessosdosistema;amaioriados

arquivosébaseadanoformatotexto(ex:tempodeexecução,rede)./root/Diretóriohomeparaosuperusuário(root).(Opcional)/sbin/Arquivosbináriosparapropósitodeadministraçãodosistema./tmp/Arquivostemporários.(Vertambém/var/tmp)./srv/Dadosespecíficosquesãoservidospelosistema./usr/Hierarquiasecundáriaparadadoscompartilhadosdeusuários,cujoacessoérestritoapenaspara

leitura./usr/bin/Omesmoqueahierarquiadotopo(/bin),mascontémapenasarquivosnãoessenciais(quenão

sãonecessáriosparaqueosistemafuncioneouparaasuarecuperação)./usr/include/Diretóriopadrãoparaarquivosdotipoheader./usr/lib/Omesmoqueahierarquiadotopo(/lib)./usr/sbin/Omesmoqueahierarquiado topo,mascontémapenasarquivosnãoessenciais (ex:daemone

serviçosderede)

/usr/share/Dadoscompartilhadosquesãoindependentesdaarquiteturadocomputador../usr/src/Códigofonte(ex:códigofontedonúcleodosistema)/usr/X11R6/XWindowSystem,Versão11R6./usr/local/Hierarquiaterciáriacomdadoslocais,específicosdestehost./var/Arquivos"variáveis",comologs,basededados,páginasWebearquivosdee-mail./var/lock/Arquivosdelock.Utilizadosparamanterocontrolesobrerecursosemuso./var/log/Arquivosparalog.Utilizadoparalogdedadosemgeral./var/mail/Caixasdeemaildosusuáriosdosistema./var/run/Contéminformaçãosobreaexecuçãodosistemadesdeasuaúltimainicialização.(ex:usuáriose

daemonsemexecução)./var/spool/Spoolparatarefasemesperaparaexecução.(ex:filasdeimpressãoeemailsaindanãolidos)./var/spool/mail/Local para caixas de correio dos usuários. Não deve ser mais utilizada, existe apenas para

compatibilidaderetroativa./var/tmp/Arquivostemporários.Quandoemmodomulti-usuário,preferívelemrelaçãoao/tmp.

Comandosdegerenciamentodearquivos

Ocomandocpcopiaarquivosediretórios.Elepodeserutilizadoparacopiarapenasumarquivooumúltiplosarquivos.

Exemplo:cparquivo1arquivo2Noexemploacima,copiamosoarquivo1paraarquivo2criandoestearquivo.cparquivo1/home/juliano/documentos/arquivo2Noexemploacima,copiaroaquivo1paraumdiretórioespecífico(/home/juliano/documentos)Asopçõesmaisfrequentesdocomandocp,são:cp-dPreservaoslinksaocopiarosarquivoscp-pPreserva todas as informações dos atributos do arquivo, como dono do arquivo, grupo,

permissõesedatacp-RCopiaarquivosrecursivamente,ouseja,copiadiretórioscomconteúdo.cp-fForçaumacópia,sobrescrevendosenecessárioscp-vMostraonomedecadaarquivocopiado.

Exemplodacopiadeumdiretóriocompleto:

cp-R/home/juliano/home/backupNoexemploacima,todooconteúdododiretório(/home/juliano)irápara(/home/backup).

Comando:mv

Omvmoveourenomeiaarquivosediretórios.Elenãoalteraosatributosdosarquivosoudiretóriosmovidosseatransferênciaforomesmosistemadearquivos.Seodestinoparaondeosarquivosoudiretóriosforemmovidosnãoexistir,ocomandorenomeiaaorigem,senãoosdadosserãogravadosporcima.

Noexemploabaixo,renomeia-seoarquivo1paraarquivo2:mvarquivo1arquivo2Noexemploabaixo,move-seoarquivo1paraodiretório/tmp.mvarquivo1/tmp

Comando:rm

Ocomandorméutilizadopara removerarquivos.Vocêsópoderemoverarquivosquevocê tenhapermissão de gravação. O super usuário (root) pode remover arquivos e diretórios dos outrosusuáriosdosistema.

Asopçõesmaisutilizadas:-fForçaaremoçãodosarquivossemperguntaraousuários-RRemoveumdiretórioetodooseuconteúdoExemplos,removendooarquivotexto.txt:rmtexto.txtPararemoverumdiretóriocomconteúdo:rm-RdiretórioExemplo:rm-R/opt/agendaNoexemploacima,odiretório(agenda)seráremovido.Vocêtambémpodeforçararemoçãocomocomando:rm-Rfdiretório

Comandomkdir

O comandomkdir é utilizado para criar um diretório. Você precisa ter permissão de escrita nodiretóriocorrenteparaexecutaromkdir,exemplo:

mkdirmusicasNo exemplo acima, foi criado o diretório “musicas” no diretório corrente. Para criar um

diretórioespecificandosualocalização,faça:mkdir/home/juliano/documento/administrativoNo exemplo acima, foi criado o diretório administrativo dentro do diretório

/home/juliano/documento/Asopçõesmaisfrequentes,são:mkdir-pCriaodiretórioespecificado,mesmoqueodiretório“pai”nãoexiste.Nestecasoelecriatambém

odiretório“pai”.Exemplo:mkdir-pcorreios/sedexNoexemploacimafoicriadoodiretóriocorreioquechamamosdepaieosubdiretóriosedex,

casovocêapagueodiretóriopai“correio”vocêtambémiráapagarseussubdiretórios(filhos),nestecaso“sedex”.

Comandormdir

Ocomandormdir,removeumoumaisdiretóriosdosistema.Odiretórioprecisaestarvazio.Exemplo:rmdir/home/documentosRemoveodiretóriodocumentosdentrododiretóriohome.Para remover diretórios com conteúdo, use o comando rm, exemplo: rm -R

/home/juliano/documentos

Comando:touch

Ocomandotouchmudaadataehoradeacessoe/oumodificaçãodosarquivos.Asopçõesmaisutilizadassão:touch-aarquivoMudaadataehoraparasuahoraatual.touch-marquivoMudasomenteadataehorademodificaçãoparaaatualtouch-t201503112100arquivoNo exemplo acima, estou configurando a data de criação do arquivo para:ANO (2015),MÊS

(03),DIA(11),HORA(21:00).Nestecaso:201503112100.

FiltrosdeTexto

Veremosagoraalgunscomandosde filtrode textoqueestãodisponíveisempraticamente todasasdistribuiçõesdeGNU/Linux.

Ocomandocat

Usandoocomandocatparacriararquivosdetextopuro:cat>texto.txtNoexemploacimavocêirádigitarconteúdodetextoqueseráarmazenadonoarquivo(texto.txt).

Aofinaldasuadigitação,pressioneasteclasctrl+demumalinhavazia.Istoirásalvaroarquivo(texto.txt).

Paravisualizarumarquivodetexto,useocomando:cattexto.txtParaconcatenararquivos,executeocomando:cattexto1>texto2Noexemploacimaoconteúdodetexto2ésubstituídopeloconteúdodetexto1.Paraacrescentar

conteúdosemsubstituiroconteúdojáexistenteutilize>>aoinvésde>,comonoexemplo:cattexto1>>texto2Nesteexemplooconteúdodetexto1éadicionadoaotextojáexistentenoarquivotexto2.

Ocomandocut

Ocomandocut(cortar)lêoconteúdodeumoumaisarquivorecortandoverticalmenteestetexto.Exemplo:Crieemtextochamado(planilha)comoseguinteconteúdo:coluna1,coluna2,coluna310,2,812,9,1015,30,2590,120,245Observequeodelimitadordecada(coluna)éosinaldevírgula.Emalgunscasopoderiaser(:)

dois pontos ou (;) ponto e vírgula. Para visualizarmos somente o conteúdo da segunda coluna doarquivoplanilhaexecutamosocomando:

cut-d,-f2planilhaEntendendoocomandoacima:-ddelimitador.Configuraodelimitadorqueseparaumacolunadeoutra.Opadrãoé“tab”,nocasodoexemplo

(planilha)usamos(virgula).-fNúmero.Definaonúmerodacolunaqueseráexibida,nestecasofoio2(segundacoluna).

Ocomandoexpand

Ocomandoexpandtrocaotab(tabulação)dentrodotextoparaumnúmerodeespaçosdeterminadopelousuário.Exemplo:

Crieumarquivochamadotabulacao.txtcomoconteúdoabaixo:FuscaazulGolVermelhoSantanaPretoNoexemploacimautilizei trêsvezesa tecla<tab>.Visualizeprimeiramenteocomandocomo

cat.cattabulacao.txtAgora execute o comando expand especificando o número de espaços que substituirão a

tabulação,exemplo:expand-t1tabulacao.txtTente,-t2,-t3,etc...

Comando:fmt

O comando fmt formata um texto com uma largura específica. Ele pode remover espaços ouadicionarespaçosconformealarguradesejada,opadrãoé75caracteres.

Aopçãofrequentementeutilizadaé:fmt-w50leiame.txtNesteexemplo,definimos50comolarguradesejadaparaoarquivo(leiame.txt).

Comandohead

Ocomandoheadmostraasprimeiras10linhasdoiniciodotexto.Aopçãofrequentementeutilizadaé:

head-n50leiame.txtNesteexemploas50primeiraslinhasdoarquivo(leiame.txt)serãomostradas.

Comando:Join

Ocomandojoinuneaslinhasdedoisarquivosquepossuamíndicecomum,exemplo:Crieoarquivofruta.txtecoloqueoseguinteconteúdo:1maça2uva3melanciaAgora,crieoarquivopreco.txtecoloqueoseguinteconteúdo:1R$2,00Reais2R$4,00Reais3R$5,00ReaisExecuteagoraocomandojoinparaconcatenarosdoisarquivos:joinfruta.txtpreco.txtOresultadoserá:1maçaR$2,00Reais2uvaR$4,00Reais3melanciaR$5,00Reais

Ocomandopr

Preparaumarquivodetextoparaimpressão.Exemplo:pr-l70-o30fruta.txtOnde:-lEspecificaonúmerodecaracteresdelarguradepágina.Opadrãoé66caracteres.-oEspecificaonúmerodeespaçosdemargemesquerda.

Ocomandotac

Ocomandotacéoinversodocomandocat,elemostraoconteúdodeumarquivodetextodetrásparafrente.Exemplo:tacarquivo.txt

Ocomandotail

Ocomandotailvisualizaas10últimaslinhasdeumarquivo.Funcionacomooopostodocomandohead.

Asduasopçõesmaisutilizadasdocomandotailsão:-nEspecificaonúmerodelinhasfinaisqueotailirámostrardeumarquivo-fMostraasúltimaslinhasdeumarquivocontinuamente.ÚtilparaarquivodeLOG.Exemplo:tail-n50/var/log/meulogtail-f/var/log/meulog

Ocomandowc

Ocomandowccontaaslinhas,palavrasecaracteresdeumarquivo.Exemplo:wcteste.txt

Ocomandoxargs

O comando xargs utiliza a saída padrão de um comando como argumento para outro comando,exemplo:

cattexto.txt|xargsechoNesteexemplo,cadalinhadoarquivotexto.txtépassadacomoargumentoparaocomandoecho.

Capítulo5–EditoresdeTextoemmodo-texto

Nestecapítulo:

EditordetextonanoEditordetextomceditEditordetextoVIeVIM

Editornano

OEditornanoéumeditordetextopuromuitoutilizadonoUnixeLinux.ParainstalarnoDebianesimilares|RedHatesimilaresuseoscomandos:

Debian/Ubuntuapt-getinstallnanoRedHat/Fedora:yuminstallnanoParaabrirumarquivoutilize:nanonome_do_arquivoNeste editor você realiza as opções como Salvar, Copiar, Cortar e Colar através de teclas de

atalhos.Vejamos:ctrl+gExibeaajudactrl+bMoveocursorumcaractereatrásctrl+nMoveocursorumalinhaabaixoctrl+fMoveocursorumcaractereàfrentectrl+pMoveumalinhaacimactrl+dRecortaocaracterectrl+kRecortaalinhactrl+cExibeaposiçãodocursorctrl+AVaiparaoiniciodalinha

ctrl+EVaiparaofimdalinhactrl+jJustificaoparágrafoatualctrl+VAvançaumatelactrl+yRetrocedeumatelactrl+uColatextooudesfazjustificaçãoctrl+wLocalizastringdotextoctrl+tVerificaortográfiactrl+rAbreumarquivoctrl+oSalvaoarquivocomoutronomectrl+xSai

Editormcedit

Oeditormcedit oumcébastante fácil de ser utilizado. Inclusive comousodomousemesmonomodo-texto.ParainstalarnoDebianederivados|RedHatederivados,execute:

Debianederivados:apt-getinstallmcRedHatederivados:yuminstallmcAbrindoumarquivo:mceditoumc-enome_do_arquivoAseguirumalistacomasteclasdeatalhodomcedit:F1ExibeaajudaF2SalvaoarquivocorrenteF3MarcaoiniciodoblocoF4SubstituitextoF5Copiaoblocomarcadocomf3F6Moveblocomarcadocomf3F7ProcuretextoF8ApagalinhacorrenteF9AbreomenuF10

SaiF12Salvarcomo

EditordetextoVIeVIM

OeditorVItantonoUNIXcomonoLinuxserveparacriararquivosdetextoescriptsshells,assimcomoeditá-los.OeditorVIpossuidoismodos:Edição,quandovocêapertaatecla(I)ou(insert).Eomododecomando,quandovocêapertaatecla(ESC).

IniciandooVIDigitenobash:viouvinome_de_arquivoaperteiparaescrevereescparasaireexecutaroscomandos::q(Enter)Sairdoarquivosemsalvar:q!(Enter)Sairsemsalvar,forçando:wq(Enter)Salvaoarquivoatualesaidovi:w(Enter)Salvaoarquivoatual:warquivo1(Enter)Salvaoarquivoatualcomoarquivo1:earquivo1(Enter)Abreoarquivo1:rarquivo1(Enter)Insereoarquivonopontoondeestáocursor.:u(Enter)Desfazaúltimaação,similiaractrl+z:doudd(Enter)Apagaalinhacorrente:yyCopiaalinhaondeestáocursor:pColaotexto:dd

Apagaalinhaondeestáocursor:iInserirumtexto:s/velho/novoSubstituiapalavravelhopelapalavranovo.%s/velho/novo/gsubstituaemtodooarquivo(%),todas(g)asocorrênciasdevelhopornovoAlém dos comandos de edição do texto como já vimos, existem comandos para configurar o

EditorVIM,sãoeles::setawSalvaacadaalteração:setnuMostraonúmerodaslinhas:setffConverteoarquivoparaDOS:setetTrocatabporespaços

Capítulo6–PermissõesdeArquivos

Nestecapítulo:

VisualizandopermissõesConfigurandopermissõesemarquivosediretórios

PermissõesdeacessoaarquivosediretóriosNestecapítuloestudaremososistemadepermissõesdolinux.Osistemadepermissõespermiteao

administradordo sistema (root) definir onível de acesso aousuários, grupos e outros arquivos ediretóriosalémdeprogramasexecutáveis.

As permissões de acesso protege o sistema de algumas invasões e respectivos programas não

autorizados.Porexemplo,nolinux,podemosimpedirquealgumprogramamaliciosoinstale-senamáquina, delete algum arquivo ou que seja transferido para outras pessoas via rede, de modo ainvadiroutrossistemas.

3níveisdepermissãoOlinuxgerenciaosistemadeprivilégiosem3tipos:

1.Privilégiododono2.PrivilégiodoGrupo3.Privilégiodeoutros

Cadaumdestestipossãodivididosem3níveisdepermissõesdeacesso:

1.Permissãodeleitura(r)2.Permissãodeescrita(w)3.Permissãodeexecução(x)

Asdefiniçõesdepropriedadedousuárioedogrupofazempartedoinodeeambassãoatribuídas

quandoumarquivoécriado.Geralmente,oproprietárioéousuárioquecriouoarquivo.Ogrupodoarquivo normalmente é definido como padrão do seu criador. A propriedade de grupo adicionaflexibilidade em situações nas quais uma equipe compartilha arquivos. Os “outros” usuários sãoaquelesquenão sãomembrosdogrupodoarquivoe tambémnãosãoosproprietários.Paracadaumadessastrêsclassesdeusuários,omododeacessodefinetrêstiposdepermissões,queseaplicamdiferentementeparaarquivosediretórios.Aspermissõesencontram-selistadasnalistaabaixo:

Examinaroconteúdodeumarquivoepoderlistá-lo:rEscreveroumodificarumarquivo.Criarouremoverarquivosdeumdiretório:wExecutarumarquivocomoumprograma.Acessarodiretório.xEssastrêspermissõesseaplicamastrêsclassesdiferentesdeusuários:usuários,grupoeoutros.

Cadaumatempermissãodeleitura,escritaeexecução.

Visualizandoprivilégiosepermissões

Vocêpodevisualizaraspermissõesdearquivosediretórioslistando-oscomocomando:ls-l/home/usuario(Visualizaprivilégiosepermissõesdearquivos)ls-ld/home/usuario(Visualizaprivilégiosepermissõesdediretórios)Aoexecutarocomandols-lvocêterácomoretorno,algosemelhantea:drwx------...2wester.............512Jan...2923:30..Arquivos/-rw-rw-r--...1wester.......280232Dec..1622:41...notas.txtOprimeirocaracteredaslinhasacimaindicamotipodearquivo:dDiretóriobArquivodeblococArquivoespecialdecaracterepCanalsSocket-Arquivo“normal”.Repareagoraquenorestantedastringaindahá9caracteres.Quesãoos3níveisdepermissões

(Dono,grupoeoutros).usandooexemplodasegundalinha,arquivo(notas.txt):rw-Permissõesdoproprietáriosrw-Permissãodogrupor--PermissãoparaoutrosListadepermissõescomuns:---Nenhumapermissãor--Permissãodeleiturar-xLeituraeexecuçãorw-

LeituraegravaçãorwxLeitura,gravaçãoeexecuçãoParaconfigurarumarquivousandoaspermissõesdomodotextual(quevimosatéomomento)

usamosocomando:chmodu+rw,g+w,o-rwxarquivo.txtOnde:U–RepresentaousuárioG–RepresentaogrupoO–Representaoutros

PermissõesemsistemaOctal

Além de podemos configurar as permissões domodo textual. Podemos usar omodo octal, nestecaso:

r=4w=2x=1Sevocêsomaros3números,vaiobter7,quesignificapermissãototal,ouseja,rwx.Exemplo:chmod764arquivo.txtOsrespectivosvaloressão:rwx=7(Dono–Acessototal)rw-=6(Grupo–LeituraeGravação)r--=4(Outros–Acessoaleitura)

Capítulo7–UsuárioseGrupos

Nestecapítulo:

GerenciamentodeusuáriosGerenciamentodegruposAdicionandoeRemovendousuáriosArquivosdeconfiguraçãodosusuários

ParaadministrarusuáriosnoGnu/Linuxénecessárioconheceroscomandosuseraddeadduser,adiferençaentreeleséqueouseraddéumbinárioeoadduseréumscript.Vocêpodeverificarestainformaçãoexecutandoocomando:file/usr/sbin/useraddOcomando“file”verificaotipodoarquivo.Qualdoscomandoseudevoutilizar?Parapersonalizarumacontadeusuárionomomentodesuacriaçãoocomandoidealéouseradd

poisneleépossívelpassarváriasopçõesdeparâmetrosnomomentodacriação.Ocomandoadduseré um script em Perl que utiliza a base do useradd, com ele a criação é automatizada, apenasrespondendo-seperguntascomo:Nome,Senha,Telefone,E-maileetc…

Criandoumnovousuáriocomuseradd

useradd-m-c“JulianoRamos”-s/bin/bashjulianoOpçõesutilizadasnocomandodeexemplo:-m Cria o diretório home do usuário no momento da criação (/home/usuario) o diretório é

criadocomomesmonomedousuário.-cDefineocomentário,comoonomecompletodousuário,porexemplo.-sDefineoshellpadrãodesteusuário,noexemplo:(/bin/bash)O comandouseradd cria o usuário, ele não define sua senha. Para isto, você deve executar o

comandopasswd.Exemplo:passwdjuliano

Criandoumnovousuáriocomadduser

Outilitáriodecriaçãodeusuáriosadduserémaiscomulmenteutilizado,pelofatodeporpadrãojácriarodiretório/homeedefinirasenhadousuário.

adduserjulianoParaverficarinformaçõessobreousuário,vocêpoderáusarocomandofinger,emmuitoscasos

deverárealizarsuainstalação.NocasodoDebianederivados:apt-getinstallfinger

Adicionandonovosgrupos

Paraadicionarnovosgruposnolinux,utilizeoscomandosgroupaddeaddgroup,adiferençaentreeleséquegroupaddéumbinárioeaddgroupumlinksimbólicoparaoscriptadduser.

Lembrandoquevocêpodeverificaristocomocomandofile.file/usr/bin/groupadd

Criarumnovogrupocomaddgroup

Ocomandoparaacriaçãodenovosgruposé:addgroupnome_do_grupoAgora que temos usuários e grupos em nosso sistema, vamos gerenciá-los através de alguns

comandos.Épossívelporexemplo,bloquearacontadeumusuárioeforçá-loatrocarsuasenhaemseuprimeirologin,paraistousamosocomandochage:

chage-d0julianoParatrocarasenhadeumusuáriousamosocomando:passwdjulianoParabloquearologindeumusuário,usamos:usermod-LjulianoParadesbloquearologindesteusuário,usamos:usermod-UjulianoParamodificaradescriçãodeumusuário,usamos:usermod-c“JulianoOliveira”juliano

Mudandoologindeumusuário

Ousuário“Juliano”agoradeveráser“Grubelilo”.Oprimeiropassoémudaronomedousuário:usermod-lgrubelilojulianoAgoraquejámudamosonomedologin,vamosalteraroseudiretório/home,primeirovamos

criá-lo:mkdir/home/grubeliloAdicioneagoraumnovogrupocomonomedousuário:addgroupgrubeliloMudeodonodogrupoparaonovodiretório:chowngrubelilo.grubelilo/home/grubeliloAltereogrupoprincipaldousuário:usermod-ggrubelilogrubeliloAltereodiretóriopadrãodousuário:usermod-d/home/grubelilogrubelilo

Gerenciandogruposdosistema

Agoraquejáadicionamosnovosgruposeusuáriosaosistema,vamosaprendercomogerenciá-losatravésdecomandos.Épossívelporexemplo,alterarogrupoprincipaldeumusuário, tornarumusuárioadministradordeumgrupoentreoutrasopções.

Adicionandoumusuárioaogrupogpasswd-aalunotux4youRemovendoumusuáriodeumgrupogpasswd-dalunotux4youTornandoumusuárioadministradordogrupogpasswd-Aalunotux4youQuando um usuário se torna administrador de um grupo ele tem permissão para adicionar e

removerusuáriosdogrupo,adicionareremoversenhasdogrupo.Adicionandosenhaaogrupocomusuáriocomum:gpasswdlogistica

Trabalhandocomarquivosdeusuáriosegrupos

Atéaquirealizamosasconfiguraçõesdosusuáriosegruposatravésdecomandos,mas,épossívelogerenciamentousandoarquivosdosistema.

BloqueiodeusuáriosParabloquearologindeumusuário,acesseoarquivo:/etc/passwd,adicioneosinalde!antesdo

nomedousuário:nano/etc/passwd!aluno:x:1004:1007:AlunoTux;;;:/home/aluno:/bin/bashLoginsemsenha:Abraoarquivo/etc/passwdeapagueoxentreosdois:(doisponto)aoladodonomedousuário,

exemplodalinhasemox:juliano::1004:1007:JulianoRamos;;;:/home/juliano:/bin/bashSem dúvida está não é uma boa prática de segurança. Para voltar a digitar senha, coloque

novamenteo“x”entreosdoispontos.

Esqueceuasenhadoroot?

No exemplo anterior observamos como posso remover a senha de um usuário pelo arquivo(/etc/passwd). Se você não consegue mais acessar o seu sistema como root, também não poderáalterarestearquivo,nestecaso.UseumLIVE-CDcomoodoUbuntueinicieosistema.

AbraoseuHDpelogerenciadordearquivosdoUbuntuenavegueatéodiretório/etcabraagora

oarquivoshadoweremovaoxqueestáentreosdois:(doispontos)doladodonomeroot.Reinicieocomputadoreremovaolive-cd.Seurootvaiestarsemsenha.

Capítulo8–Gerenciamentodepacotes

Nestecapítulo:

InstalaçãodepacotesDebianInstalaçãodepacotesRedHatInstalaçãodepacotesSlackwareGerenciamentodepacotespelocódigofonte

OdpkgéocomandobásicoparalidarcompacotesDebiannosistema.Sevocêtempacotes.deb,

écomodpkgquevocê instalaouanalisa seuconteúdo.Masesteprograma temapenasumavisãoparcialdouniversoDebian:ele sabeoqueestá instaladonosistema,eoque fordadona linhadecomando, mas não sabe nada dos outros pacotes disponíveis. Assim, ele vai falhar se umadependência não for satisfeita. Ferramentas como o apt-get, ao contrário, criará uma lista dedependênciasparainstalartudoomaisautomaticamentepossível.

Instalandopacotesdpkg-inomedopacote.debRemoçãodepacotesdpkg-rnomedopacote.debArquivosdeLogdodpkgDpkgmantém um log de todas as suas ações em /var/log/dpkg.log. Este log é extremamente

detalhado,poisdetalhatodosospassosdamanipulaçãodepacotespelodpkg.

Instalandopacotespeloapt-get

APTéumprojetoamplo,cujosplanosoriginaisincluemumainterfacegráfica.Eleébaseadonumabiblioteca que contém as aplicações principais, e o apt-get é o primeiro front-end em linha decomando,quefoidesenvolvidodentrodoprojeto.

Instalandoumpacoteapt-getinstallgnome-shellInstalandoumpacotepeloaptitudeaptitudeinstallgnome-shellRemovendoumpacoteaptituderemovegnome-shellapt-getremovegnome-shellQuandovocêremoveumprograma,nemsempre,removeosarquivosdeconfiguração.Exemplo:VocêinstalaoservidordeimpressãoCUPSecriaumaconfiguraçãopersonalizada.Aoremover

com“apt-getremovecups”estasconfiguraçõesaindacontinuampresentesno/etc/,casovocêvenhaareinstalarestepacoteestasconfiguraçõesserãomantidas.Pararemoverumpacoteetambémestes

arquivosdeconfiguração,utilizeocomando:Removendocomasconfiguraçõesapt-getpurgegnome-shellInstalandováriosprogramasaomesmotempoapt-getinstallpacote1pacote2pacote3Removendováriosprogramasaomesmotempoapt-getremovepacote1pacote2pacote3

Reinstalandopacotes

Osistemapode,àsvezes,serdanificadocomaremoçãooumodificaçãodearquivosnumpacote.

Aformamaisfácilderecuperarestesarquivoséreinstalaropacoteafetado.Infelizmente,osistemade empacotamento nota que o pacote está instalado e se recusa educadamente a reinstalá-lo; paraevitaristo,useaopção:--reinstalldocomandoapt-get.Ocomandoabaixoreinstalaopostifixmesmoquandoelejáestápresente:

apt-get–reinstallinstallgnome-shellOcachedosarquivos.debAptmantémumacópiadecadaarquivo.debnodiretório/var/cache/apt/archivespararemover

vocêpodeusarocomando:apt-getcleanAtualizandoosistemaapt-getupgradePesquisandopacotesapt-cachesearchnomedopacoteRemovendopacotes(Automático)apt-getautoremoveQuandovocêusaoaptitudeouoapt-geteleprocuraossoftwaresnosservidoresespecificadosno

arquivo/etc/apt/sources.list.Vejamosumexemplodestearquivo(ubuntu15.04):# deb cdrom:[Ubuntu-MATE 15.04 _VividVervet_ - Release amd64 (20150422.1)]/ vividmain

multiverserestricteduniverse#Seehttp://help.ubuntu.com/community/UpgradeNotesforhowtoupgradeto#newerversionsofthedistribution.debhttp://br.archive.ubuntu.com/ubuntu/vividmainrestricteddeb-srchttp://br.archive.ubuntu.com/ubuntu/vividmainrestricted##Majorbugfixupdatesproducedafterthefinalreleaseofthe##distribution.debhttp://br.archive.ubuntu.com/ubuntu/vivid-updatesmainrestricteddeb-srchttp://br.archive.ubuntu.com/ubuntu/vivid-updatesmainrestricted##N.B.softwarefromthisrepositoryisENTIRELYUNSUPPORTEDbytheUbuntu##team.Also,pleasenotethatsoftwareinuniverseWILLNOTreceiveany

##revieworupdatesfromtheUbuntusecurityteam.debhttp://br.archive.ubuntu.com/ubuntu/vividuniversedeb-srchttp://br.archive.ubuntu.com/ubuntu/vividuniverseOarquivoeramaior,mascomistojápodemosvercomoelefunciona.Quandovocêvaiinstalar

algumprogramaemespecífico,podesernecessárioinstalarumservidorantesnestearquivo.Semprequevocêadicionaumnovoservidor,deveexecutarocomando:apt-getupdate

PacotesRPM

O Red Hat Package Manager – RPM é um sistema de gerenciamento de pacotes para sistemasGNU/LinuxbaseadosemRedHat.Eleinstala,atualiza,desinstalaeverificasoftwares.

UmavantagemqueoRPMpossuiemrelaçãoaoDEBéquepossui ferramentasdeverificação

criptográficacomGPGeoMd5,alémdeverificaçãodeintegridadedosarquivosjáinstalados.Verificarquaispacotesestãoinstaladosnosistemarpm-qaVerificarseumpacoteespecíficoestáinstalado:rpm-qnomedopacote.rpmVerificaroqueseráinstaladocomumpacoteespecífico:rpm-qpnomedopacote.rpmVerificarseainstalaçãoiráocorrercorretamente:rpm-ih–test–percentnomedopacote.rpmAsopções-he–percentservemparamostrarumabarradeprogressoeaporcentagemconcluída.Instalarumprogramarpm-ih–percentnomedoprograma.debVerifiqueoqueseráefetuadoaoremovermosumpacote:rpm-e–testnomedopacoteRemovendoopacote:rpm-enomedopacote.rpmPararealizarumaatualizaçãodeversãodeumdeterminadoprograma,podemosusar:rpm-Uhnomedopacote.rpmUmafuncionalidademuitoboadoRPMéacapacidadederealizarverificaçõesdeintegridadedos

pacotesinstalados.Periodicamente,vocêpodeverificarseocorreualgumaalteraçãonoseusistemasemvocêsaberousesuamáquinafoiinvadida,pode-setentaridentificaroquefoimexidonela.

Verificaraintegridadedetodosospacotes:rpm-Va

PacotesSlackware

Ospacotesslackwarepossuemaextensão(tgz).InstalandopacotesInstallpkgpacote.tgzRemovendopacotesRemovepkgpacote

ConversordepacotesAlien

Oalienéumconversordepacotes.IstosignificaquevocêconseguetransformarumpacoteRPMemDEBeviceversa.

Nodebian,instalecomocomando:apt-getinstallalienParaconverterumpacotepararpmparadebexecutamos:alien-dpacote.rpmParacoverterumpacotedebpararpm,executamos:alien-rpacote.debParaconverumpacoteparatgz,executamos:alien-tpacote.debNãoserásemprequeoalienserácapazdefazerumpacotecompatívelcomseusistema.Sempre

procurepelopacotenativo,emúltimorecurso,useoalien.

Instalandopacotespelocódigofonte

Parainstalarpacotespelocódigofonteénecessárioquevocêtenhaasferramentasnecessáriasparacompilá-los.NoDebianederivados,instaleestespacotescom:

apt-getinstallbuild-essentialNormalmenteospacotesdeprogramasdistribuídosatravésdocódigofontesãocompactadose

empacotesnosformatos(tar.gzoutar.bz2).Paradescompactarestespacotesexecute:tar-xvzfpacote.tar.gzParapacotesnoformato.tar.gztar-jxvfpacate.tar.bz2Parapacotesnoformato.tar.bz2Apósdescompactar,acesseodiretórioeexecuteoscomandos:./configuremakemakeinstallO./configureexecutaumscript(dentrodapastadoprograma),queverificaosistemaembusca

decomponentesqueeleprecisa.Eleavisasealgoestiverfaltando,poristo,vocêdeveficaratentoatodas as mensagens. O “make” cuida do trabalho pesado, fazendo a compilação. Ele procura oscomponentes registrados pelo ./configure. O “make install” instala o programa, copiando osarquivosgeradospelomakeparaaspastascorretasdosistema.

Capítulo9–Compactadoreseempacotadores

Nestecapítulo:

DiferençaentreempacotarecompactarUsandootarUsandoogzip/bzip2

NomundoGNU/Linuxémuitocomumvermosarquivoscomaextensão.tar.gzoutar.bz2estas

extensõessignificamquealémdeocriadorterrealizadoumpacoteeleoscompactou.Obzip2(bz2)fazumacompactaçãomaiseficiente,ouseja,elereduzmaisotamanhodoarquivo

do que o gzip (gz), em compensação, ele demora mais para realizar a compactação. Podemosclassificarassim:

gzipRápido,porémnãomuitoeficienteparareduçãodetamanhobzip2Lento,porémmuitoeficienteparareduçãodetamanho

CriandoumpacotecomoTAR

O tar é um empacotador, que serve para juntar vários arquivos em um só; imagine a situaçãocotidiana:

Vocêprecisaenviaralgumasfotosatravésdoanexodoe-mail.Vocêpodefazerumaaumaoquelevariaalgumtempo,ouempacotá-lascriandoumúnicoarquivoquevocêenviará.

Umaúnicaobservação:Otarnãocompactaelesomenteempacota.Istosignifica,queosarquivos

nãovãodiminuirotamanho.CriandoumpacotecomotarVamoscriarumpacotedetodoodiretório/etc,paraistofazemos:tar-cvfbkp_etc.tar/etcOnde:-cParacriarumbackup-v(verbose)Paramostrarosdetalhesnahoradacriação-fParaindicaronomedoarquivo.Essaopçãosemprevemporúltimo,poiséelaquemdefineo

nomedoarquivo.Vocêpodeverificarqueotamanhododiretório/etcedoarquivobkp_etc.taréomesmo,como

comando:du-h/etcdu-hbkp_etc.tarParainformarocomandotarquevocêtambémdesejacompactar,useoscomplementos:-zParacompactarcomogzip-jParacompactarcomobzip2Entãoocomandomudariapara:tar-cvzfbkp_etc.tar/etcebooklinuxNestecasoparaoformatoGzip,ou:tar-cvjfbkp_etc.tar/etcPara usarmos o formato bzip2.Agora que empacotamos e compactamos um diretório, vamos

aprendercomoextrai-los.Nestecasousamosoxdeextract.

tar-xvfbkp_etc.tarParapacotes(.tar)tar-xvzfbkp_etc.tar.gzParapacotescompactadosGzip(tar.gz)tar-xvjfbkp_etc.tar.gzParapacotescompactadorBzip2(tar.bz2)

Capítulo10–AgendamentodetarefasnoLinux

Nestecapítulo:

AgendadoratAgendadorcrontab

Usamos o crontab para agendar comandos para serem executados periodicamente. Já o at

usamosparaagendarexecuçãodeprogramaspontualmente.

Agendadorat

Agendaremosqueas19:30dodia24deJunhode2015seráexecutadoocomandols-lhanodiretório/etceoresultadoseráimpressoemumarquivochamadolistagem.txtnomeudiretório/tmp.

Nestecasotenhoqueabriroatcomasintaxe:atHH:mmMM/DD/YYYYOnde(HH:MM–representahoraseminutos–19:30),MM(Mês–06),DD(Dia:24),YYYY(Ano:

2015).Entãoocomandoseria:at19:3006/24/2015ls-lha/etc>/home/tux/listagem.txt<ctrl+d>Quandovocêterminardedigitaroseuscomandosdentrodoaténecessáriosairgravandocom

asteclasdeatalho:ctrl+dVocêpodevisualizarosagendamentoscomocomando:atqVocêpoderemoverumagendamentocomocomandoatrmmaisonúmerodoagendamento,que

vocêobtémcomocomandoatq.Porexemplo,aoexecutaroatqtivecomoretorno:3WedJun2419:40:002015arootNestecaso,paraencerraresteprocessoeuuso:atrm3

Crontab

Qualquer usuário pode agendar comandos no crontab porém ele terá que ter permissão paraexecutaroqueestáagendando.Paraeditarocrontab,digite:

crontabe-eOnde-eédeedit.Estecomandoiráabrirumarquivoembranco,casonãotenhafeitonenhuma

tarefaagendadaainda,paraquevocêpossaadicionarnovastarefas.Nestearquivoembranco,temosqueadicionarumanovatarefaseguindoaestrutura:

*****comando/tarefaAestruturarepresenta:Minuto0–59Hora0–23DiadoMês1–31Mês1–12DiadaSemana0–7(o“0”e“7”édomingo,“1”segunda”)Exemplo:001425120echo“Hojeédomingo”>arquivo.txtAtarefaacimavaicriaroarquivo.txtnodia25deDezembroas14:00heestediaprecisaráser

domingo,casocontrário,istonãoseráexecutado.Paravisualizarastarefasagendadaspelosusuários,comorootdigite:crontab-l-utuxOnde:-lParalistar-uParaespecificarousuáriosQuandomandarsalvararegra,outarefaagendada,amesmairáparaumarquivocomonomedo

seuusuário:ls/var/spool/cron/crontabs/tuxVocêpodeexecutarocomandocatnoseuarquivoparavisualizaroquefoiagendado.

Digamosquevocêtenhacriadoumscriptquerealizabackupdosarquivosdosusuáriosparaumservidordebackup.Desegundaasexta-feiraeledeveserexecutadoas22horas.Nestecasoexecute:

crontab-e0022**1-5/opt/script/scriptbackup.shSempreseránecessáriocolocarocaminhocompleto(/opt/script/scriptbackup.sh)doseuscript.Entendendooformatodosoperadoresdeagendamento:,Especificaumalistadevalores,porexemplo:“1,3,4,7,8”-Especificaumintervalodevalores,porexemplo:1-5(De1a5)*Especificatodososvalorespossíveis/Especificapulosdevalores, por exemplo:Seno campo (Hora) usarmos : */3o comando será

executadoàs:0,3,6,9,12,15,18,21Observamosqueosarquivosdecrontabdosusuáriosficamem:/var/spool/cron/crontabsJá a crontabdo sistemaé encontrada em /etc/crontab e já possui agendamentopara realizar as

tarefasqueseencontramnosdiretórios:/etc/cron.hourly,/etc/cron.daily,/etc/cron.weeklye/etc/cron.monthlySevocêpossuiumscriptedesejaqueelesejaexecutadodiariamente,façaumacópiadeleparao

diretório:/etc/cron.dailycp/opt/script/scriptbackup.sh/etc/cron.daily/Paraquesejasemanalmente,copie-oparaodiretório/etc/cron.weeklyeparaquesejaexecutado

mensalmentecopie-oparaodiretório/etc/cron.monthlyDepoisdeadicionarosscriptsdentrododiretóriodocron,seránecessárioreiniciaroserviço:/etc/init.d/cronstop

/etc/init.d/cronstart

Capitulo11–Processos

Nestecapítulo:

Diretório/procFuncionamentodosprocessospelolinuxMonitorandoumprocessoFinalizandoumprocesso

Processo é uma tarefa em execução controlada pelo kernel ocupando uma área na memória

(RAM),noqualoLinuxusaomecanismode identificá-lospornúmeros.Ouseja, tudoqueestiverrodandonosistemaseráumprocesso.Éoprocessoqueutilizaosrecursosdeumcomputador,comomemóriaeprocessamento.Umsimplescomandoéumprocesso,browserabertoéumprocesso.

ÉresponsabilidadedoKernelgerenciarosprocessostentandootimizaraperformancedaCPU–Unidadecentraldeprocessamento.Oprimeiroprocessodosistemachama-seiniteleéopaidetodososoutrosprocessos.

Cadaprocessotemumnúmerodiferentedeidentificação(PID).Dessaformapodemosmanipulá-

losecontrolá-los.Controlarépodermatar,reiniciarepausarumprocesso.Nodiretório/procvocêveráváriosarquivoscominformaçõesgeraisqueokernelnosfornece,

por exemplo os arquivos: cpuinfo, ioports, meminfo, interrupts, mounts, swaps e muitos outros.Todoprocessocriatemporariamenteumdiretórioem/proccomoseunúmerodePID.

Podemosvisualizaronúmerodosprocessosexecutadospelonossousuáriocomocomando:ps-xAprimeiracolunade retornodestecomandoéonúmerodoPID.Nestemomentoestoucomo

Libreoffice aberto nomeu computador e o númerode seuPIDé o 4741.Eupossoobter algumasinformaçõesacessandooseudiretório:

cd/proc/4741/Emseguidavisualizooarquivocmdline:/usr/lib/libreoffice/program/oosplash—writerNeste caso ele me informou quem é este processo. Nos diretórios dos processos, temos dois

arquivosinteressantesecuriosos:cmdlineestatus.

Vocêpodeobtermaisinformaçõessobreodiretório/procconsultandosuapáginademanual:manprocParalistartodososprocessosdeumamaneiramaissimplesdevisualizar,use:psaux|moreExplicandoocomando:aTodososprocessosudetodososusuáriosxprocessossemcontrolepeloterminalNeste caso todo os processos serão mostrados. É muito melhor, usar o comando ps do que

acessarodiretório/proc.Vamosanalisaragoraascolunasdesaídadocomandopsaux|more:userUsuáriosresponsávelpeloprocessoPIDNúmeroqueidentificaoprocesso,nãoserepete%CPUQuantodeCPUeleusa%MEMQuandodeMEMeleusaVSZTamanhovirtualdoprocessoRSSIndicaaquantidadedememóriausada(emKB)TTYTerminalquegerouoprocesso?SemterminalSTATEstadodoprocesso,sendorepresentadoporumaletraRExecutávelDEmesperanodiscoSSuspensoTInterrompidoZZumbiCOMMANDNomedoprocesso,ouseja,ocomandoemsi.Com a opção f em ps, é possível visualizar em um formato de árvore os processos,

identificando-seosprocessosquepossuemfilhos:psfaux|moreVocêtambémpodeusarocomando:pstree

Paravisualizarosprocessosvendoumatabelaqueseatualizadetemposemtempos,recomendoocomandotop:

topEste comando gera uma tabela dinâmica com informações sobre os processos, sendo possível

matarumprocessodentrodelemesmo.Paramatarumprocesso*(normalmentequandoeleestátravandoosistema)usamosocomando

kill, você só pode matar processos os quais você seja o dono (O root, pode matar todos osprocessos).

Usamosasintaxekill+onúmerodoPID:kill-94247Aopção-9éparaforçaramortedoprocesso.Estenúmeroéconhecidocomo“sinal”.Seosinal

foromitidoéusadoo15comopadrão.Estesinaljogaumsinaldetérmino.Masseoprocessoestivertravado,ouexecutandoalgumacoisa,elenãovaiterminalevaiignoraroseupedido.Jáo-9forçaoprocessoaparardequalquerjeito!

Naprática, usamosapenaso -9eo -15 paramatar umprocesso,masvocêpodever uma lista

completocomocomando:kill-l

Capítulo12–Gerenciamentodeprocessos

Umprocessopodepassarporváriosestados.Quandoumprocessoécriadoissonãosignificaqueeleserá imediatamente executado. Alguns processos podem ser temporariamente parados para que oprocessadorpossaexecutarumprocessocommaiorprioridade.

Olinuxtrabalhacomquatrotiposdeestados:Executável(running):Oprocessopodeserexecutadoimediatamente;Dormente(waiting):Oprocessoprecisaaguardaralgumacoisapara serexecutado.Sódepois

dessa“coisa”aconteceréqueelepassaparaoestadoexecutável.Zumbi(zombie):Oprocessoéconsiderado“morto”,mas,poralgumarazãoaindaexiste;Parado(stopped):Oprocessoestá“Congelado”,ouseja,nãopodeserexecutado.

Classificaçãodeprocessos

foreground(Primeiroplano):Sãoinicializadosnoterminaldecomandos.Podeminteragircomosusuários e exibem sua execuçãona tela.Adesvantagemdeste tipode processo é que ele prendeoprompteissoimpedeaexecuçãodenovosprocessosnesteterminal.

Background (Segundo plano): São inicializados no terminal de comandos, NÃO podem

interagircomosusuárioseNÃOexibemsuaexecuçãonatela.AvantagemdessetipodeprocessoéqueeleNÂOprendeoprompteissoNÂOimpedeaexecuçãodeumnovoprocessonesseterminal.

Interativo: São inicializados a partir de um terminal do usuário e são controlados por ele,

usamososcomandosctrl+z,ctrl+x,fg,bgejobsparatrabalharcomessetipodeprocesso.Lote(batch):Sãoprocessoscontroladospeloscomandosat,batchecron.

Daemons

Daemonséumprogramaembackground(segundoplano)esperandoqueumoutroprocessosoliciteseuserviço.OsprocessosdoDaemonfornecemfrequentementeserviçosderede,taiscomooe-mail,web,etc.Elesnãoprecisamdenenhumaentradaenormalmentenãoproduzemnenhumasaída.MuitosdaemonsdoLinuxtêmosnomesqueterminamemum“d”,comoohttpd,ftpdetc.Oopostodeumdaemonéumprocessoquefuncionaemprimeiroplano.

Daemonsmaispopulares:atd–Rodatrabalhosagendadospelocomandoat.httpd–Servidorwebapache.postifix–Agentedetransportedecorreiossubstitutodosendmail.smbd–OdaemonSAMBA(ousmb).

Jobs

Ocomandojobslistaosprocessosemexecuçãopeloshellqueestãoembackground.Jobs-l[2]1245Runningasmixer&[3]+1333Runningopenoffice&Oparâmetro-lfazcomqueocomandojobslistetambémoPIDdecadaprocesso.Emsuasaídao

comando jobs retorna, além do número do serviço, o estado do processo, a linha digitada nocomandoe,opcionalmente,oPID.

fg

Permitefazerumprogramarodandoemsegundoplanoouparado,rodaremprimeiroplano.Vocêdeve usar o comando jobs para pegar o número do processo roando em segundo plano ouinterrompido,estenúmeroserápassadoaocomandofgparaativá-loemprimeiroplano.

Exemplo:jobs-l[2]–1245Runningopenoffice&fg2openoffice

bg

Permite fazerumprogramarodandoemprimeiroplanoouparado, rodaremsegundoplano.Parafazer um programa em primeiro plano rodar em segundo, devemos primeiro interromper aexecuçãodocomandocomctrl+z;serámostradoonúmerodatarefainterrompida.Useestenúmerocomocomandobgparainiciaraexecuçãodeleemsegundoplano.

Exemplo:fg2openofficeInterrompendo:CTRL+Z[2]+Stoppedopenoffice)bg2

Capítulo13–IntroduçãoaRedes

Nestecapítulo:

IntroduçãoateóricaderedesTCP/IP.ConceitosbásicosdeconfiguraçõesderedesemUNIX.

OsprotocolosTCP/IP

AntigamenteosprotocolosTCP/IPeramusadospormilitaresparaatrocadeinformações,hojeemdia,esteéumpadrãomundialparaacomunicaçãoderedes.OprocoloTCP(TransmissionControlProtocol),éorientadoaconexões,transportainformaçõespormeiodehandshaking,oupormeioderetransmissãocasoalgumerroaconteça.Esseprotocologaranteoenviodasmensagens.PodemoscitaralgunsserviçosderedequeutilizamoprocotoloTCP:SMTP,FTPeTelnet.

Já o procolo IP (Internet Protocol) descrito pela RFC 791, é responsável por estabelecer o

esquemadeendereçamentoepeladefiniçãodedatagramas.

EntendendooIP

O endereçamento IP, como deve ser chamado, é composto por 4 octetos e uma máscara, quedeterminaquantosendereçossãodestinadosahosteequantosendereçossãodestinadosarede.

NomundoGNU/linuxnãodiferentedosoutros,paratermosacessoainternetouacomunicaçãoemredetambémprecisamosternossonúmeroIP.OnumeroIPestápresenteemtodasasmáquinas,mesmonasquenão temconexãocoma internet. Issoépossívelpoisem todoGNU/Linuxháumainterface lógica, chamada loopback (lo) cujo enedereço IP será 127.0.0.1 e que sempre deve estardevidamenteconfigurada.

Algumas aplicações de sua máquina utilizam o IP 127.0.0.1 para comunicação com outras

aplicações internas. Além disso, você pode desenvolver suas páginas e sistemas Web e testá-laslocalmente.OumesmotestaraimplantaçãodeumservidordeDNSouumproxy,antesdecolocá-loemprodução.

A Internet é totalmente endereçada por números IP's e não depende de um servidorDNS para

funcionar.OserviçoDNSapenasfacilitaonossoacessoainternet,permitindoqueanavegaçãosejafeitaatravésdenomesenãodenúmeros.

ParaconfigurarmosumnúmeroIPemnossocomputador,precisamostambém,configuraruma

“Máscara”paraessenúmeroIP.Amáscaraderede,tambémconhecidacomonetmaskéumnúmeroconstituídopor32bits,queéutilizadoparasepararredes,determinandoquemé“host”,queméredeequemé“broadcast”.

Host–Umendereçodisponibilizadoparacomputadorespoderemacessararede;Network–Normalmenteéoprimeiroendereçodarede;Broadcast–Normalmenteéoúltimoendereçodarede,utilizadoparaqueumamáquinapossa

falarcomtodasasoutras.Alémdamáscaraderedeénecessáriosaberqueexistemtrêsclassespadrõesderedes.

EntendendooGateway

Oprincipalpapeldo“Gateway”élevarospacotes“TCP/IP”paraoutrasredesqueoshostsqueosoriginaram,nãoconhecem.Édessaformaqueospacotessaemdeumaredeprivadaparaumarede“WAN”. Para que os pacotes possam transitar pela internet oumesmo só por uma rede fechada énecessárioum“Gateway”.Mesmoemumaredelocal,o“gateway”éaprópriamáquina,poistodosos “hosts” estão normalmente com amesma configuração de IP, ou seja,mesmamáscara,mesmaclassedeIP,etc.

OservidorDNS

ODNSéumserviçoqueconverteendereçosIPemnomes,destemodo,aoinvésdevocêdigitaremseunavegador200.1.100.09–Vocêdigita:www.tux4.com.br .Como jámencionadooDNSnão fazpartedaconfiguraçãoessencialdarede,jáqueainternetfuncionaatravésdosnúmerosIP.

Sevocêtestaroendereço:www.tux4.com.breelenãofuncionar,tenteacessá-locom:200.1.100.09

seconseguiroproblemaestánoseuservidorDNS.*OIP(200.1.100.09)mencionadonestecapítuloéfictícioenãopertenceaodomíniotux4.com.br

ConfigurandoaRede

Aconfiguraçãodaredeébaseadaemtrêsetapas:

ConfiguraçãodonúmeroIPemáscaraConfiguraçãodoGatewayConfiguraçãodoDNSServer

Em um sistema GNU/Linux, para configurar a nossa interface de rede utilizamos o comando

ifconfig.ifconfigExecutando este comando é possível descobrir todas as interfaces presentes no sistema. Por

padrãoemquase todasasdistribuiçõesdeLinuxa interfacepadrãoé identificadacomoeth0. Paraverificardemodomais apurado, inclusivepesquisando interfaces inativas,usamosoparâmetro -acomonoexemplo:

ifconfig-aAsintaxedocomandoifconfigparaatribuirumendereçodeIP:ifconfig<interface><ip>Exemplo:ifconfigeth0192.168.1.10Comestecomandoestamosatribuindooendereço(192.168.1.0)paraainterfaceeth0.Ocomando

ifconfig calcula automaticamente a máscara, mas se você precisar configurar uma mascaradiferenciada,vocêdeveusaroparâmetronetmask:

ifconfigeth0192.168.1.10netmask255.255.254.0Paraativaroudesabilitarumaplacaderedepodemosusarasintaxe:ifconfigeth0upifconfigeth0down

Configurandoogateway

Para que nossos pacotes saibampara onde ir eles precisam conhecer o IP doGateway da rede.Opapeldogatewayésimples,elefuncionacomoumasaídaparaospacotesdeumarede,paraoutrasredes.

Para configurar o gateway da nossa rede utilizamos o comando route com os seguintesparâmetros:

routeadddefaultgwIPComestecomandoépossívelconfigurararotapadrãodesaídadanossarede.Paralistartodasas

rotastraçadas,podemosutilizarocomandoabaixo:route-nComelepodemosdescobrirseasrotasnecessáriasparaquenossaredefuncioneestãocorretas.

Sedesejaremosremoverarotapadrão,devemosusarocomando:routedeldefaultEstecomandoiráremoverarotapadrãodesaídadarede.

ConfiguraçãodoDNSServer

Para configurar os servidores DNS para a máquina local, precisamos editar o arquivo deconfiguraçãodeDNS,chamadoresolv.conflocalizadoem/etc.

nano/etc/resolv.confDentro deste arquivo podemos configurar os nossos servidores deDNS, para isto, coloque as

seguinteslinhas:nameserver201.6.0.100Com esta sintaxe configurarmos um servidorDNS, neste caso é oDNS do Serviço de Banda

Larga-Virtua.

Configuraçãoestáticadarede

Todaaconfiguraçãodaredepodeseratribuídapelalinhadecomando,comoobservamosatéagora.Porém,paraqueestasconfiguraçõesestejamativasapósvocêreiniciarocomputadorénecessárioeditá-lasemarquivo.

Configureoarquivo:/etc/network/interfacesExemplodeconfiguração:autoloifaceloinetloopbackautoeth0ifaceeth0inetstaticaddress192.168.200.xnetmask255.255.255.0broadcast192.168.200.255network192.168.200.0gateway192.168.200.254Podemos também configurar alguns atalhos para endereços de rede. Estes atalhos ficam

localizadosdentrodoarquivo/etc/hostsAsintaxedeleé:IPapelidoapelidoExemplo:192.168.200.234professorramosIssofacilitanossotrabalho.Apósapelidaroshosts,vocênãomaisprecisarádecorarendereços

IPS.

Comandohostname

O comando hostname altera dinamicamente o nome da máquina e deve ser utilizado da seguintemaneira:

hostnameNovo_NomeParaalterarde formaestática,ouseja,paraqueonomesemantenhaapósa reinicializaçãodo

computador,altereoarquivo/etc/hostname

Consideraçõesfinaispeloautor

MeuobjetivodesdeocomeçofoiescreverumlivrocompactoequeabordassedeformadiretatodososconceitosdaAdministraçãodeSistemasequetambémpudesseserutilizadocomocomplementoao estudo da certificação linux LPI exame 101. Fazendo a releitura de todo o livro, acredito quealcanceimeuobjetivo.

Para finalizar este livro, quero agradecer à você leitor e patrocinador domeu trabalho, como

sempredigoemminhasaulas:Vamosquevamoseatéapróxima!

Prof.JulianoRamos–[email protected]

www.tux4.com.br

CreatedwithWriter2ePub

byLucaCalcinai