sobre o e-book - amazon simple storage service · assembly (linguagem de máquina) para a...
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
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
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
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