Administração Prática do Linux

Propaganda
SobreoE-book
Este livro tem como objetivo capacitar o leitor na utilização e administração de uma distribuição
GNU/Linux. O livro não aborda em particular nenhuma distro¹, porém, os conceitos tratados são
abrangentesdemodoquevocê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 do
treinamentodeLPIC-1e2ecoordenandopedagogicamentecursosdeAdministraçãodesistemasem
escolasparticulareseUnivesidades.
Referências:
Distro¹–AbreviaturaparaDistribuiçãodeGNU/Linux
Tux4you²–Redesocialparaocompartilhamentodoconhecimentohumano
www.rede.tux4.com.br
Sobreoautorporelemesmo
MeunomeéJulianoRamos,souconsultordeServidoresLinuxamaisdedezanos,certificadoLPIC3, Novell Linux e Ubuntu. Atuei na prefeitura de São Paulo coordenando trinta unidades de
Telecentros(Centrosdeinclusãodigital)queeramimplantadosembairrosdebaixoIDH.Apóscinco
anosàfrentedestetrabalho,seguiparaumaempresaprivadaatuandocomocoordenadorpedagógico
em projetos para o terceiro setor e hoje atuo em minha própria empresa como consultor de TI e
professor.SouativistadomovimentoOpenSourceepalestranteemeventoscomooCampusParty,
masminhagrandeinspiraçãonavidaéseromantenedordaredesocialTux4youaqualsoutambém
o criador. Esta mídia social diferente das outras é composta por pessoas que curtem compartilhar
conhecimento. Neste espaço você ganha tempo e não “perde tempo”, hoje passamos de 50.000
membros, mas ainda existe um grande potencial a ser explorado, aguardo você por lá e excelente
leituradestelivro.
Créditos
ADeus,quesemostroucriador,quefoicriativo.Seufôlegodevidaemmim
mefoisustentoemedeucoragemparaquestionarrealidades
eproporsempreumnovomundode
possibilidades.
Àminhaamadaesposa,porsuacapacidadedeacreditar
emmim,mesmoquandoninguémmaisofez.
Àminhapequenaluzefontedeinspiração
Obrigadopeloseusorrisodiário
Giovanna,minhafilha.
Capítulo1–AorigemdoGNU/Linux
Nestecapítulo:
HistóriadoMultics–Unix–Minix–GNUeLinux
Simbiose:LinuxeGNU
SoftwareLivre
SimbioseGNUeLinux
No ano de 1964 o MIT (Instituto de Tecnologia de Massachusetts) junto com a divisão de
computadoresdacompanhiaGeneraleletric(GE)eoslaboratóriosBelldeTelefoniainiciaramum
projeto que estava muito adiante do seu tempo. Tratava-se da criação de um grande sistema
operacional de “Tempo Compartilhado”. Em um sistema de tempo compartilhado a capacidade e o
processamentodamáquinaédivididoentremúltiplosusuários,queacessamatravésdeterminais.O
usuário dirige a sua tarefa, seus comandos são interpretados e executados em seguida
(processamentoonline).
Segundo a visão dos seus criadores, haveria imenso computadores, poderosos e inderrubáveis,
rodando Multics, sendo acessados por milhares de pessoas em "terminais" espalhados por todo o
planeta.Essesusuáriospagariamsuas"contasdocomputador"comohojepagamosluz,águaeTVa
cabo.
No ano de 1969 os laboratórios Bell abandonaram o projeto, sua divisão de computadores foi
comprada pela Honeywell em 1970 que tentou usar de forma comercial o MULTICS sem sucesso.
Comdurascriticasoprojetoficouabandonadoetevesuaúltimainstalaçãooperacionaldesligadaem
31deoutubrode2000.Apesardoinsucessodesteprojeto,oMULTICSfoioiníciodeumarevolução
nomododesefazereusarsistemasoperacionais.
UNIX
KenThompson,trabalhavaparaaGEdesenvolvendooMULTICS.Quandoaempresaabandonouo
projetoem1969elecomeçouareescreverosistemanumconceitomenosambicioso,batizando-ode
Unicseusandoalinguagemdemontagem(assembly).Mastarde,osistemafoirebatizadodeUnix
pôrBrianKernighanquefoipioneironodesenvolvimentodaslinguagensdeprogramaçãoAWKe
AMPL.
UmmarcoimportantenomundoUNIXaconteceuem1973quandotodoosistemafoiportadode
Assembly (linguagem de máquina) para a “Linguagem C” . A linguagem de programação C foi
criadapôrDennisRitchie,semsombradedúvidas,grandepartedosucessodoUnixeseusderivados
é por causa desta linguagem de programação. A linguagem C foi influência para as linguagens de
programaçãorecentes,taiscomo:C++,Java,C#,PHPeJavascript.Ritchiemorreuem12deoutubro
de 2011, uma semana após a morte de Steve Jobs. Sua morte só foi noticiada em alguns portais
especializados,bemdiferentedoqueaconteceucomJobs.
MINIX
“Umaopçãolivre,decódigofonteaberto,paraseaprenderUNIX”.
Andrew S. Tanenbaum criou o sistema operacional MINIX para explicar o funcionamento dos
sistemasoperacionais.Tanenbaumlançouumlivroem1987chamado"OperatingSystemDesignand
Implementation"quecontinha12.000linhasdecódigodokernel,gerenciadordememóriaesistemas
dearquivos.EstesistemaeracompatívelcomasétimaediçãodoUNIX,porém,eradecódigoaberto
e disponível. Os cursos universitários de Tecnologia, começaram a usar o MINIX que rodava em
computadoresmodestos;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 ensino
médio (High School), Stallman passou o verão escrevendo seu primeiro programa - um préprocessador para a linguagem de programação PL/1 no IBM 360. "Eu escrevi primeiro em PL/1,
passandoentãoparaalinguagemdemáquina(assembly)quandooprogramaPL/1tornou-segrande
demaisparacabernocomputador".ContouStallman,anosdepois(Williams2002,Capítulo3).
Nosanosde1980aconteceuo"Odeclíniodaculturahacker"queatéentãodominavaavidade
Stallman.Aportabilidadedossoftwarestornou-seumproblemaparaosfabricantesdecomputadores,
quecomeçaramanãodivulgarocódigofontedosseussoftwaresdemodoqueosconcorrentesnão
poderiam utilizá-lo. Quando esta nova cultura de softwares proprietários atingiu o MIT onde RMS
trabalhava, ele a rejeitou. Negou-se a assinar acordos de não-divulgação de informação. Ele
escolheu,aocontrário,compartilharseutrabalhocomosoutros,oqueconsideroucomoumespírito
clássicodecolaboraçãocientífica.Noanode1984StallmanparouseutrabalhonoMITparadedicarseintegralmenteaoseuprojetoGNU,anunciadoemsetembrode1983.
Noanode1985RMSpublicouoManifestoGNU¹.
Referência:
http://www.gnu.org/gnu/manifesto.pt-br.html
GNUeoKernel
OGNUéumsistemaoperacionalquefoicriadonospadrõesUNIXporémcomumcódigopróprio
queélivreparaserdistribuído,usado,melhoradoecopiado.Porémde1985quandofoilançadoo
manifestoGNUaté1992osistemaoperacionalGNUnãoestavaprontoparaserdistribuído,faltavalheumkernelquefosserealmenteutilizável.
Kernel(Núcleo)éosoftwarequefazagestãodoHardwaredoseucomputador,eleservedeponte
entre os aplicativos e o processamento real de dados feito a nível de Hardware. O sistema GNU
iniciou o desenvolvimento de um kernel chamado HURD em 1990 porém por um erro de
desenvolvimento este projeto acabou ficando estagnado. De acordo com Thomas Bushnell, o
arquitetoinicialdoHurd,oplanoinicialeraadaptarokernel4.4BSD-lite(Eistoprovavelmentedaria
certo de acordo com Bushnell) para o sistema GNU, porém, Stallman propôs que eles usassem o
Mach microkernel que estava sendo desenvolvido na universidade Carnegie Mellon (CMU). Esta
escolhaatrasouodesenvolvimentoemtrêsanos,devidoaincertezaseaCMUirialiberarocódigo
do Mach em uma licença de acordo com o GNU. Neste intervalo de incertezas algo surpreendente
aconteceu.
OKernelLinux
O projeto GNU seguia firme com vários desenvolvedores abraçando a causa, foram criadas
ferramentasindispensáveisparaumsistemaoperacional,comoumcompiladorparaalinguagemC,
editores de texto entre outras aplicações. Em 1992 o sistema já estava "quase" pronto, mas ainda
faltava um kernel funcional. Neste ano um jovem Finlandês chamado Linus Torvalds, mudou a
licençadeumkernelquetinhadesenvolvidoapartirdoMinix,deacordocomsuaspalavras(Eraum
Minix melhor que o Minix) para a licença livre GPL do projeto GNU. Então, não demorou muito
para os desenvolvedores empacotarem o Kernel Linux, com as dezenas de softwares GNU já
disponíveiscriandoumsistemaoperacionalcompleto.
ASimbiose
Simbiose é uma relação mutualmente vantajosa entre dois ou mais organismos vivos de espécies
diferentes.Explicaroqueé"simbiose"foiamelhormaneiraqueencontreiparaexplicarosucesso
doGNU/Linux,umdependiadooutro.SemalicençalivredoprojetoGNUchamadadeGPL(GNU
GeneralPublicLicense)oLinuxnãoteriaalcançadoseusprimeirosdesenvolvedoresvoluntáriosque
tornaram o código utilizável em larga escala, além disto, para o usuário final, foram os softwares
aplicativos(GNU)quetornaramosistemaoperacionalrealmenteoperacional.
FreeSoftware
AFSF-FreeSoftwareFoundationemportuguês(FundaçãodoSoftwareLivre)éumaorganização
sem fins lucrativos, fundada em 04 de outubro de 1985 por Richard Stallman e que se dedica a
eliminação de restrições sobre a cópia, redistribuição, estudo e modificação de programas de
computador.Noanode1989RichardStallmanlançoupelaFSFalicençaGPL(GnuPublicLicense)LicençaPúblicaGeralquegarantiaaosdesenvolvedoresdoprojetoGNUqueumsoftwarelivreseria
semprelivre.Stallman,compreendeu,queseriamuitodifícileliminarasleisdeCopyright(direitos
autorais)então,eleusouestaleiafavordesuasideias,criandooconceitodeCopyleft(Esquerdos
autorais).
A GPL é uma licença com Copyleft, isto significa que ela é "viral", ou seja, quando um
programador usa um código GPL e altera/modifica este código ele também deve deixar estas
modificaçõessobreGPL.MasquaisliberdadesaGPLgarante?Sãoquatroliberdadesbásicas:
ALiberdadeparausarosoftware
ALiberdadedeestudarosoftware
ALiberdadedecopiarecompartilharosoftwarecomoutros
ALiberdadeparamodificarotrabalhoetambémparadistribuirostrabalhosmodificadose
derivados
Com a garantia destas liberdades, a GPL permite que os programas sejam Administrando o
linuxdistribuídosereaproveitados,mantendo,porém,osdireitosdoautorporformaanãopermitir
que essa informação seja usada de uma maneira que limite as liberdades originais. A licença não
permite,porexemplo,queocódigosejaaponderadoporoutrapessoa,ouquesejamimpostossobre
elerestriçõesqueimpeçamquesejadistribuídodamesmamaneiraquefoiadquirido.Comopassar
dos anos, outras licenças livres foram desenvolvidas, algumas mais outras menos permissivas, a
Fundaçãodosoftwarelivreconsideralivreumalicençaqueatendapelomenosasquatroliberdades.
A GPL ganhou uma segunda versão em 1992 (GPLV2) e a uma terceira versão em junho de 2007
(GPLv3)queéaversãoatual.
DistribuiçãoGNU/Linux
VocêpodeusarosistemaoperacionalGNUcomokernelHURD(Nãoestável),BSDoucomoLinux
(Mais comum e recomendado). Neste caso, é comum chamarmos de distribuição GNU/Linux. Uma
distribuiçãoGNU/Linux(distro)éumsistemaoperacionalcompleto,istoincluionúcleo(linux),um
conjunto de pacotes (softwares), um sistema de gestão de pacotes e um repositório. Algumas
distribuições foram criadas e são mantidas por pessoas e/ou comunidades de voluntários, outras
porém, são mantidas por empresas. A primeira distribuição de GNU/linux foi lançada em 1992
chamada de MCC Interim Linux, em seguida surgiu a SLS (Softlanding Linux System) e ainda que
não tenha durado muito, foi a base para a criação da distro Slackware (Que até hoje está em
evidência).Em1993IanMurdochlançouoDebianLinux,enoanoseguintevieramoRedHatLinux
eoSuSeLinux.
Capítulo2–SobreasdistribuiçõesdeGNU/Linux
Nestecapítulo
ConheçaasprincipaisdistribuiçõesdeGNU/Linux
Debian,Slackware,Fedora,Ubuntu,ArchLinux,TrisquelLinux
Debian
ODebianfoilançadoem16deAgostode1993porIanMurdock,aotempoestudanteuniversitário,
queescreveuoManifestoDebianqueapelavaàcriaçãodeumadistribuiçãoLinuxasermantidade
uma maneira aberta, segundo o espírito de Linux e do GNU. O projeto Debian cresceu
vagarosamenteaté1995quandooprojetodpkgganhounotoriedade.
O dpkg é a base de gerenciamento de pacotes da distribuição linux Debian. Foi inicialmente
criadoporMattWelsh,CarlStreetereIanMurdockcomoumaaplicaçãoPerl,sendoposteriormente
reescrito,emsuamaiorparte,paraalinguagemC(Linguagemdeprogramação)porIanJacksonem
1993.Odpkgéumsoftwareparainstalar,removereatualizarprogramas.Aprimeiraversão1.xdo
Debianaconteceuem1996.
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 de
versão(ex:5.0).
Aversão“Testing”atualé“Stretch”.Aversão“Unstable”terásempreonomeSid,personagem
quecostumavaaquebrarosbrinquedos,emalusãoaosbugsquepodemocorrernestaversão.
SlackwareLinux
OSlackwareéumsistemaoperacionalbaseadoemprojetosoficiaisdesoftwarelivre,desenvolvido
porpessoasespalhadasnomundoorganizadasemcomunidadeseinstituições,sendoaprincipaldelas
aFSF(FreeSoftwareFoundation)comseusprojetoselicenciamentosGNULGPLdesoftwarelivre.
UtilizaoKerneloficialdaLinuxFoundation,Linux.Onome“Slackware”tevesugestivaorigemda
“TheChurchOftheSubGenius”(IgrejadoSubgênio)queéumaorganizaçãoreligiosaoriginalmente
baseada em Dallas, no estado estadunidense do Texas, a igreja do Subgênio ganhou destaque nas
décadas de 1980 e 1990 e mantêm uma presença ativa na internet. A igreja ganhou espaço com a
popularizaçãodainternetem1990comumsiteelaboradamentedecoradoedois“newgrous Usenet”
(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ém
disto, todas as configurações do sistema são feitas diretamente nos documentos de texto de
configuraçãoenãocomutilitáriosgráficos.
O Slackware Linux (ou simplesmente “Slack”) tem como objetivo manter-se fiel ao padrões
UNIX, mantendo-se bem estruturada e organizada para administradores e usuários, profissionais e
acadêmicos,rejeitandoferramentasdeconfiguraçãoqueescondamorealfuncionamentodosistema
adotando 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çadaem16ou17dejulhode
1993porPatrickVolkerding,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 sem
gerenciamento de dependências. O formato dos pacotes .tgz/.txz são bastante similar a um .tar.gz,
contendoapenasosarquivosasereminstaladosemsuasrespectivaspastasemrelaçãoàpastaraizdo
sistema,alémdeumscriptcomcomandoscomplementaresparaainstalação.
Fedora
FedoraantigamentechamadodeFedoraCoreéumsistemaoperacionalquetemporbaseolinux,a
distribuiçãolinuxécompletamentelivredecustosparapoderusufruirepartilhar.FoicriadapelaRed
Hat.AtualmentemantidapeloprojetoFedora(FedoraProject)epatrocinadopelaRedHat.
O gerenciador de pacotes do Fedora é o RPM (Red Hat Package Manager), o RPM serve para
instalar, atualizar, desinstalar, verificar e procurar softwares. Até a versão 17 o instalador era
semelhante ao da distribuição Red Hat 9, na versão 18 o sistema de instalação foi totalmente
reformulado.NovasversõesdoFedorasãolançadasaproximadamenteacadaseismeses.Alémdas
versões oficiais, o Fedora possui também uma versão instável, o Rawhide, que serve como um
campodeprovasparatodasasatualizaçõesemudançasquefarãopartedapróximaversão.
O Fedora distribui software absolutamente livre que tem um instalador gráfico completo, vem
comferramentasdesktopedeadministraçãofáceisdeusar.Fedoraéonomedeumclássicochapéu
quesurgiunadécadade20.
Ubuntu
UbuntuéumadistribuiçãobaseadanoDebianpatrocinadapelaCanonicalLtd.OUbuntudiferencia-se
doDebianporterversõeslançadassemestralmente,pordisponibilizarsuportetécniconos9meses
seguintes ao lançamento de cada versão (as versões LTS – Long Term Support – Para desktop e
servidorrecebem5anosdesuporte)epelasuafilosofiaemtornodesuaconcepção.Apropostado
Ubuntu é oferecer um sistema que qualquer pessoa possa utilizar sem dificuldades,
independentemente de nacionalidade, nível de conhecimento ou limitações físicas. O sistema dever
serconstituídoprincipalmenteporSoftwareLivre.Devetambémserisentodequalquertaxa.
O nome “Ubuntu” - [u'buntu] deriva do conceito sul africano de mesmo nome, diretamente
traduzido como “Humanidade com os outros” ou “sou o que sou pelo que nós somos”. O ubuntu
assimcomooDebianutilizapacotesnoformato.DEBquepodemserinstaladospeloutilitáriodpkg
ouapt.
Um grande diferencial do Ubuntu em relação as outras distribuições de GNU/Linux é a sua
interfacegráficaUnity.OUnityfoidesenvolvidopelacomunidadeAyatanaeadaptadopelaCanonical
Ltd. Sua primeira aparição foi na versão 10.10 para netbooks, ele foi desenhado inicialmente para
fazer 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, XFCE e LXDE o Unity não inclui aplicações, já que foi feito para usar programas GTK+ já
existentes.Apartirdaversão11.10doUbuntuoUnitypassouaseraúnicainterfacepadrão.
Opensuse
ApósadquiriroSuselinuxemjaneirode2004,aNovell,umaempresaAmericanaquenadécadade
1980ficoufamosaporseusistemaoperacionalderede(Netware)incentivouodesenvolvimentode
umacomunidadeparaodesenvolvimentodeumadistribuiçãoGNU/Linux.AcomunidadeOpenSuse
Projecté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 para
arquiteturas x86 e x86-64. O OpenSuse é compatível com o RPM (Red Hat Package) e possui seu
própriogerenciadordepacotesZypperquefuncionadeformasimilaraoapt-getdoDebian.
ArchLinux
OArchassimcomooSlackwareéumadistribuiçãoKISS.Osistemaébaseadoemtornodearquivos
binários,quesãoclassificadoscomoi686ex86_64,sendoumsistemaparecidocomosports/ebuild
estádisponivelparaacompilaçãoautomáticadospacotes,trata-sedoArchBuildSystema.
OArchLinuxéconsideradoumadasdistribuiçõesmaisdifíceisdeseinstalar,istoporquê,não
existe um programa de instalação. Você vai realizando tarefas através de scripts que simplificam o
processo. O gerenciamento de pacotes é feito pelo pacman que conduz a instalação, atualização e
remoçãoeatualizaçãodepacotes.
TrisquelLinux
Oprojetonasceuem2004comopatrocíniodaUniversidadedeVigo,efoioficialmenteapresentado
emAbrilde2005comRichardStallman,fundadordoprojetoGNU.Oprojetohospedaseuspróprios
repositórios,quederivamdo“main”e“universe”doUbuntu,porémtodoosoftwareproprietárioou
comlicençasnãolivressãoeliminados.OTrisquelestánalistadedistribuiçõeslivresdaFSF.
Capítulo3–InstalandooLinux
Nestecapítulo:
Passossobreainstalação
AnalisandooHardware
UsandoumLive-CD
Instalandoolinuxpelopendrive
ParticionandooDiscorí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
normalmente causa fobia nos novatos é o particionamento do disco, o resto da instalação é rotina,
apenas uma questão de seguir instruções. Se você ainda não se sente confortável para instalar o
Linux, tudo bem, você poderá realizar o download de uma distribuição Live-CD e executá-la sem
precisaralterarnenhumamodificaçãonoseudiscorígido.Todoosistemanestecasofuncionapelo
CDouDVD,quandovocêreiniciaocomputadoreremoveoCDdodrive,todasassuascoisasestão
lá,intactas.
Porém, quando você executa o sistema pelo CD/DVD e até mesmo pelo pendrive, não terá o
mesmodesempenhoeprazerqueéusarolinuxnativamenteemseucomputador.
PassosdainstalaçãodoLinux
Instalar qualquer distribuição de Linux envolve uma série de passos. Vou orientá-lo sobre estas
etapasdemodoquevocêpoderáinstalarqualquerumaseguindoasorientaçõesdosinstaladores.
Algumas distribuições de Linux exigem que você tenha um pouco de informação sobre o
hardware do seu PC. Felizmente a grande maioria das distribuições instala de forma automatizada
todososseusperifé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 tem
menos de 4GB de memória RAM e um processador mais antigo, opte pela versão 64 Bits se seu
processadoré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ê realizou
downloadeescolhaaopção“gravadordeimagensdediscodowindows”.
2) O Segundo passo é configurar no Setup do seu PC a inicialização pelo CD/DVD. As etapas
específicasparaentrarnaconfiguraçãodoSetupedefinirodispositivodebootvariadecomputador
paracomputador.NormalmentevocêacessaoSetupcomumatecla(F2ouDelete)apósligaroPC,
movimentando-se com as setas do teclado, você localiza a opção (Boot) e coloca o CD/DVD em
primeiro lugar da ordem de boot. Após isto é necessário salvar o Setup, fechar e iniciar o
computadorcomoCD/DVDdesuadistronodrive.
3) Caso sua distribuição seja Live, 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 seu
discorígido.
4)SevocêpretendeinstalaroLinux,antesdequalquercoisa,façaumbackupdeseusarquivos
(em outro HD, Disco Rígido externo, em algum HD virtual como o dropbox ou google drive). Se
vocêpretendeinstalarjuntocomoWindows(DualBoot)demodoquepossaescolherqualusarna
inicializaçãodocomputador.InstaleprimeirooWindowsereserveumespaço(pelomenos20GB)
para o Linux. Instaladores como os do Ubuntu, OpenSuse, Fedora, já vão detectar este espaço e
ofertá-lo para você instalar o sistema. Caso o instalador pergunte sobre em qual local instalar o
gerenciadordeboot(gruboulilo)selecioneMBR.
5)Seleçãodesoftwares.Agrandemaioriadasdistribuiçõesjáinstalamumconjuntodepacotes
(softwares) de modo automático. Se você é iniciantes sempre escolha as opções (default) dos
instaladores.
6)Nofinaldainstalaçãovocêvaireiniciaroseucomputador.Lembre-sederemoveroCD/DVD
paranãoiniciarnovamenteoprocessodeinstalação.DistribuiçõescomooFedora,OpenSuseeOpen
Mandriva,oferecempacotesadicionaisnoprimeiroboot.
AnalisandooseuHardware
Se você está preocupado se seu PC pode ou não rodar o Linux, aqui está uma lista das principais
consideraçõesantesdecomeçaroprocessodeinstalação.
UnidadedeDVD:VocêdeveterumaunidadedeDVDequeseucomputadorsejacapazde
iniciarporestaunidade.Omodeloexatonãoimporta.SevocêadicionarumaunidadedeDVD
externaaumaportaUSBfuncionarásemproblemasnolinux.
DiscoRígido:QualquerunidadedediscoIDE/SCSIfuncionanolinux.Parausarasdistribuições
atuaisconfortavelmente,tenhapelomenos20GBdeespaço.
Teclado:TodosostecladosvãofuncionarnoLinux.
Monitor:Otipodemonitornãoéparticularmentecrítico,excetoqueeledevesercapazde
exibirasresoluçõesdetelaqueaplacadevideousa.Seoinstaladornãodetectaroseumonitor
vocêpodeescolherummodelogenérico.
Mouse:Oprogramadeinstalaçãopodedetectaromouse.Todosostiposdemouse(comoPS/2
ouUSB)vãofuncionarnoambientegráficodoLinux(XWindowSystem).
Placaderede:Normalmenteoinstaladorirádetectaretentarconfigurar(DHCP)suaplacade
rede.Sevocêtiverproblemas,tenteencontrarnaplacaamarcaeomodelo,procurenos
buscadoresinformaçãodecomoprocederparainstalarnasuadistroespecifica.
Placadesom:SeoseuPCtiverumaplacadesom,façaumapesquisacomamarcaemodelona
WEBparatercertezaseelaécompatívelcomolinux.
PlacadeVídeo:Linuxfuncionabemcomtodasasplacasdevídeo(Tambémconhecidoscomo
adaptadoresdevídeo),algunsmodelosporémnãopossuemsuporte3Devocêpodeter
problemascomaltasresoluções,destacoaqui,osadaptadoresSYSqueestãoemNotebooks
maisantigos,dalinhaPositivo.Sevocêusaumadaptador:Intel,NvidiaouATIfiquetranquilo
comoLinux.
Impressora:Esteéumhardwarequevocêdevepesquisarmarcaemodeloparasaberseé
compatívelcomoLinux.Equipamentosquepossuemumbomsuporte(tratando-sede
impressoras)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 o
processodeinstalaçãodoUbuntuLinuxqueconsideroomaissimplesefácilparausuáriosiniciantes.
Ligue o computador, coloque o CD/DVD do Ubuntu. Deixe o computador prosseguir com a
inicializaçãodoinstalador.Hojeemdiaagrandemaioriadoscomputadoresnovosjásaemdefábrica
com a configuração para dar boot pela unidade de CD/DVD-ROM, portanto, se o seu computador
não estiver com esta configuração definida, você deverá entrar no setup da sua máquina para setar
essaopção.
A figura abaixo mostra a tela de configuração da linguagem a ser utilizada. Vamos escolher a
linguagemPortuguêsdoBrasiledarumcliquenobotãoInstalaroUbuntu:
Na tela que aparecer em seguida, Preparando para instalar Ubuntu, selecione a opção Instalar
esseprogramadeterceiroeentã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 reinstalar
Ubuntu)edepoisumcliquenobotãoInstalarAgora.
Casovocêtenhaalgumsistemaoperacional,vocêteráaopção(Apagaroseusistemaoperacional
einstalaroUbuntu).
Na próxima tela, Onde você está?, dê um clique na região do mapa onde você se encontra e
cliquenobotãoContinuar:
NatelaDisposiçãodoteclado,vejaqueautomaticamenteoinstaladorjámarcaexatamenteotipo
de layout do seu teclado. Se você estiver em dúvida se o layout do seu teclado foi configurado
corretamente,bastavocêdigitaralgumaspalavrasacentuadasnocampo"Digiteaquiparatestaro
seu teclado". Se a configuração estiver incorreta, você poderá dar um clique no botão Detectar a
disposição do teclado. Quando terminar e o teclado estiver corretamente configurado, clique em
Continuar:
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érmino
cliqueemContinuar:
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çõesfundamentaissobreoShell
Históricodecomandos
GerenciamentodeArquivos
FiltrosdeTexto
OShell
O Shell é um interpretador de comandos que analisa o texto digitado na linha de comandos e os
executaproduzindoalgumresultado.Sevocêestáusandoomodográfico,aperteasteclas:ctrl+alt+f1
paraacessaromodo-texto.
OsprincipaistiposdeShell:
bash,sh,csh,tcsh,kshezsh,sendoobash,oshellpadrãonamaioriadasdistribuiçõesdeLinux.
PromptdoShell
Osímbolo$(dólar)identificaopromptdecomandosdoshell.Algumasvariaçõesdestesímbolo
sãopermitidas,comoonomedeusuário,docomputador,diretóriocorrenteentreoutrasopções.
Simbologia
Opromptdoshellpodevariar,dependendodousuárioqueestáutilizandoosistemanomomento.
Osinal“$”significaqueumusuáriocomuméqueestáusandoamáquina.Osinal“#”significaqueo
super-usuárioestálogadonosistema.
Root–TambémconhecidocomoSuperUsuário
Osuper-usuárioéoadministradordosistemaLinux.Eletempoderesparafazerabsolutamente
tudonosistema.Eleéconhecidocomousuário“root”ou“raíz”traduzindodoinglês.
VariáveisAmbientais
Durante 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ável
guardaoconteúdodopromptdecomandosdobashquandoeleestáprontopararecebercomandos.
Oconteúdodequalquervariávelpoderáservisualizadoutilizandoocomandoechoeonomeda
variável:
echo$PS1
Geralmenteopromptéexibidodaseguintemaneira:
juliano@trisquel:/home$
Querepresenta:
nomedeusuário@nomedocomputador:/diretório
Navariáveléconfiguradodaseguintemaneira:
\u@\h:\W\$
VejamosaseguirumatabelacomoscaracteresdaPS1:
\]
Termina
\t
Exibeahora
\h
Exibeohostname(nomedocomputador)
\s
Exibeoshell
\u
Especificaonomedousuário
\w
Especificaodiretóriocorrente
ExemplodeconfiguraçãodavariávelPS1,abraseuterminaldecomandosedigite:
PS1=”\u@\h:\W:”
PromptString2
AvariávelPS2armazenaoconteúdodopromptdecomandosquandoénecessáriomúltiplaslinhasde
comandosparacompletarumcomando.Estavariáveléosimboloqueapareceparaousuárioquando
umcomandonecessitaseguirparaumasegundalinha.
VariáveisGlobaleLocal
Existemdoistiposdevariá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áveisdeambientelocais,executeoscomandosenv
ouprintenv.Asvariáveisglobaispodemseracessadasporqualquershell.
Comandosparamanipularasvariáveisdeambiente:
echo
Exibeovalordeumavariáveldeambiente,exemplo:
echo$USER
Especificarumintervalodetempo(Emsegundos)antesdeexecutaropróximocomando:
sleep
Exemplodeusodocomandosleep:
sleep5
Paratornarglobalumavariaveldeambienteuseocomandoexportcomonoexemplo:
VALOR=10
exportVALOR
Executareexportarcomandoscontidosemumarquivonoshellcorrente:
alias
Exemplodocomando:
aliascor='ls–color'
Noexemploacima,criamosumcomandochamado(cor)queaoserutilizado,executaocomando
ls–color.Sevocêdesejarqueestecomandoexistaapósreiniciaroseucomputadordeverácriarou
editar(casojáexista)oarquivo.bashrclocalizadonoseudiretóriodeusuário.Observequenafrente
donomedoarquivoexisteumponto(.bashrc)noambienteUnix,istorepresentaumarquivooculto.
Sevocêestáemumterminaldecomandospelomodográfico,podeexecutaroseueditordetextojá
abrindooarquivo,nestecaso,digiteocomando:
gedit/home/seu_usuario/.bashrc
Sevocênãotemoeditorgedit,tentecom(kedit,xedit,pluma).Vocêtambémpodeabrirumeditor
emmodo-texto,omaissimpleséonanonestecasouse:
nano/home/seu_usuario/.bashrc
Coloquenoarquivoalinha:
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:
MANPATH
Exibeosdiretóriosondeocomandomanencontrasuaspáginasdemanual.
echo$MANPATH
DISPLAY
Exibeoterminaldoambientegráficoatualmenteusado,exemplo:
echo$DISPLAY
HOME
Exibeodiretóriohomedousuário
echo$HOME
TERM
Exibeoterminalatualmenteutilizado;
echo$TERM
LOGNAME
Exibeologindousuário
echo$LOGNAME
USER
Exibeonomedeusuário
echo$USER
LANG
Exibeoidiomadosistema
echo$LANG
HISTSIZE
Defineovalormáximodecomandosdohistory.
echo$HISTSIZE
OSTYPE
Exibeaarquiteturadosistema.
echo$OSTYPE
HistóricodeComandos
OShellmantémumhistóricodosúltimoscomandosdigitadospelousuário,podendoservisualizado
pelocaractere!De4formasdiferentes:
!!
Visualizaroúltimocomandodigitados
!n
Onde n é o número que você deve especificar que está no histórico de comandos. A cada
comandoquevocêdigitaeleficararmazenadoemumalista.
!string
Comandosqueiniciamcomostringquevocêespecificar.(String:éumasequênciadecaracteres,
normalmentepalavras).
!-n
Onde n é o numero que você deve especificar (Ele mostra a partir do último comando do
histórico).
history
Exibealistadecomandosdigitados.Opçõesmaisutilizadas:
history-r
Usa como histórico o arquivo (/home/usuario/.bash_history) ao invés de usar o histórico de
comandosglobal.
history-w
Reescreveoarquivo(/home/usuario/.bash_history)
history-c
Limpaohistóricodecomandos.
Aliases(Apelidosdecomandos)
Usamosocomandoaliasparacriarapelidoquesãocomoatalhosparacomandos.Oseuarquivode
configuraçãoficalocalizadonoarquivo(/home/usuario/.bashrc).
Exemplo:
aliascor=`ls–color'
Paraapagarumapelidodecomando,usamosocomandounalias:
unaliascor
Entrandocomcomandosnoshell
CadacomandoUnix/Linuxpossuiumasintaxeúnicaepodehavervariaçõesdependendodesua
distribuiçãodeLinux.
Algunscomandospodemrequereropções,geralmenteprecedidospelosimbolo“-”ou“--”e
porargumentos.
OcomandoprecisaserválidoeestarnosdiretórioslistadosdavariávelPATHoucomsua
localizaçãoabsoluta.
Aoabriroterminaldecomandosdigitels,exemplo:
ls
Observequeelenãonecessitadenenhumargumentoouopçãoparaserexecutado.
Nocasodestecomando,asopçõespodemserconfiguradasseparadamenteoucombinadas:
ls-a
Mostratodososarquivosdoseudiretórioincluindoosocultos(queiniciamcomponto).
-t
Mostraosarquivosordenadospelaú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/Linuxdeumanoite
para o dia. Talvez nunca consiga e isto, não é realmente necessário. Para a salvação de nós meros
mortais,temososcomandos:man,helpeinfo.
Sintaxedocomandoman:
mannome_do_comando
Sintaxedocomandoinfo:
infonome_do_comando
Sintaxedocomandohelp
nome_do_comando–help
GerenciamentodeArquivos
OFilesystemHierarchyStandard(Padrãoparasistemasdearquivoshierárquicos),ouFHS,define
os principais diretórios, e o seu conteúdo, em um sistema operacional Linux ou do tipo Unix. A
versão atual é a 2.3, anunciada em 29 de janeiro de 2004. O FHS é mantido pelo Free Standards
Group, uma organização sem fins lucrativos formada por importantes empresas de hardware e
software, como HP, Red Hat, IBM e Dell. Ainda hoje, a grande maioria das distribuições de
GNU/Linux,incluindomembrosdaFreeStandardsGroup,nãoadotamfielmenteopadrãoproposto.
Em particular, diretórios (paths) criados pela FHS, como o /srv/, não foram adotados em grande
escala.AlgunssistemasUnixeLinuxrompemcomopadrãoFHS,comooGoboLinux.OMacOSx
utiliza uma estrutura com nomes legíveis para humanos em conjunto com um sistema baseado em
FHS.
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/
O mesmo que a hierarquia do topo, mas contém apenas arquivos não essenciais (ex: daemon e
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.Elepodeserutilizadoparacopiarapenasumarquivoou
múltiplosarquivos.
Exemplo:
cparquivo1arquivo2
Noexemploacima,copiamosoarquivo1paraarquivo2criandoestearquivo.
cparquivo1/home/juliano/documentos/arquivo2
Noexemploacima,copiaroaquivo1paraumdiretórioespecífico(/home/juliano/documentos)
Asopçõesmaisfrequentesdocomandocp,são:
cp-d
Preservaoslinksaocopiarosarquivos
cp-p
Preserva todas as informações dos atributos do arquivo, como dono do arquivo, grupo,
permissõesedata
cp-R
Copiaarquivosrecursivamente,ouseja,copiadiretórioscomconteúdo.
cp-f
Forçaumacópia,sobrescrevendosenecessários
cp-v
Mostraonomedecadaarquivocopiado.
Exemplodacopiadeumdiretóriocompleto:
cp-R/home/juliano/home/backup
Noexemploacima,todooconteúdododiretório(/home/juliano)irápara(/home/backup).
Comando:mv
Omvmoveourenomeiaarquivosediretórios.Elenãoalteraosatributosdosarquivosoudiretórios
movidosseatransferênciaforomesmosistemadearquivos.Seodestinoparaondeosarquivosou
diretóriosforemmovidosnãoexistir,ocomandorenomeiaaorigem,senãoosdadosserãogravados
porcima.
Noexemploabaixo,renomeia-seoarquivo1paraarquivo2:
mvarquivo1arquivo2
Noexemploabaixo,move-seoarquivo1paraodiretório/tmp.
mvarquivo1/tmp
Comando:rm
Ocomandorm é utilizado para remover arquivos. Você só pode remover arquivos que você tenha
permissão de gravação. O super usuário (root) pode remover arquivos e diretórios dos outros
usuáriosdosistema.
Asopçõesmaisutilizadas:
-fForçaaremoçãodosarquivossemperguntaraousuários
-RRemoveumdiretórioetodooseuconteúdo
Exemplos,removendooarquivotexto.txt:
rmtexto.txt
Pararemoverumdiretóriocomconteúdo:
rm-Rdiretório
Exemplo:
rm-R/opt/agenda
Noexemploacima,odiretório(agenda)seráremovido.
Vocêtambémpodeforçararemoçãocomocomando:
rm-Rfdiretório
Comandomkdir
O comando mkdir é utilizado para criar um diretório. Você precisa ter permissão de escrita no
diretóriocorrenteparaexecutaromkdir,exemplo:
mkdirmusicas
No exemplo acima, foi criado o diretório “musicas” no diretório corrente. Para criar um
diretórioespecificandosualocalização,faça:
mkdir/home/juliano/documento/administrativo
No exemplo acima, foi criado o diretório administrativo dentro do diretório
/home/juliano/documento/
Asopçõesmaisfrequentes,são:
mkdir-p
Criaodiretórioespecificado,mesmoqueodiretório“pai”nãoexiste.Nestecasoelecriatambém
odiretório“pai”.Exemplo:
mkdir-pcorreios/sedex
Noexemploacimafoicriadoodiretóriocorreioquechamamosdepaieosubdiretóriosedex,
casovocêapagueodiretóriopai“correio”vocêtambémiráapagarseussubdiretórios(filhos),neste
caso“sedex”.
Comandormdir
Ocomandormdir,removeumoumaisdiretóriosdosistema.Odiretórioprecisaestarvazio.
Exemplo:
rmdir/home/documentos
Removeodiretó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-aarquivo
Mudaadataehoraparasuahoraatual.
touch-marquivo
Mudasomenteadataehorademodificaçãoparaaatual
touch-t201503112100arquivo
No 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
Veremos agora alguns comandos de filtro de texto que estão disponíveis em praticamente todas as
distribuiçõesdeGNU/Linux.
Ocomandocat
Usandoocomandocatparacriararquivosdetextopuro:
cat>texto.txt
Noexemploacimavocêirádigitarconteúdodetextoqueseráarmazenadonoarquivo(texto.txt).
Aofinaldasuadigitação,pressioneasteclasctrl+demumalinhavazia.Istoirásalvaroarquivo
(texto.txt).
Paravisualizarumarquivodetexto,useocomando:
cattexto.txt
Paraconcatenararquivos,executeocomando:
cattexto1>texto2
Noexemploacimaoconteúdodetexto2ésubstituídopeloconteúdodetexto1.Paraacrescentar
conteúdosemsubstituiroconteúdojáexistenteutilize>>aoinvésde>,comonoexemplo:
cattexto1>>texto2
Nesteexemplooconteúdodetexto1éadicionadoaotextojáexistentenoarquivotexto2.
Ocomandocut
Ocomandocut(cortar)lêoconteúdodeumoumaisarquivorecortandoverticalmenteestetexto.
Exemplo:
Crieemtextochamado(planilha)comoseguinteconteúdo:
coluna1,coluna2,coluna3
10,2,8
12,9,10
15,30,25
90,120,245
Observequeodelimitadordecada(coluna)éosinaldevírgula.Emalgunscasopoderiaser(:)
dois pontos ou (;) ponto e vírgula. Para visualizarmos somente o conteúdo da segunda coluna do
arquivoplanilhaexecutamosocomando:
cut-d,-f2planilha
Entendendoocomandoacima:
-ddelimitador.
Configuraodelimitadorqueseparaumacolunadeoutra.Opadrãoé“tab”,nocasodoexemplo
(planilha)usamos(virgula).
-fNúmero.
Definaonúmerodacolunaqueseráexibida,nestecasofoio2(segundacoluna).
Ocomandoexpand
Ocomandoexpandtrocaotab(tabulação)dentrodotextoparaumnúmerodeespaçosdeterminado
pelousuário.Exemplo:
Crieumarquivochamadotabulacao.txtcomoconteúdoabaixo:
Fuscaazul
GolVermelho
SantanaPreto
No exemplo acima utilizei três vezes a tecla <tab>. Visualize primeiramente o comando com o
cat.
cattabulacao.txt
Agora execute o comando expand especificando o número de espaços que substituirão a
tabulação,exemplo:
expand-t1tabulacao.txt
Tente,-t2,-t3,etc...
Comando:fmt
O comando fmt formata um texto com uma largura específica. Ele pode remover espaços ou
adicionarespaçosconformealarguradesejada,opadrãoé75caracteres.
Aopçãofrequentementeutilizadaé:
fmt-w50leiame.txt
Nesteexemplo,definimos50comolarguradesejadaparaoarquivo(leiame.txt).
Comandohead
Ocomandoheadmostraasprimeiras10linhasdoiniciodotexto.Aopçãofrequentementeutilizada
é:
head-n50leiame.txt
Nesteexemploas50primeiraslinhasdoarquivo(leiame.txt)serãomostradas.
Comando:Join
Ocomandojoinuneaslinhasdedoisarquivosquepossuamíndicecomum,exemplo:
Crieoarquivofruta.txtecoloqueoseguinteconteúdo:
1maça
2uva
3melancia
Agora,crieoarquivopreco.txtecoloqueoseguinteconteúdo:
1R$2,00Reais
2R$4,00Reais
3R$5,00Reais
Executeagoraocomandojoinparaconcatenarosdoisarquivos:
joinfruta.txtpreco.txt
Oresultadoserá:
1maçaR$2,00Reais
2uvaR$4,00Reais
3melanciaR$5,00Reais
Ocomandopr
Preparaumarquivodetextoparaimpressão.Exemplo:
pr-l70-o30fruta.txt
Onde:
-l
Especificaonúmerodecaracteresdelarguradepágina.Opadrãoé66caracteres.
-o
Especificaonúmerodeespaçosdemargemesquerda.
Ocomandotac
Ocomandotacéoinversodocomandocat,elemostraoconteúdodeumarquivodetextodetrás
parafrente.Exemplo:tacarquivo.txt
Ocomandotail
Ocomandotailvisualizaas10últimaslinhasdeumarquivo.Funcionacomooopostodocomando
head.
Asduasopçõesmaisutilizadasdocomandotailsão:
-n
Especificaonúmerodelinhasfinaisqueotailirámostrardeumarquivo
-f
Mostraasúltimaslinhasdeumarquivocontinuamente.ÚtilparaarquivodeLOG.
Exemplo:
tail-n50/var/log/meulog
tail-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|xargsecho
Nesteexemplo,cadalinhadoarquivotexto.txtépassadacomoargumentoparaocomandoecho.
Capítulo5–EditoresdeTextoemmodo-texto
Nestecapítulo:
Editordetextonano
Editordetextomcedit
EditordetextoVIeVIM
Editornano
OEditornanoéumeditordetextopuromuitoutilizadonoUnixeLinux.ParainstalarnoDebiane
similares|RedHatesimilaresuseoscomandos:
Debian/Ubuntu
apt-getinstallnano
RedHat/Fedora:
yuminstallnano
Paraabrirumarquivoutilize:
nanonome_do_arquivo
Neste editor você realiza as opções como Salvar, Copiar, Cortar e Colar através de teclas de
atalhos.Vejamos:
ctrl+g
Exibeaajuda
ctrl+b
Moveocursorumcaractereatrás
ctrl+n
Moveocursorumalinhaabaixo
ctrl+f
Moveocursorumcaractereàfrente
ctrl+p
Moveumalinhaacima
ctrl+d
Recortaocaractere
ctrl+k
Recortaalinha
ctrl+c
Exibeaposiçãodocursor
ctrl+A
Vaiparaoiniciodalinha
ctrl+E
Vaiparaofimdalinha
ctrl+j
Justificaoparágrafoatual
ctrl+V
Avançaumatela
ctrl+y
Retrocedeumatela
ctrl+u
Colatextooudesfazjustificação
ctrl+w
Localizastringdotexto
ctrl+t
Verificaortográfia
ctrl+r
Abreumarquivo
ctrl+o
Salvaoarquivocomoutronome
ctrl+x
Sai
Editormcedit
O editor mcedit ou mc é bastante fácil de ser utilizado. Inclusive com o uso do mouse mesmo no
modo-texto.ParainstalarnoDebianederivados|RedHatederivados,execute:
Debianederivados:
apt-getinstallmc
RedHatederivados:
yuminstallmc
Abrindoumarquivo:
mceditoumc-enome_do_arquivo
Aseguirumalistacomasteclasdeatalhodomcedit:
F1
Exibeaajuda
F2
Salvaoarquivocorrente
F3
Marcaoiniciodobloco
F4
Substituitexto
F5
Copiaoblocomarcadocomf3
F6
Moveblocomarcadocomf3
F7
Procuretexto
F8
Apagalinhacorrente
F9
Abreomenu
F10
Sai
F12
Salvarcomo
EditordetextoVIeVIM
OeditorVItantonoUNIXcomonoLinuxserveparacriararquivosdetextoescriptsshells,assim
comoeditá-los.OeditorVIpossuidoismodos:Edição,quandovocêapertaatecla(I)ou(insert).Eo
mododecomando,quandovocêapertaatecla(ESC).
IniciandooVI
Digitenobash:
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
:yy
Copiaalinhaondeestáocursor
:p
Colaotexto
:dd
Apagaalinhaondeestáocursor
:i
Inserirumtexto
:s/velho/novo
Substituiapalavravelhopelapalavranovo.
%s/velho/novo/g
substituaemtodooarquivo(%),todas(g)asocorrênciasdevelhopornovo
Além dos comandos de edição do texto como já vimos, existem comandos para configurar o
EditorVIM,sãoeles:
:setaw
Salvaacadaalteração
:setnu
Mostraonúmerodaslinhas
:setff
ConverteoarquivoparaDOS
:setet
Trocatabporespaços
Capítulo6–PermissõesdeArquivos
Nestecapítulo:
Visualizandopermissões
Configurandopermissõesemarquivosediretórios
Permissõesdeacessoaarquivosediretórios
Nestecapítuloestudaremososistemadepermissõesdolinux.Osistemadepermissõespermiteao
administrador do sistema (root) definir o nível de acesso ao usuários, grupos e outros arquivos e
diretóriosalémdeprogramasexecutáveis.
As permissões de acesso protege o sistema de algumas invasões e respectivos programas não
autorizados.Porexemplo,nolinux,podemosimpedirquealgumprogramamaliciosoinstale-sena
máquina, delete algum arquivo ou que seja transferido para outras pessoas via rede, de modo a
invadiroutrossistemas.
3níveisdepermissão
Olinuxgerenciaosistemadeprivilégiosem3tipos:
1.Privilégiododono
2.PrivilégiodoGrupo
3.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.Ogrupodo
arquivo normalmente é definido como padrão do seu criador. A propriedade de grupo adiciona
flexibilidade em situações nas quais uma equipe compartilha arquivos. Os “outros” usuários são
aqueles que não são membros do grupo do arquivo e também não são os proprietários. Para cada
umadessastrêsclassesdeusuários,omododeacessodefinetrêstiposdepermissões,queseaplicam
diferentementeparaarquivosediretórios.Aspermissõesencontram-selistadasnalistaabaixo:
Examinaroconteúdodeumarquivoepoderlistá-lo:
r
Escreveroumodificarumarquivo.Criarouremoverarquivosdeumdiretório:
w
Executarumarquivocomoumprograma.Acessarodiretório.
x
Essastrê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.txt
Oprimeirocaracteredaslinhasacimaindicamotipodearquivo:
dDiretório
bArquivodebloco
cArquivoespecialdecaractere
pCanal
sSocket
-Arquivo“normal”.
Repareagoraquenorestantedastringaindahá9caracteres.Quesãoos3níveisdepermissões
(Dono,grupoeoutros).usandooexemplodasegundalinha,arquivo(notas.txt):
rw-Permissõesdoproprietários
rw-Permissãodogrupo
r--Permissãoparaoutros
Listadepermissõescomuns:
--Nenhumapermissão
r-Permissãodeleitura
r-x
Leituraeexecução
rw-
Leituraegravação
rwx
Leitura,gravaçãoeexecução
Paraconfigurarumarquivousandoaspermissõesdomodotextual(quevimosatéomomento)
usamosocomando:
chmodu+rw,g+w,o-rwxarquivo.txt
Onde:
U–Representaousuário
G–Representaogrupo
O–Representaoutros
PermissõesemsistemaOctal
Além de podemos configurar as permissões do modo textual. Podemos usar o modo octal, neste
caso:
r=4
w=2
x=1
Sevocêsomaros3números,vaiobter7,quesignificapermissãototal,ouseja,rwx.Exemplo:
chmod764arquivo.txt
Osrespectivosvaloressão:
rwx=7(Dono–Acessototal)
rw-=6(Grupo–LeituraeGravação)
r--=4(Outros–Acessoaleitura)
Capítulo7–UsuárioseGrupos
Nestecapítulo:
Gerenciamentodeusuários
Gerenciamentodegrupos
AdicionandoeRemovendousuários
Arquivosdeconfiguraçãodosusuários
ParaadministrarusuáriosnoGnu/Linuxénecessárioconheceroscomandosuseraddeadduser,
adiferençaentreeleséqueouseraddéumbinárioeoadduseréumscript.
Vocêpodeverificarestainformaçãoexecutandoocomando:
file/usr/sbin/useradd
Ocomando“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, apenas
respondendo-seperguntascomo:Nome,Senha,Telefone,E-maileetc…
Criandoumnovousuáriocomuseradd
useradd-m-c“JulianoRamos”-s/bin/bashjuliano
Opçõ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 comando useradd 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.
adduserjuliano
Paraverficarinformaçõessobreousuário,vocêpoderáusarocomandofinger,emmuitoscasos
deverárealizarsuainstalação.NocasodoDebianederivados:
apt-getinstallfinger
Adicionandonovosgrupos
Paraadicionarnovosgruposnolinux,utilizeoscomandosgroupadd e addgroup, a diferença entre
eleséquegroupaddéumbinárioeaddgroupumlinksimbólicoparaoscriptadduser.
Lembrandoquevocêpodeverificaristocomocomandofile.
file/usr/bin/groupadd
Criarumnovogrupocomaddgroup
Ocomandoparaacriaçãodenovosgruposé:
addgroupnome_do_grupo
Agora que temos usuários e grupos em nosso sistema, vamos gerenciá-los através de alguns
comandos.Épossívelporexemplo,bloquearacontadeumusuárioeforçá-loatrocarsuasenhaem
seuprimeirologin,paraistousamosocomandochage:
chage-d0juliano
Paratrocarasenhadeumusuáriousamosocomando:
passwdjuliano
Parabloquearologindeumusuário,usamos:
usermod-Ljuliano
Paradesbloquearologindesteusuário,usamos:
usermod-Ujuliano
Paramodificaradescriçãodeumusuário,usamos:
usermod-c“JulianoOliveira”juliano
Mudandoologindeumusuário
Ousuário“Juliano”agoradeveráser“Grubelilo”.Oprimeiropassoémudaronomedousuário:
usermod-lgrubelilojuliano
Agoraquejámudamosonomedologin,vamosalteraroseudiretório/home,primeirovamos
criá-lo:
mkdir/home/grubelilo
Adicioneagoraumnovogrupocomonomedousuário:
addgroupgrubelilo
Mudeodonodogrupoparaonovodiretório:
chowngrubelilo.grubelilo/home/grubelilo
Altereogrupoprincipaldousuário:
usermod-ggrubelilogrubelilo
Altereodiretóriopadrãodousuário:
usermod-d/home/grubelilogrubelilo
Gerenciandogruposdosistema
Agoraquejáadicionamosnovosgruposeusuáriosaosistema,vamosaprendercomogerenciá-los
através de comandos. É possível por exemplo, alterar o grupo principal de um usuário, tornar um
usuárioadministradordeumgrupoentreoutrasopções.
Adicionandoumusuárioaogrupo
gpasswd-aalunotux4you
Removendoumusuáriodeumgrupo
gpasswd-dalunotux4you
Tornandoumusuárioadministradordogrupo
gpasswd-Aalunotux4you
Quando 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ívelo
gerenciamentousandoarquivosdosistema.
Bloqueiodeusuários
Parabloquearologindeumusuário,acesseoarquivo:/etc/passwd,adicioneosinalde!antesdo
nomedousuário:
nano/etc/passwd
!aluno:x:1004:1007:AlunoTux;;;:/home/aluno:/bin/bash
Loginsemsenha:
Abraoarquivo/etc/passwdeapagueoxentreosdois:(doisponto)aoladodonomedousuário,
exemplodalinhasemox:
juliano::1004:1007:JulianoRamos;;;:/home/juliano:/bin/bash
Sem 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.Reinicie
ocomputadoreremovaolive-cd.Seurootvaiestarsemsenha.
Capítulo8–Gerenciamentodepacotes
Nestecapítulo:
InstalaçãodepacotesDebian
InstalaçãodepacotesRedHat
InstalaçãodepacotesSlackware
Gerenciamentodepacotespelocódigofonte
OdpkgéocomandobásicoparalidarcompacotesDebiannosistema.Sevocêtempacotes.deb,
é com o dpkg que você instala ou analisa seu conteúdo. Mas este programa tem apenas uma visão
parcial do universo Debian: ele sabe o que está instalado no sistema, e o que for dado na linha de
comando, mas não sabe nada dos outros pacotes disponíveis. Assim, ele vai falhar se uma
dependência não for satisfeita. Ferramentas como o apt-get, ao contrário, criará uma lista de
dependênciasparainstalartudoomaisautomaticamentepossível.
Instalandopacotes
dpkg-inomedopacote.deb
Remoçãodepacotes
dpkg-rnomedopacote.deb
ArquivosdeLogdodpkg
Dpkg manté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ébaseadonuma
biblioteca que contém as aplicações principais, e o apt-get é o primeiro front-end em linha de
comando,quefoidesenvolvidodentrodoprojeto.
Instalandoumpacote
apt-getinstallgnome-shell
Instalandoumpacotepeloaptitude
aptitudeinstallgnome-shell
Removendoumpacote
aptituderemovegnome-shell
apt-getremovegnome-shell
Quandovocêremoveumprograma,nemsempre,removeosarquivosdeconfiguração.Exemplo:
VocêinstalaoservidordeimpressãoCUPSecriaumaconfiguraçãopersonalizada.Aoremover
com“apt-getremovecups”estasconfiguraçõesaindacontinuampresentesno/etc/,casovocêvenha
areinstalarestepacoteestasconfiguraçõesserãomantidas.Pararemoverumpacoteetambémestes
arquivosdeconfiguração,utilizeocomando:
Removendocomasconfigurações
apt-getpurgegnome-shell
Instalandováriosprogramasaomesmotempo
apt-getinstallpacote1pacote2pacote3
Removendováriosprogramasaomesmotempo
apt-getremovepacote1pacote2pacote3
Reinstalandopacotes
Osistemapode,àsvezes,serdanificadocomaremoçãooumodificaçãodearquivosnumpacote.
Aformamaisfácilderecuperarestesarquivoséreinstalaropacoteafetado.Infelizmente,osistema
de empacotamento nota que o pacote está instalado e se recusa educadamente a reinstalá-lo; para
evitaristo,useaopção:--reinstalldocomandoapt-get.Ocomandoabaixoreinstalaopostifixmesmo
quandoelejáestápresente:
apt-get–reinstallinstallgnome-shell
Ocachedosarquivos.deb
Aptmantémumacópiadecadaarquivo.debnodiretório/var/cache/apt/archivespararemover
vocêpodeusarocomando:
apt-getclean
Atualizandoosistema
apt-getupgrade
Pesquisandopacotes
apt-cachesearchnomedopacote
Removendopacotes(Automático)
apt-getautoremove
Quandovocêusaoaptitudeouoapt-geteleprocuraossoftwaresnosservidoresespecificadosno
arquivo/etc/apt/sources.list.Vejamosumexemplodestearquivo(ubuntu15.04):
# deb cdrom:[Ubuntu-MATE 15.04 _Vivid Vervet_ - Release amd64 (20150422.1)]/ vivid main
multiverserestricteduniverse
#Seehttp://help.ubuntu.com/community/UpgradeNotesforhowtoupgradeto
#newerversionsofthedistribution.
debhttp://br.archive.ubuntu.com/ubuntu/vividmainrestricted
deb-srchttp://br.archive.ubuntu.com/ubuntu/vividmainrestricted
##Majorbugfixupdatesproducedafterthefinalreleaseofthe
##distribution.
debhttp://br.archive.ubuntu.com/ubuntu/vivid-updatesmainrestricted
deb-srchttp://br.archive.ubuntu.com/ubuntu/vivid-updatesmainrestricted
##N.B.softwarefromthisrepositoryisENTIRELYUNSUPPORTEDbytheUbuntu
##team.Also,pleasenotethatsoftwareinuniverseWILLNOTreceiveany
##revieworupdatesfromtheUbuntusecurityteam.
debhttp://br.archive.ubuntu.com/ubuntu/vividuniverse
deb-srchttp://br.archive.ubuntu.com/ubuntu/vividuniverse
Oarquivoeramaior,mascomistojápodemosvercomoelefunciona.Quandovocêvaiinstalar
algumprogramaemespecífico,podesernecessárioinstalarumservidorantesnestearquivo.Sempre
quevocêadicionaumnovoservidor,deveexecutarocomando:apt-getupdate
PacotesRPM
O Red Hat Package Manager – RPM é um sistema de gerenciamento de pacotes para sistemas
GNU/LinuxbaseadosemRedHat.Eleinstala,atualiza,desinstalaeverificasoftwares.
Uma vantagem que o RPM possui em relação ao DEB é que possui ferramentas de verificação
criptográficacomGPGeoMd5,alémdeverificaçãodeintegridadedosarquivosjáinstalados.
Verificarquaispacotesestãoinstaladosnosistema
rpm-qa
Verificarseumpacoteespecíficoestáinstalado:
rpm-qnomedopacote.rpm
Verificaroqueseráinstaladocomumpacoteespecífico:
rpm-qpnomedopacote.rpm
Verificarseainstalaçãoiráocorrercorretamente:
rpm-ih–test–percentnomedopacote.rpm
Asopções-he–percentservemparamostrarumabarradeprogressoeaporcentagemconcluída.
Instalarumprograma
rpm-ih–percentnomedoprograma.deb
Verifiqueoqueseráefetuadoaoremovermosumpacote:
rpm-e–testnomedopacote
Removendoopacote:
rpm-enomedopacote.rpm
Pararealizarumaatualizaçãodeversãodeumdeterminadoprograma,podemosusar:
rpm-Uhnomedopacote.rpm
UmafuncionalidademuitoboadoRPMéacapacidadederealizarverificaçõesdeintegridadedos
pacotesinstalados.Periodicamente,vocêpodeverificarseocorreualgumaalteraçãonoseusistema
semvocêsaberousesuamáquinafoiinvadida,pode-setentaridentificaroquefoimexidonela.
Verificaraintegridadedetodosospacotes:
rpm-Va
PacotesSlackware
Ospacotesslackwarepossuemaextensão(tgz).
Instalandopacotes
Installpkgpacote.tgz
Removendopacotes
Removepkgpacote
ConversordepacotesAlien
Oalienéumconversordepacotes.IstosignificaquevocêconseguetransformarumpacoteRPMem
DEBeviceversa.
Nodebian,instalecomocomando:
apt-getinstallalien
Paraconverterumpacotepararpmparadebexecutamos:
alien-dpacote.rpm
Paracoverterumpacotedebpararpm,executamos:
alien-rpacote.deb
Paraconverumpacoteparatgz,executamos:
alien-tpacote.deb
Nãoserásemprequeoalienserácapazdefazerumpacotecompatívelcomseusistema.Sempre
procurepelopacotenativo,emúltimorecurso,useoalien.
Instalandopacotespelocódigofonte
Parainstalarpacotespelocódigofonteénecessárioquevocêtenhaasferramentasnecessáriaspara
compilá-los.NoDebianederivados,instaleestespacotescom:
apt-getinstallbuild-essential
Normalmenteospacotesdeprogramasdistribuídosatravésdocódigofontesãocompactadose
empacotesnosformatos(tar.gzoutar.bz2).Paradescompactarestespacotesexecute:
tar-xvzfpacote.tar.gz
Parapacotesnoformato.tar.gz
tar-jxvfpacate.tar.bz2
Parapacotesnoformato.tar.bz2
Apósdescompactar,acesseodiretórioeexecuteoscomandos:
./configure
make
makeinstall
O./configureexecutaumscript(dentrodapastadoprograma),queverificaosistemaembusca
decomponentesqueeleprecisa.Eleavisasealgoestiverfaltando,poristo,vocêdeveficaratentoa
todas as mensagens. O “make” cuida do trabalho pesado, fazendo a compilação. Ele procura os
componentes registrados pelo ./configure. O “make install” instala o programa, copiando os
arquivosgeradospelomakeparaaspastascorretasdosistema.
Capítulo9–Compactadoreseempacotadores
Nestecapítulo:
Diferençaentreempacotarecompactar
Usandootar
Usandoogzip/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. Podemos
classificarassim:
gzipRápido,porémnãomuitoeficienteparareduçãodetamanho
bzip2Lento,porémmuitoeficienteparareduçãodetamanho
CriandoumpacotecomoTAR
O tar é um empacotador, que serve para juntar vários arquivos em um só; imagine a situação
cotidiana:
Vocêprecisaenviaralgumasfotosatravésdoanexodoe-mail.Vocêpodefazerumaaumaoque
levariaalgumtempo,ouempacotá-lascriandoumúnicoarquivoquevocêenviará.
Umaúnicaobservação:Otarnãocompactaelesomenteempacota.Istosignifica,queosarquivos
nãovãodiminuirotamanho.
Criandoumpacotecomotar
Vamoscriarumpacotedetodoodiretório/etc,paraistofazemos:
tar-cvfbkp_etc.tar/etc
Onde:
-cParacriarumbackup
-v(verbose)Paramostrarosdetalhesnahoradacriação
-fParaindicaronomedoarquivo.Essaopçãosemprevemporúltimo,poiséelaquemdefineo
nomedoarquivo.
Vocêpodeverificarqueotamanhododiretório/etcedoarquivobkp_etc.taréomesmo,como
comando:
du-h/etc
du-hbkp_etc.tar
Parainformarocomandotarquevocêtambémdesejacompactar,useoscomplementos:
-zParacompactarcomogzip
-jParacompactarcomobzip2
Entãoocomandomudariapara:
tar-cvzfbkp_etc.tar/etc
ebooklinuxNestecasoparaoformatoGzip,ou:
tar-cvjfbkp_etc.tar/etc
Para usarmos o formato bzip2. Agora que empacotamos e compactamos um diretório, vamos
aprendercomoextrai-los.Nestecasousamosoxdeextract.
tar-xvfbkp_etc.tar
Parapacotes(.tar)
tar-xvzfbkp_etc.tar.gz
ParapacotescompactadosGzip(tar.gz)
tar-xvjfbkp_etc.tar.gz
ParapacotescompactadorBzip2(tar.bz2)
Capítulo10–AgendamentodetarefasnoLinux
Nestecapítulo:
Agendadorat
Agendadorcrontab
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/YYYY
Onde(HH:MM–representahoraseminutos–19:30),MM(Mês–06),DD(Dia:24),YYYY(Ano:
2015).Entãoocomandoseria:
at19:3006/24/2015
ls-lha/etc>/home/tux/listagem.txt
<ctrl+d>
Quandovocêterminardedigitaroseuscomandosdentrodoaténecessáriosairgravandocom
asteclasdeatalho:ctrl+d
Vocêpodevisualizarosagendamentoscomocomando:
atq
Vocêpoderemoverumagendamentocomocomandoatrmmaisonúmerodoagendamento,que
vocêobtémcomocomandoatq.Porexemplo,aoexecutaroatqtivecomoretorno:
3WedJun2419:40:002015aroot
Nestecaso,paraencerraresteprocessoeuuso:atrm3
Crontab
Qualquer usuário pode agendar comandos no crontab porém ele terá que ter permissão para
executaroqueestáagendando.Paraeditarocrontab,digite:
crontabe-e
Onde-eédeedit.Estecomandoiráabrirumarquivoembranco,casonãotenhafeitonenhuma
tarefaagendadaainda,paraquevocêpossaadicionarnovastarefas.Nestearquivoembranco,temos
queadicionarumanovatarefaseguindoaestrutura:
*****comando/tarefa
Aestruturarepresenta:
Minuto0–59
Hora0–23
DiadoMês1–31
Mês1–12
DiadaSemana0–7(o“0”e“7”édomingo,“1”segunda”)
Exemplo:
001425120echo“Hojeédomingo”>arquivo.txt
Atarefaacimavaicriaroarquivo.txtnodia25deDezembroas14:00heestediaprecisaráser
domingo,casocontrário,istonãoseráexecutado.
Paravisualizarastarefasagendadaspelosusuários,comorootdigite:
crontab-l-utux
Onde:
-lParalistar
-uParaespecificarousuários
Quandomandarsalvararegra,outarefaagendada,amesmairáparaumarquivocomonomedo
seuusuário:
ls/var/spool/cron/crontabs/tux
Vocêpodeexecutarocomandocatnoseuarquivoparavisualizaroquefoiagendado.
Digamosquevocêtenhacriadoumscriptquerealizabackupdosarquivosdosusuáriosparaum
servidordebackup.Desegundaasexta-feiraeledeveserexecutadoas22horas.Nestecasoexecute:
crontab-e
0022**1-5/opt/script/scriptbackup.sh
Sempreseránecessáriocolocarocaminhocompleto(/opt/script/scriptbackup.sh)doseuscript.
Entendendooformatodosoperadoresdeagendamento:
,
Especificaumalistadevalores,porexemplo:“1,3,4,7,8”
Especificaumintervalodevalores,porexemplo:1-5(De1a5)
*
Especificatodososvalorespossíveis
/
Especifica pulos de valores, por exemplo: Se no campo (Hora) usarmos : */3 o comando será
executadoàs:0,3,6,9,12,15,18,21
Observamosqueosarquivosdecrontabdosusuáriosficamem:
/var/spool/cron/crontabs
Já a crontab do sistema é encontrada em /etc/crontab e já possui agendamento para realizar as
tarefasqueseencontramnosdiretórios:
/etc/cron.hourly,/etc/cron.daily,/etc/cron.weeklye/etc/cron.monthly
Sevocêpossuiumscriptedesejaqueelesejaexecutadodiariamente,façaumacópiadeleparao
diretório:/etc/cron.daily
cp/opt/script/scriptbackup.sh/etc/cron.daily/
Paraquesejasemanalmente,copie-oparaodiretório/etc/cron.weeklyeparaquesejaexecutado
mensalmentecopie-oparaodiretório/etc/cron.monthly
Depoisdeadicionarosscriptsdentrododiretóriodocron,seránecessárioreiniciaroserviço:
/etc/init.d/cronstop
/etc/init.d/cronstart
Capitulo11–Processos
Nestecapítulo:
Diretório/proc
Funcionamentodosprocessospelolinux
Monitorandoumprocesso
Finalizandoumprocesso
Processo é uma tarefa em execução controlada pelo kernel ocupando uma área na memória
(RAM),noqualoLinuxusaomecanismodeidentificá-lospornúmeros.Ouseja,tudoqueestiver
rodandonosistemaseráumprocesso.Éoprocessoqueutilizaosrecursosdeumcomputador,como
memóriaeprocessamento.Umsimplescomandoéumprocesso,browserabertoéumprocesso.
ÉresponsabilidadedoKernelgerenciarosprocessostentandootimizaraperformancedaCPU–
Unidadecentraldeprocessamento.Oprimeiroprocessodosistemachama-seiniteleéopaidetodos
osoutrosprocessos.
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-x
A primeira coluna de retorno deste comando é o número do PID. Neste momento estou com o
Libreoffice aberto no meu computador e o número de seu PID é o 4741. Eu posso obter algumas
informaçõesacessandooseudiretório:
cd/proc/4741/
Emseguidavisualizooarquivocmdline:
/usr/lib/libreoffice/program/oosplash—writer
Neste caso ele me informou quem é este processo. Nos diretórios dos processos, temos dois
arquivosinteressantesecuriosos:cmdlineestatus.
Vocêpodeobtermaisinformaçõessobreodiretório/procconsultandosuapáginademanual:
manproc
Paralistartodososprocessosdeumamaneiramaissimplesdevisualizar,use:
psaux|more
Explicandoocomando:
aTodososprocessos
udetodososusuários
xprocessossemcontrolepeloterminal
Neste caso todo os processos serão mostrados. É muito melhor, usar o comando ps do que
acessarodiretório/proc.
Vamosanalisaragoraascolunasdesaídadocomandopsaux|more:
userUsuáriosresponsávelpeloprocesso
PIDNúmeroqueidentificaoprocesso,nãoserepete
%CPUQuantodeCPUeleusa
%MEMQuandodeMEMeleusa
VSZTamanhovirtualdoprocesso
RSSIndicaaquantidadedememóriausada(emKB)
TTYTerminalquegerouoprocesso
?Semterminal
STATEstadodoprocesso,sendorepresentadoporumaletra
RExecutável
DEmesperanodisco
SSuspenso
TInterrompido
ZZumbi
COMMANDNomedoprocesso,ouseja,ocomandoemsi.
Com a opção f em ps, é possível visualizar em um formato de árvore os processos,
identificando-seosprocessosquepossuemfilhos:
psfaux|more
Vocêtambémpodeusarocomando:
pstree
Paravisualizarosprocessosvendoumatabelaqueseatualizadetemposemtempos,recomendo
ocomandotop:
top
Este 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 os
processos).
Usamosasintaxekill+onúmerodoPID:
kill-94247
Aopção-9éparaforçaramortedoprocesso.Estenúmeroéconhecidocomo“sinal”.Seosinal
foromitidoéusadoo15comopadrão.Estesinaljogaumsinaldetérmino.Masseoprocessoestiver
travado,ouexecutandoalgumacoisa,elenãovaiterminalevaiignoraroseupedido.Jáo-9forçao
processoaparardequalquerjeito!
Na prática, usamos apenas o -9 e o -15 para matar um processo, mas você pode ver uma lista
completocomocomando:
kill-l
Capítulo12–Gerenciamentodeprocessos
Umprocessopodepassarporváriosestados.Quandoumprocessoécriadoissonãosignificaqueele
será imediatamente executado. Alguns processos podem ser temporariamente parados para que o
processadorpossaexecutarumprocessocommaiorprioridade.
Olinuxtrabalhacomquatrotiposdeestados:
Executável(running):Oprocessopodeserexecutadoimediatamente;
Dormente (waiting): O processo precisa aguardar alguma coisa para ser executado. 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.Podeminteragircomos
usuários e exibem sua execução na tela. A desvantagem deste tipo de processo é que ele prende o
prompteissoimpedeaexecuçã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)esperandoqueumoutroprocessosolicite
seuserviço.OsprocessosdoDaemonfornecemfrequentementeserviçosderede,taiscomooe-mail,
web,etc.Elesnãoprecisamdenenhumaentradaenormalmentenãoproduzemnenhumasaída.Muitos
daemonsdoLinuxtêmosnomesqueterminamemum“d”,comoohttpd,ftpdetc.Oopostodeum
daemoné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 no
comandoe,opcionalmente,oPID.
fg
Permitefazerumprogramarodandoemsegundoplanoouparado,rodaremprimeiroplano.Você
deve usar o comando jobs para pegar o número do processo roando em segundo plano ou
interrompido,estenúmeroserápassadoaocomandofgparaativá-loemprimeiroplano.
Exemplo:
jobs-l
[2]–1245Runningopenoffice&
fg2
openoffice
bg
Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para
fazer um programa em primeiro plano rodar em segundo, devemos primeiro interromper a
execuçãodocomandocomctrl+z;serámostradoonúmerodatarefainterrompida.Useestenúmero
comocomandobgparainiciaraexecuçãodeleemsegundoplano.
Exemplo:
fg2
openoffice
Interrompendo:CTRL+Z
[2]+Stoppedopenoffice)
bg2
Capítulo13–IntroduçãoaRedes
Nestecapítulo:
IntroduçãoateóricaderedesTCP/IP.
ConceitosbásicosdeconfiguraçõesderedesemUNIX.
OsprotocolosTCP/IP
AntigamenteosprotocolosTCP/IPeramusadospormilitaresparaatrocadeinformações,hojeem
dia,esteéumpadrãomundialparaacomunicaçãoderedes.OprocoloTCP(TransmissionControl
Protocol),éorientadoaconexões,transportainformaçõespormeiodehandshaking,oupormeiode
retransmissão caso algum erro aconteça. Esse protocolo garante o envio das mensagens. Podemos
citaralgunsserviç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, que
determinaquantosendereçossãodestinadosahosteequantosendereçossãodestinadosarede.
NomundoGNU/linuxnãodiferentedosoutros,paratermosacessoainternetouacomunicação
emredetambémprecisamosternossonúmeroIP.OnumeroIPestápresenteemtodasasmáquinas,
mesmo nas que não tem conexão com a internet. Isso é possível pois em todo GNU/Linux há uma
interface lógica, chamada loopback (lo) cujo enedereço IP será 127.0.0.1 e que sempre deve estar
devidamenteconfigurada.
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á-las
localmente.OumesmotestaraimplantaçãodeumservidordeDNSouumproxy,antesdecolocá-lo
emprodução.
A Internet é totalmente endereçada por números IP's e não depende de um servidor DNS para
funcionar.OserviçoDNSapenasfacilitaonossoacessoainternet,permitindoqueanavegaçãoseja
feitaatravésdenomesenãodenúmeros.
ParaconfigurarmosumnúmeroIPemnossocomputador,precisamostambém,configuraruma
“Máscara”paraessenúmeroIP.Amáscaraderede,tambémconhecidacomonetmaskéumnúmero
constituídopor32bits,queéutilizadoparasepararredes,determinandoquemé“host”,quemérede
equemé“broadcast”.
Host–Umendereçodisponibilizadoparacomputadorespoderemacessararede;
Network–Normalmenteéoprimeiroendereçodarede;
Broadcast–Normalmente é o último endereço da rede, utilizado para que uma máquina possa
falarcomtodasasoutras.
Alémdamáscaraderedeénecessáriosaberqueexistemtrêsclassespadrõesderedes.
EntendendooGateway
Oprincipalpapeldo“Gateway”élevarospacotes“TCP/IP”paraoutrasredesqueoshostsqueos
originaram,nãoconhecem.Édessaformaqueospacotessaemdeumaredeprivadaparaumarede
“WAN”. Para que os pacotes possam transitar pela internet ou mesmo só por uma rede fechada é
necessárioum“Gateway”.Mesmoemumaredelocal,o“gateway”éaprópriamáquina,poistodos
os “hosts” estão normalmente com a mesma configuração de IP, ou seja, mesma máscara, mesma
classedeIP,etc.
OservidorDNS
ODNSéumserviçoqueconverteendereçosIPemnomes,destemodo,aoinvésdevocêdigitarem
seu navegador 200.1.100.09 – Você digita: www.tux4.com.br . Como já mencionado o DNS não faz
partedaconfiguraçã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áscara
ConfiguraçãodoGateway
ConfiguraçãodoDNSServer
Em um sistema GNU/Linux, para configurar a nossa interface de rede utilizamos o comando
ifconfig.
ifconfig
Executando este comando é possível descobrir todas as interfaces presentes no sistema. Por
padrão em quase todas as distribuições de Linux a interface padrão é identificada como eth0. Para
verificar de modo mais apurado, inclusive pesquisando interfaces inativas, usamos o parâmetro -a
comonoexemplo:
ifconfig-a
AsintaxedocomandoifconfigparaatribuirumendereçodeIP:
ifconfig<interface><ip>
Exemplo:
ifconfigeth0192.168.1.10
Comestecomandoestamosatribuindooendereço(192.168.1.0)paraainterfaceeth0.Ocomando
ifconfig calcula automaticamente a máscara, mas se você precisar configurar uma mascara
diferenciada,vocêdeveusaroparâmetronetmask:
ifconfigeth0192.168.1.10netmask255.255.254.0
Paraativaroudesabilitarumaplacaderedepodemosusarasintaxe:
ifconfigeth0up
ifconfigeth0down
Configurandoogateway
Para que nossos pacotes saibam para onde ir eles precisam conhecer o IP do Gateway da rede. O
papeldogatewayésimples,elefuncionacomoumasaídaparaospacotesdeumarede,paraoutras
redes.
Para configurar o gateway da nossa rede utilizamos o comando route com os seguintes
parâmetros:
routeadddefaultgwIP
Comestecomandoépossívelconfigurararotapadrãodesaídadanossarede.Paralistartodasas
rotastraçadas,podemosutilizarocomandoabaixo:
route-n
Comelepodemosdescobrirseasrotasnecessáriasparaquenossaredefuncioneestãocorretas.
Sedesejaremosremoverarotapadrão,devemosusarocomando:
routedeldefault
Estecomandoiráremoverarotapadrãodesaídadarede.
ConfiguraçãodoDNSServer
Para configurar os servidores DNS para a máquina local, precisamos editar o arquivo de
configuraçãodeDNS,chamadoresolv.conflocalizadoem/etc.
nano/etc/resolv.conf
Dentro deste arquivo podemos configurar os nossos servidores de DNS, para isto, coloque as
seguinteslinhas:
nameserver201.6.0.100
Com esta sintaxe configurarmos um servidor DNS, neste caso é o DNS do Serviço de Banda
Larga-Virtua.
Configuraçãoestáticadarede
Todaaconfiguraçãodaredepodeseratribuídapelalinhadecomando,comoobservamosatéagora.
Porém, para que estas configurações estejam ativas após você reiniciar o computador é necessário
editá-lasemarquivo.
Configureoarquivo:
/etc/network/interfaces
Exemplodeconfiguração:
autolo
ifaceloinetloopback
autoeth0
ifaceeth0inetstatic
address192.168.200.x
netmask255.255.255.0
broadcast192.168.200.255
network192.168.200.0
gateway192.168.200.254
Podemos também configurar alguns atalhos para endereços de rede. Estes atalhos ficam
localizadosdentrodoarquivo/etc/hosts
Asintaxedeleé:
IPapelidoapelido
Exemplo:
192.168.200.234professorramos
Issofacilitanossotrabalho.Apósapelidaroshosts,vocênãomaisprecisarádecorarendereços
IPS.
Comandohostname
O comando hostname altera dinamicamente o nome da máquina e deve ser utilizado da seguinte
maneira:
hostnameNovo_Nome
Para alterar de forma estática, ou seja, para que o nome se mantenha após a reinicialização do
computador,altereoarquivo/etc/hostname
Consideraçõesfinaispeloautor
Meuobjetivodesdeocomeçofoiescreverumlivrocompactoequeabordassedeformadiretatodos
osconceitosdaAdministraçãodeSistemasequetambémpudesseserutilizadocomocomplemento
ao estudo da certificação linux LPI exame 101. Fazendo a releitura de todo o livro, acredito que
alcanceimeuobjetivo.
Para finalizar este livro, quero agradecer à você leitor e patrocinador do meu trabalho, como
sempredigoemminhasaulas:Vamosquevamoseatéapróxima!
Prof.JulianoRamos–Grubelilo.
[email protected]
www.tux4.com.br
CreatedwithWriter2ePub
byLucaCalcinai
Download