450 Linux Essentials (+atualizado 2012)
450 Linux Essentials (+atualizado 2012)
450 Linux Essentials (+atualizado 2012)
Linux Essentials
www.4linux.com.br
Contedo
GNU/Linux: A Origem 2.1 Conhecendo um Novo Mundo . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Distribuies GNU/Linux . . . . . . . . . . . . . . . . . . . . Distribuies Livres de Custos . . . . . . . . . . . . . . . . . . Distribuies Corporativas . . . . . . . . . . . . . . . . . . . . Distribuies Convencionais . . . . . . . . . . . . . . . . . . . Distribuies Live . . . . . . . . . . . . . . . . . . . . . . . . . Distribuies From Scratch . . . . . . . . . . . . . . . . . . . . Distribuies Provenientes (Baseadas) . . . . . . . . . . . . . 2 3 5 6 6 7 7 7 8
GNU/Linux: A Origem
2.1 Conhecendo um Novo Mundo
Utilizar um sistema GNU/Linux muito mais do que optar por uma soluo isenta de custos de licena. usufruir de uma losoa que antecedeu o software proprietrio, e que permitiu, por exemplo, que a Internet crescesse de forma livre como a conhecemos hoje. Como usurio de Software Livre, precisamos compreender um pouco mais sobre essa ideologia e como ela promoveu o surgimento das vrias distribuies. O sistema GNU/Linux frequentemente chamado apenas pelo seu segundo nome: Linux. Entretanto, essa designao no faz justia a todos os desenvolvedores que vm construindo o sistema operacional como um todo. GNU, que um acrnimo recursivo de GNUs Not Unix. Trata-se, de um grupo que foi fundado em 1984 por seu idealizador, Richard Stallman, com o intuito de criar um sistema operacional Unix-like desprovido de amarras e travas ao seu uso. Os desenvolvedores GNU criaram uma srie de programas bsicos para um sistema operacional funcional, como editores de texto e compiladores. Entretanto, havia um pedao de cdigo essencial, que ainda no tinha sido criado: o kernel. Em 1991, um jovem nlands chamado Linus Torvalds disponibilizou para o mundo a primeira verso do Linux, um kernel Unix-like. A partir desse ponto, foi possvel unir o kernel Linux com os softwares GNU, originando o sistema operacional que chamamos de GNU/Linux. O mundo GNU/Linux no apenas um conjunto de programas. Ele traz consigo
4Linux www.4linux.com.br
uma losoa de Mundo Livre e colaborativo, no qual as pessoas podem utilizar esses softwares irrestritamente, acima de tudo, aprender com eles, uma vez que seu cdigo fonte deve ser disponvel a todos que queiram melhor-lo ou apenas aprender com ele. Para que esse mundo continue livre, Richard Stallman fundou a FSF - Free Software Foundation, que criou e mantm a licena GNU GPL - GNU General Public License. Esta licena dene, de modo simplicado, que o Software deve respeitar quatro princpios bsicos, aqui chamados de liberdades. So elas: Liberdade 0 - liberdade para rodar o programa para quaisquer propsitos; Liberdade 1 - liberdade para estudar como o programa trabalha e adapt-lo s suas necessidades. Ter acesso ao cdigo fonte essencial para isso; Liberdade 2 - liberdade de redistribuir cpias de forma que voc possa ajudar outras pessoas; Liberdade 3 - liberdade para melhorar o programa e disponibilizar as melhorias para o pblico, de forma que toda a comunidade possa se beneciar. Ter acesso ao cdigo fonte essencial tambm para isso. Atualmente a GPL est disponvel em trs verses, GPLv1, GPLv2 e GPLv3. Fique por dentro de suas diferenas em:
http://www.gnu.org/licenses/gpl.html
http://www.gnu.org/licenses/gpl-howto.pt-br.html
Para mais informaes a respeito do kernel - Linux - podem ser obtidas no site ocial de seus mantenedores:
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
http://www.kernel.org
Informaes sobre os projetos GNU e FSF podem ser obtidas nos seus respectivos sites:
http://www.gnu.org http://www.fsf.org
Voc j deve ter ouvido falar em Debian, RedHat, Slackware, Suse, Mandriva, Ubuntu, CentOS dentre outras. Mas, o que realmente isso? O que so todos esses nomes? Essas so distribuies GNU/Linux. Uma distribuio nada mais do que o kernel Linux, softwares GNU e outros outros aplicativos que so desenvolvidos por outras comunidades ou grupos, reunidos em um sistema operacional que tem peculiaridades que o diferencia de outros sistemas operacionais GNU/Linux, fazendo-os nicos.
Mas, por que existem tantas distribuies? Justamente porque se voc no se identica com nenhuma delas, voc livre para fazer a sua prpria. Por exemplo, em 1993, um rapaz chamado Patrick Volkerding, juntou o kernel e vrios outros aplicativos em uma distribuio chamada Slackware, que foi a primeira a ser distribuda em CD. A partir desse ponto, foram surgindo diversas outras distribuies que de alguma forma diferiam da losoa do Slackware: como Debian ou RedHat.
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
Atualmente existem centenas de distribuies, algumas mais famosas que outras. Em sua maioria, as distribuies GNU/Linux so mantidas por grandes comunidades de colaboradores, entretanto, h outras que so mantidas por empresas. Dessa forma, podemos dividir as distros, abreviao bastante utilizada na comunidade e que se refere s distribuies, em duas categorias bsicas:
Mantidas por comunidades de colaboradores sem ns lucrativos. Exemplos so: Debian, Slackware, Gentoo, Knoppix e CentOS, entre outras.
Distribuies Corporativas
Mantidas por empresas que vendem o suporte ao seu sistema. Exemplos: RedHat, Ubuntu, Suse e Mandriva. a liberdade do software, garantida pela licena GPL, que perpetua o respeito dos direitos denidos pela FSF. Isso porque, pela denio de Software Livre, nunca, em hiptese alguma, permitido que o cdigo fonte seja negado ao cliente, ao receptor do Software. Assim, por mais que uma empresa queira cobrar por suas verses
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
do sistema GNU/Linux, enquanto ela estiver utilizando softwares licenciados sob a licena GPL, ela ser obrigada a distribuir o cdigo fonte dos programas. Dentro do conjunto de Distribuies, podemos divid-las novamente em duas outras categorias:
Distribuies Convencionais
So distribudas da forma tradicional, ou seja, uma ou mais mdias que so utilizadas para instalar o sistema no disco rgido;
Distribuies Live
So distribudas em mdias com o intuito de rodarem a partir delas, sem a necessidade de serem instaladas no HD. As distribuies Live caram famosas pois tm a inteno de fornecer um sistema GNU/Linux totalmente funcional, de forma fcil e sem colocar em risco o sistema operacional original da mquina. O fator que favoreceu essa abordagem que, em uma distribuio Live praticamente todos os componentes j vm congurados, funcionando e com interfaces agradveis aos usurios nais. Exemplos desse tipo de distribuio so o Knoppix, "Ubuntu"entre outras. Para entender um pouco mais sobre distribuies, necessrio lembrar de mais duas caractersticas:
So desenvolvidas do zero, ou seja, utilizam um kernel Linux, alguns programas GNU e a grande maioria das suas particularidades desenvolvida especicamente para ela. Exemplos: Debian, RedHat, Gentoo, Slackware
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
Aproveitam ferramentas e bases j desenvolvidas por outras distribuies. Distribuies baseadas usam distribuies "From Scratch"para alcanar seus objetivos mais rpido, dando maior ateno ao propsito da distribuio. Exemplos: Ubuntu, DreamLinux, Kubuntu, Slax e Linux Mint
Pgina 8
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
Primeiros Passos
3.1 Introduo terica
A gura abaixo procura demonstrar como o Sistema Operacional GNU/Linux se organiza em layers - camadas:
importante entender cada uma dessas camadas para compreender o conjunto que chamamos de Sistema Operacional. Vamos descrever cada uma delas: Hardware - Dispositivos que esto disponveis para o uso do sistema, tais como cd-rom, placa de rede, controladora SCSI entre outros;
4Linux www.4linux.com.br
Kernel - O ncleo do sistema operacional, essa layer quem faz todas as interaes com o hardware da mquina, interpretando requisies feitas pelas camadas acima desta; Sistema Operacional - Essa layer tem como funo auxiliar e abrigar todos os aplicativos das camadas superiores. Segundo Linus Torvalds essa layer no deve ser notada pelo usurio nal; ttyN - Terminais Virtuais onde so executados os comandos e denidas as conguraes. As ttys interpretam os comandos dados por um humano e convertem os mesmos para uma linguagem que a mquina entenda; DM - A layer de Display Manager responsvel por gerenciar os logins - validao de usurios - na interface grca e escolher o tipo de ambiente grco que deve ser executado; Desktop Environment - Mais conhecido como Ambiente de Trabalho, responsvel por abrigar todos os programas que necessitam de um ambiente grco para funcionar.
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
funo correspondente a um nmero de terminal do 1 ao 6. Esse o comportamento padro e, pode ser mudado. (o stimo, por default, usado pelo ambiente grco - Xorg) O GNU/Linux possui mais de 63 terminais virtuais, mas deles, apenas 6 esto disponveis, inicialmente por motivos de economia de memria RAM. Se voc estiver usando o modo grco, deve segurar Ctrl + Alt enquanto pressiona uma tecla de atalho de F1 a F6. Um exemplo prtico: se voc estiver utilizando o sistema no terminal 1, pressione Ctrl + Alt + F2, e veja na primeira linha, nome e verso do sistema operacional, nome da mquina e o terminal no qual voc est. Voc pode utilizar quantos terminais quiser, do F1 ao F6 (inclusive utilizando o X) e pode car saltando de terminal para terminal.
3.1.2 Logon
Logon a entrada do usurio, seja root ou comum, onde deve ser digitado seu nome de usurio e logo depois sua senha. Caso voc digite algo de forma errada, ir aparecer uma mensagem de erro e voc no ser logado autenticado - no sistema.
importante perceber que quando se digita a senha, no aparece nenhum retorno, como os famosos asteriscos. O objetivo evitar que um observador mais curioso seja capaz de contar quantos caracteres sua senha possui.
3.1.3 Shell
No Mundo GNU/Linux, utilizamos o Shell, que funciona como interpretador de comandos. Ele a interface entre o usurio e o kernel do sistema e por meio dele,
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
podemos digitar os comandos. O Shell padro do GNU/Linux o Bash. Entretanto existem tambm outras interfaces, como, por exemplo, csh, tcsh, ksh e zsh. O kernel a parte mais prxima do hardware do computador. o ncleo do Sistema Operacional. Se seu GNU/Linux estiver com problemas, no chute seu computador, a culpa no dele. O local onde o comando ser digitado marcado por um trao piscante na tela, chamado de cursor. Tanto em Shell texto como em Shell grco necessrio o uso do cursor para saber onde devemos iniciar a digitao de textos e nos orientarmos quanto posio na tela. Popularmente conhecido como linha de comando, o Shell interpreta a ao do usurio atravs das instrues digitadas. Estas instrues podero ser executadas por dois nveis de usurios, com permisses diferentes. So eles: Super usurio: Popularmente conhecido como "root". No se engane, "root" no de raiz, da lngua inglesa. O usurio "root" o administrador do sistema, e seu diretrio (pasta) padro o "/root", diferentemente dos demais usurios que cam dentro do "/home". No prximo captulo falaremos mais sobre a instrutura de diretrios do GNU/LINUX. o "Shell"de uma usurio "root" diferencia do "Shell"de um usurio comun, pois antes do cursor ele identicado com "#" (jogo-da-velha). Usurio comum: qualquer usurio do sistema que no seja root e no tenha poderes administrativos no sistema. Como j havamos dito anteriormente, o diretrio padro para os usurios o /home. Antes do cursor, o Shell de um usurio comum identicado com $ (cifro). Existem muitas funcionalidades no Shell, uma delas retornar comandos que j foram digitados anteriormente. Para fazer isso s pressionar as teclas seta para cima e seta para baixo para ter acesso ao histrico de comandos. Inclusive o nome do programa responsvel por manter essa lista history. Outra funcionalidade muito utilizada, serve para rolar a nossa tela de modo que possamos ir para cima ou para baixo, parecido com o scroll Para rolarmos a tela para
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
cima, segura-se a tecla Shift e pressionamos o Page Up. Para rolarmos a tela para baixo, segura-se a tecla Shift e pressionamos o Page Down. Isto til para ver textos que rolaram rapidamente para cima e saram do nosso campo de viso. A execuo de comandos com poderes administrativos, exige que o nvel do usurio comum seja alterado. Uma das formas de fazer isso utilizando o comando su Super User. Veja sua descrio abaixo:
su - Para usar o comando su necessrio ter o password do administrador. Uma vez que o nvel tenha sido mudado ser possvel executar qualquer comado com poderes de root.
$ su
Ser pedido a senha do usurio root. Aps efetuar a autenticao do usurio, o prompt mudar de $ para # avisando que voc est logado como administrador do sistema. Existem dois comandos, "whoami"e "who am i"que lhe permite saber quem voc em determinado momento. A sequncia de comandos abaixo esclarece o uso e nalidade destes dois comandos claramente:
1 2
# whoami # who am i
O comando whoami indica quem voc no momento root. Se voc utilizou o comando "su"para tornar-se outro usurio o comando "who am i"informa quem voc realmente aluno, pois foi com ele que voc se logou na mquina antes de trocar de usurio.
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
Ele tambm pode ser utilizado para trocar de usurio, ele no pedir a senha se voc for usurio root:
# su - aluno
Com a opo - alm de trocar de usurio, tambm carregar as variveis locais do usurio:
$ su -
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
possvel utilizar o comando loadkeys para alterar o layout de teclado durante a sesso mas, essa alterao ser temporria. Para trocar denitivamente o padro de layout do teclado da mquina, altere o arquivo em /etc/syscong/keyboard.
# loadkeys -d br - abnt2
# loadkeys -d us - acentos
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
1 2 3 4 5 6 7
# cat / etc / sysconf / keyboard KEYTABLE = " us - acentos " MODEL =" pc1 5 " LAYOUT =" us " KEYBOARDTYPE = " pc " VARIANT =" intl " OPTIONS =" qwerty "
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
O terminal do GNU/Linux permite que voc guarde 500 comandos por padro no Debian e 1000 comandos no CentOS.
# history
Comando fc
FC signica Find Command ou Fix Command pois ele executa as duas tarefas, encontrar e corrigir comandos. Para listar os comandos j digitados, guardados no history, digite:
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
# fc -l
Por padro mostra os ltimos 16 comandos. Para visualizar uma lista de comandos do 2 ao 6 faa:
# fc -l 2 6
# fc -l -2
# fc -l h
3.1.7 Logout
1 2 3
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
1 2 3
A palavra halt vem do comando em assembly chamado HTL, que quer dizer parada de processamento. Assim, o GNU/Linux nalizar os programas e gravar os dados remanescentes na memria no disco rgido. Quando for mostrada a mensagem power down, pressione o boto POWER em seu gabinete para desligar a alimentao de energia do computador. Nunca desligue o computador diretamente sem utilizar um dos comandos shutdown, halt ou poweroff, pois podem ocorrer perdas de dados ou falhas no sistema de arquivos de seu disco rgido, devido a programas abertos e dados ainda no gravados no disco. Os comandos halt e poweroff disparam uma srie de procedimentos, como encerramento de servios e desligamento de sistemas de arquivos, que so executados antes da mquina ser desligada. Em computadores mais modernos o comando halt desliga completamente o computador, no sendo necessrio pressionar o boto Power. Salve seus trabalhos para no correr o risco de perd-los durante o desligamento do computador. E se puder, tenha um No-break. O comando shutdown tem a seguinte sintaxe:
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
tempo - tempo em minutos que voc deseja para comear a executar a ao. mensagem - Mensagem que voc quer disparar para todos os terminais logados com o objetivo de avisar aos usurios que o sistema ser desligado ou reiniciado. Exemplos Desligar agora:
# shutdown -h now
Ou
# shutdown -h
Desligar daqui 12 minutos noticando os demais usurios logagos com uma mensagem:
# shutdown -h 12
# shutdown -c
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Reiniciar quer dizer Iniciar novamente o sistema. No recomendvel desligar e ligar constantemente o Computador pelo boto ON/OFF ou RESET. Por isso, existem recursos para reiniciar o sistema sem desligar o computador. No GNU/Linux voc pode usar o comando reboot, shutdown -r now ou pressionar simultaneamente as teclas Ctrl + Alt + Del para reiniciar o sistema de forma segura.
Utilize comandos e no o boto liga/desliga. Prera um dos mtodos de reinicializao explicados acima e use o boto reset somente em ltimo caso.
# shutdown -r now
Ou
# shutdown -r
# shutdown -r 5
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
# pwd
O comando ls utilizado para listar o contedo dos diretrios. Se no for especicado nenhum diretrio, ele ir mostrar o contedo daquele onde estamos no momento. Listar o contedo do diretrio atual:
# ls
O comando cd utilizado para mudar o diretrio atual de onde o usurio est. Exemplos Ir para o diretrio home do usurio logado:
1 2
# cd # cd ~
# cd /
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
# cd / etc
# cd ..
# cd -
# cd ../../
Ateno! Note a diferena entre caminhos absolutos e relativos: Absolutos: /etc/ppp; /usr/share/doc; /lib/modules Relativos: etc/ppp; ../doc; ../../usr;
Diretrio . e ..
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
Fique esperto para conhecer as diferenas entre o . e o .. e o que eles representam para o sistema. Os comandos de movimentao muitas vezes so grandes alvos nas provas, uma boa interpretao desses comandos pode ser necessria, pois voc pode precisar deles para resolver uma questo maior.
Atalhos do bash
A seguir, vamos testar algumas funcionalidades da linha de comando. No necessrio se preocupar em decor-los, com o passar do tempo, pegamos um pouco mais de prtica:
Pressione as teclas Ctrl + A para mover o cursor para o incio da linha de comandos;
Pressione as teclas Ctrl + U para apagar o que estiver esquerda do cursor. O contedo apagado copiado e pode ser colado com Ctrl + y;
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
Pressione as teclas Ctrl + K para apagar o que estiver direita do cursor. O contedo apagado copiado e pode ser colado com Ctrl + y; Pressione as teclas Ctrl + l para limpar a tela e manter a linha de comando na primeira linha. Mas se voc der um Shift + Page Up voc ainda consegue enxergar o contedo. O Ctrl + l um atalho para o comando clear; Pressione as teclas Ctrl + c para abrir uma nova linha de comando, na posio atual do cursor; Pressione as teclas Ctrl + d para sair do Shell. Este equivalente ao comando exit; Pressione as teclas Ctrl + r para procurar x letra relacionada ao ltimo comando digitado que tinha x letra como contedo do comando. Executar o ltimo comando pressione: !! Executar um comando especco do histrico de comandos: !<numero>, ou seja, !12
Linux Essentials
Pgina 19
Obtendo ajuda
4.2 Introduo terica
O ritmo de gerao de conhecimento e informao tem sido vertiginoso nos ltimos cinquenta anos, especialmente na rea tecnolgica. Por isso fundamental saber onde buscar informaes para manter-se sempre atualizado. Neste captulo, vamos aprender a consultar as documentaes existentes e como buscar informaes sobre o que precisamos. O Sistema Operacional GNU/Linux possui uma vasta biblioteca de documentao. Antes de recorrermos a ajuda de outras pessoas, devemos lembrar que podemos ter a respostas que precisamos no prprio sistema, bem a nossa frente, ao teclar de um simples comando. Essa documentao em grande parte dos casos de extrema qualidade. O GNU/Linux cresceu porque a comunidade contribui para o sistema e sua documentao. Essa comunidade no tem medo ou receio de compartilhar informaes e disponibiliza o que foi desenvolvido no prprio sistema. muito importante reforar que no Software Livre, as pessoas nunca ocultam seu know-how, ou seja, voc pode perguntar a vontade, desde que saiba o que e onde perguntar. A documentao do GNU/Linux pode ser vista tambm como fonte de conhecimento, onde pode-se aprender muito sobre cada um dos servios e comandos disponveis. Essa ajuda provida por meio dos manuais, as famosas Man Pages.
20
4Linux www.4linux.com.br
Toda essa documentao que possumos no sistema GNU/Linux est disponvel no site: http://www.tldp.org (The Linux Documentation Project), o site ocial de documentaes sobre GNU/Linux. Um diferencial deste site ter a documentao em vrios idiomas e formatos: pdf, html, txt e outros.
Abaixo vamos comear a nos familiarizar com a documentao existente e as formas nas quais ela apresentada.
4.3.1 How-tos
Os How-tos so documentos que focam uma necessidade especca, como montar um rewall, instalar uma webcam, congurar placas de som, congurar um servidor web e muitos outros. Normalmente esses documentos so instalados junto com suas respectivas aplicaes ou podem ter um pacote especco para a documentao daquela aplicao. Os how-tos tambm so conhecidos como cook-books - livro de receitas. O diretrio de How-tos do GNU/Linux o /usr/share/doc. Se desejamos saber como congurar um rewall, podemos consultar os arquivos do diretrio:
Linux Essentials
Pgina 21
4Linux www.4linux.com.br
Na Internet existem diversos sites de how-tos para GNU/Linux. Dentre eles o mais conhecido no Brasil o Viva o Linux, conhecido tambm como VOL:
http://www.vivaolinux.com.br
Muitas vezes o uso de how-tos ou cook-books, no agrega um bom conhecimento, pois trata-se somente de uma lista de afazeres para chegar a um objetivo. Quando o software atualizado, todo aquele conhecimento ca dependente de um novo how-to.
4.3.2 Manuais
Diferente dos How-tos os manuais no vo te mostrar um passo a passo ou mesmo te dar uma lista de afazeres. O principal objetivo do manual te mostrar como as funcionalidades daquele software podem ser usadas. Com o manual o aprendizado para a utilizao da ferramenta facilitado, j que o mesmo possui alguns exemplos de usabilidade. Esses manuais podem ser encontrados atravs do comando man, o qual veremos ainda nesse captulo, um pouco mais adiante.
4.3.3 Documentao
A palavra documentao muito intensa. Quando falamos em documentar uma ferramenta, estamos na realidade abrangendo uma srie de outros itens importantes, dentre eles os How-tos e os manuais. Com a documentao de um projeto possvel entender absolutamente tudo sobre o mesmo, ou seja, essa documentao deve mostrar todas as partes relacionadas ao projeto.
Pgina 22
Linux Essentials
4Linux www.4linux.com.br
Podemos, por exemplo, citar a documentao de um projeto de rede, onde deve constar no s documentos como how-tos e manuais, mas sim todas as especicaes dos componentes, bem como cabos, switchs e routers dentre outros detalhes muito importantes. Como esse tipo de documentao muito especica, devemos consultar o site de cada projeto individualmente. Existem diversos comandos de ajuda no GNU/Linux, vamos abordar cada um deles logo abaixo:
# help
Caso desejemos visualizar a ajuda rpida para somente um comando interno, usamos esta outra sintaxe:
# help [ comando ]
Linux Essentials
Pgina 23
4Linux www.4linux.com.br
# help type
O comando type mostra se cada nome de comando um comando do UNIX, um comando interno, um alias, uma palavra-chave do shell ou uma funo de shell denida.
# help help
# [ comando ] -- help
Desse modo, caso desejemos visualizar uma ajuda rpida sobre um comando externo, devemos fazer da seguinte forma:
# ls -- help
O parmetro help pode ser utilizado em qualquer comando para ter uma consulta rpida dos parmetros que ele pode nos oferecer. importante entender que help na verdade um parmetro individual de cada comando, logo se um comando no tiver esse parmetro existem outros meios para se obter ajuda. No se esquea de estudar as diferenas entre comandos internos e externos.
Pgina 24
Linux Essentials
4Linux www.4linux.com.br
Imagine que voc precise editar um arquivo, mas no sabe qual editor utilizar. Execute o apropos para procurar algum comando ou manual de um comando para edio:
# apropos editor
Uma forma equivalente ao apropos usar o comando man juntamente com a opo -k:
# man -k editor
Linux Essentials
Pgina 25
4Linux www.4linux.com.br
# whatis [ comando ]
Voc sabe que tem um programa chamado vim, mas no sabe o que ele faz?
# whatis vim
Uma forma equivalente ao whatis usar o comando man juntamente com a opo -f:
# man -f vim
Para localizar as man pages, o comando apropos e whatis utilizam o mesmo banco de dados construdo com o comando catman ou makewhatis (executado pelo administrador do sistema, root). Para construir o banco de dados do comando apropos e whatis devemos executar o comando abaixo: Debian:
# catman
CentOS:
# makewhatis -v
Pgina 26
Linux Essentials
4Linux www.4linux.com.br
Os comandos apropos e whatis utilizam a mesma base de dados, importante perceber isso. catman (Debian) e makewhatis (CentOS)
Linux Essentials
Pgina 27
4Linux www.4linux.com.br
comum o exame cobrar mais dos nveis 1, 5 e 8 dos manuais! Ento lembrese de estudar binrios, arquivos de congurao e comandos administrativos.
# man [ comando ]
ou
# man [ se o ] [ comando ]
Essas informaes sobre as sees do comando man podem ser encontradas em seu prprio manual, digitando o comando man man.
Se for necessrio visualizar o manual do comando passwd, podemos fazer da seguinte forma:
# man passwd
Para navegar pelo manual, o comando man abre um arquivo que est compactado na pasta /usr/share/man/man1 para o passwd. Outros nveis de manuais, dependem do comando ou arquivo. O passwd conhecido no sistema GNU/Linux como um comando que adiciona ou modica a senha do usurio e, tambm, como o arquivo de usurios do sistema (/etc/passwd).
Pgina 28
Linux Essentials
4Linux www.4linux.com.br
# man 5 passwd
Podemos consultar quais manuais esto disponveis dentro do prprio diretrio do man:
Dentro desse diretrio possvel ver todas as divises dos manuais: os nveis, os idiomas e mais. Todos os nveis de manuais possuem sua determinada introduo que pode ser vista com o comando:
Podemos ver os manuais em diversos idiomas diferentes, desde que o pacote para o idioma escolhido esteja instalado. Se nosso sistema estiver instalado em portugus, o comando man ir trazer todas os manuais disponveis em portugus. J se nosso sistema estiver em ingls preciso usar o parmetro -L pt_BR, para que possamos ver os manuais em nosso idioma:
importante nesse ponto ressaltar que a documentao em nosso idioma depende de pessoas que ajudam a fazer a traduo para o portugus, se voc quiser ajudar, acredite, voc ser muito bem vindo. Veja como ajudar com o comando:
# man 7 undocumented
Linux Essentials
Pgina 29
4Linux www.4linux.com.br
Podemos ver que para visualizar o manual do arquivo de usurio passwd precisamos informar em qual nvel de manual ele se encontra, pois j existe um passwd no nvel 1, que o comando, ento ele aparece primeiro quando digitamos man passwd sem indicar o nvel. Esse manual do arquivo passwd est compactado na pasta /usr/share/man/man5.
# info
# info [ comando ]
Pgina 30
Linux Essentials
4Linux www.4linux.com.br
# info vim
Alternativas para consulta Para obter uma melhor visualizao, duas ferramentas de documentao foram desenvolvidas: yelp -> Ferramenta grca para visualizao de manuais de aplicativos grcos do GNOME; (fornecido pelo pacote yelp) xman -> Front-end para o comando man, que facilita a consulta das man pages; (fornecido pelo pacote x11-apps)
ou
Linux Essentials
Pgina 31
4Linux www.4linux.com.br
Mostrar a localizao do binrio do comando, do arquivo de congurao (caso exista), e a localizao das pginas de manuais do comando vim:
# whereis vim
# which vi
Pgina 32
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
Aprendendo Comandos do GNU/Linux 4.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 O comando ls . . . . . . . . . . . . . . . . . . . . . . . . . . Criar arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . Curingas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removendo arquivos/diretrios 3 4 4 7 7
FHS, Hierarquia dos Diretrios 4.2 4.3 Estrutura de Diretrios GNU/Linux 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9
Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Diretrio / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Diretrio /bin . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Diretrio /boot . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Diretrio /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Diretrio /etc . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Diretrio /lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Diretrio /media . . . . . . . . . . . . . . . . . . . . . . . . . 26 Diretrio /mnt . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Diretrio /opt . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3.11 Diretrio /srv . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.12 Diretrio /tmp . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.13 Diretrio /usr . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.14 Diretrio /var . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4Linux www.4linux.com.br
Contedo
4.3.15 Diretrio /proc . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.16 Diretrio /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.17 Diretrios /home e /root . . . . . . . . . . . . . . . . . . . . . 33 4.4 Localizao no sistema: 4.4.1 4.4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Linux Essentials
Pgina 3
4.1.1 O comando ls
O comando ls possui muitos parmetros, veremos aqui as opes mais utilizadas. A primeira delas o -l que lista os arquivos ou diretrios de uma forma bem detalhada (quem criou, data de criao, tamanho, dono e grupo ao qual cada um pertence):
4Linux www.4linux.com.br
1 2
Veja que a sada desse comando bem detalhada. Falando sobre os campos, para o primeiro caractere temos algumas opes:
1 2 3 4 5 6 7 8
d => indica que se trata de um diret rio l => indica que se trata de um " link " ( como se fosse um atalho tamb m vamos falar sobre ele depois ) - => h fen , indica que se trata de um arquivo regular c => indica que o arquivo um dispositivo de caractere ( sem buffer ) b => indica que o arquivo um dispositivo de bloco ( com buffer ) u => " sin nimo para o tipo c " indica que o arquivo um dispositivo de caractere ( sem buffer ) s => indica que o arquivo um socket p => indica que o arquivo um fifo , named pipe
FIFO - Sigla para First In, First Out, que em ingls signica primeiro a entrar, primeiro a sair. So amplamente utilizados para implementar las de espera. Os elementos vo sendo colocados no nal da la e retirados por ordem de chegada. Pipes (|) so um exemplo de implementao de FIFO. Buffer - uma regio de memria temporria, usada para escrita e leitura de dados. Normalmente, os buffers so utilizados quando existe uma diferena entre a taxa em que os dados so recebidos e a taxa em que eles podem ser processados. Socket - um meio de comunicao por software entre um computador e outro. uma combinao de um endereo IP, um protocolo e um nmero de porta do protocolo. O campo rwxr-xr-x lista as permisses, enquanto os campos root indicam quem o usurio e grupo dono desse diretrio que, no nosso caso, o administrador do
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
sistema, o usurio root. O nmero antes do dono indica o nmero de hard links, um assunto abordado apenas em cursos mais avanados. O campo 1024 indica o tamanho do arquivo, e o campo 2007-01-15 23:17 informa a data e hora em que o diretrio foi criado. Finalmente, no ltimo campo temos o nome do arquivo ou diretrio listado, que, no nosso exemplo, o boot. Com relao aos diretrios, importante ressaltar que o tamanho mostrado no corresponde ao espao ocupado pelo diretrio e seus arquivos e subdiretrios. Esse espao aquele ocupado pela entrada no sistema de arquivos que corresponde ao diretrio. A opo -a lista todos arquivos, inclusive os ocultos:
1 2 3 4
# ls -a / root .. aptitude . bashrc . profile . rnd . ssh . vmware .. . bash_history . kde . qt root_1612 6 . viminfo . Xauthority
Veja que, da sada do comando anterior, alguns arquivos so iniciados por . (ponto). Esses arquivos so ocultos. No Linux, arquivos e diretrios ocultos so iniciados por um . (ponto). Listar arquivos de forma recursiva, ou seja, listar tambm os subdiretrios que esto dentro do diretrio /:
# ls -R /
Como listar os arquivos que terminam com a palavra .conf dentro do diretrio /etc?
Como buscar no diretrio raiz / todos os diretrios que terminem com a letra n?
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
# ls -ld /* n
1 2 3
# cd / srv # touch procedimentos . txt # touch contas . pdf contas2 . pdf contas3 . pdf contas4 . pdf
4.1.3 Curingas
O signicado da palavra curinga no dicionrio o seguinte: carta de baralho, que em certos jogos, muda de valor e colocao na sequncia. No sistema GNU/Linux bem parecida a utilizao desse recurso. Os curingas so utilizados para especicar um ou mais arquivos ou diretrios. Eles podem substituir uma palavra completa ou somente uma letra, seja para listar, copiar, apagar, etc. So usados cinco tipos de curingas no GNU/Linux:
1 2 3
* - Utilizado para um nome completo ou restante de um arquivo / diret rio ; ? - Esse curinga pode substituir uma ou mais letras em determinada posi o ; ! - exclui da opera o
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
4 5 6 7 8 9 10 11
[ padr o] - utilizado para refer ncia a uma faixa de caracteres de um arquivo / diret rio . [a -z ][ -9] - Usado para trabalhar com caracteres de a at z seguidos de um caractere de de um caractere 1 ou 1 ou naquela posi o . at 9. naquela posi o . [a ,z ][1 , ] - Usado para trabalhar com os caracteres a e z seguidos [a -z ,1 , ] - Faz refer ncia do intervalo de caracteres de a at z ou [^ abc ] - Faz refer ncia a qualquer caracter exceto a , b e c . { padr o} - Expande e gera strings para pesquisa de padr es de um arquivo / diret rio . X{ab , 1} - Faz refer ncia a sequ ncia de caracteres Xab ou X 1 . X{a -e ,1 } - Faz refer ncia a sequ ncia de caracteres Xa Xb Xc Xd Xe X1
DICA: - A barra invertida serve para escapar um caracter especial, ela conhecida tambm como backslash.
A diferena do mtodo de expanso dos demais, que a existncia do arquivo ou diretrio opcional para resultado nal. Isto til para a criao de diretrios. Os 5 tipos de curingas mais utilizados ( *, ?, [ ], , ! ) podem ser usados juntos. Vejamos alguns exemplos: Vamos criar 5 arquivos no diretrio /srv utilizando o mtodo de expanso.
1 2
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
1 2
# ls curriculo1 . txt curriculo2 . txt curriculo3 . txt curriculo4 . new curriculo5 . new
Vamos listar todos os arquivos do diretrio /srv. Podemos usar o curinga * para visualizar todos os arquivos do diretrio:
1 2
# ls * curriculo1 . txt curriculo2 . txt curriculo3 . txt curriculo4 . new curriculo5 . new
Para listarmos todos os arquivos do diretrio /srv que tenham new no nome:
1 2
Listar todos os arquivos que comeam com qualquer nome e terminam com .txt:
1 2
Listar todos os arquivos que comeam com o nome curriculo, tenham qualquer caractere no lugar do curinga, e terminem com .txt:
1 2
Para listar todos os arquivos que comeam com o nome curriculo, tenham qualquer caractere entre o nmero 1-3 no lugar da 4 letra e terminem com .txt. Neste
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
caso, se obtm uma ltragem mais exata, pois o curinga especica qualquer caractere naquela posio e [ ] especica um intervalo de nmeros ou letras que ser usado:
1 2
1 2
1 2 3 4 5
Existem muitas outras sintaxes possveis para obter o mesmo resultado. A mais indicada ser sempre aquela que atender necessidade com o menor esforo possvel. A criatividade nesse momento conta muito. No exemplo anterior, a ltima forma resulta na busca mais especca. O que pretendemos mostrar como visualizar mais de um arquivo de uma s vez. O uso de curingas muito til e pode ser utilizado em todas as aes do sistema operacional referentes aos arquivos e diretrios: copiar , apagar, mover e renomear.
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
1 2
A opo -p permite a criao de diretrios de forma recursiva. Para que um subdiretrio exista, o seu diretrio diretamente superior tem que existir. Portanto a criao de uma estrutura como Rh/Processos/Cvs exigiria a execuo de trs comandos mkdir. Algo como:
1 2 3
A opo -p permite que toda essa estrutura seja criada em uma nica linha. Assim:
# mkdir -p Rh / Processos / Cv \ s
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
O comando rm utilizado para apagar arquivos, diretrios e subdiretrios estejam eles vazios ou no. Exemplos: Remover os arquivos com extenso txt:
1 2 3 4
1 2
A opo -i fora a conrmao para remover o arquivo curriculo4.new. Remover o diretrio Rh:
# rm -r Rh
A opo -r ou -R indica recursividade, ou seja, a remoo dever ser do diretrio Rh e de todo o seu contedo.
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
Observao: Muita ateno ao usar o comando rm! Uma vez que os arquivos e diretrios removidos no podem mais ser recuperados!
O comando rmdir utilizado para remover diretrios vazios. Exemplos: Remover o diretrio Suporte:
# rmdir Suporte
1 2 3 4 5 6 7
# cp arquivo - origem arquivo - destino # cp arquivo - origem caminho / diret rio - destino / # cp -R diret rio - origem nome - destino # cp -R diret rio - origem caminho / diret rio - destino /
Uma opo do comando cp muito til em nosso dia-a-dia a opo -p, que faz com que a cpia mantenha os meta-dados dos arquivos, ou seja, no modica a data e hora de criao, seus donos e nem suas permisses. Utilizar como root:
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8
# su - aluno $ touch teste $ ls -l $ exit # cd / home / aluno # cp -p teste teste2 # cp teste teste3 # ls -l teste2 teste3
1 2 3 4
# mv arquivo caminho / diret rio - destino / # mv arquivo novo - nome # mv diret rio novo - nome # mv diret rio caminho / diret rio - destino /
# mv teste teste4
Movendo arquivo:
# mv teste4 / tmp
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Renomeando diretrio:
1 2
Movendo diretrio:
# mv financeiro / srv / Rh /
Linux Essentials
Pgina 15
16
4Linux www.4linux.com.br
vital entender bem sobre a FHS para prova, atravs dela que ns devemos fazer nossas atividades com o GNU/Linux em nosso dia-a-dia.
A estrutura de diretrios tambm conhecida como rvore de Diretrios porque tem a forma de uma rvore. Mas, antes de estudarmos a estrutura de diretrios, temos que entender o que so diretrios.
Um diretrio o local onde os arquivos so guardados no sistema. O objetivo organizar os diferentes arquivos e programas. Pense nos diretrios como sendo as gavetas de um armrio. Cada gaveta guarda, normalmente, um tipo diferente de roupa, enquanto cada diretrio guarda um certo tipo especco de arquivo.
O arquivo pode ser um texto, uma imagem, planilha, etc. Os arquivos devem ser identicados por nomes para que sejam localizados por quem deseja utiliz-los.
Um detalhe importante a ser observado que o GNU/Linux segue o padro POSIX que case sensitive, isto , ele diferencia letras maisculas e minsculas nos arquivos e diretrios.
Sendo assim, um arquivo chamado Arquivo diferente de um outro chamado ARQUIVO e diferente de um terceiro, chamado arquivo. Inteligente isso, no ?
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
Da estrutura mostrada acima, o FHS determina que um sistema GNU/Linux deve conter obrigatoriamente 14 diretrios, especicados a seguir:
4.3.1 Diretrio /
# ls -- color /
A opo color do comando ls serve para deixar colorido a listagem, ex: azul -> diretrio branco -> arquivo regular verde -> arquivo executvel azul claro -> link simblico vermelho -> arquivo compactado rosa -> imagem Este o principal diretrio do GNU/Linux, e representado por uma / (barra). no diretrio raiz que cam todos os demais diretrios do sistema. Estes diretrios, que vamos conhecer agora, so chamados de subdiretrios pois esto dentro do diretrio /.
# ls / bin
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
Esse um diretrio pblico, sendo assim, os comandos que esto nele podem ser utilizados por qualquer usurio do sistema. Entre os comandos, esto: /bin/ls; /bin/cp; /bin/mkdir; /bin/cat; Qualquer usurio pode executar estes comandos:
1 2
# ls / boot
No diretrio /boot esto os arquivos estticos necessrios inicializao do sistema, e o gerenciador de boot. O gerenciador de boot um programa que permite escolher e carregar o sistema operacional que ser iniciado.
# ls / dev
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
No diretrio /dev cam todos os arquivos de dispositivos. O GNU/Linux faz a comunicao com os perifricos por meio de links especiais que cam armazenados nesse diretrio, facilitando assim o acesso aos mesmos. Para vericar que seu mouse reconhecido como um arquivo, tente olhar o contedo do arquivo /dev/input/mice:
Repare que os dados so binrios e no possvel ler o arquivo com o comando cat. Caso seu terminal que com caracteres estranhos utilize o comando reset para resetar o shell:
# reset
Para visualizar o contedo do arquivo /dev/input/mice execute o comando od que utilizado para visualizar o contedo de um arquivo nos formatos: hexadecimal, octal, ASCII e nome dos caracteres. Este comando pode ser til para um programador que deseja criar um programa conforme o movimento do mouse.
# od / dev / psaux
Pgina 20
Linux Essentials
4Linux www.4linux.com.br
O comando hexdump utilizado para visualizar o contedo de um arquivo nos formatos: hexadecimal, octal, decimal, ASCII. Este comando pode ser til para um programador que deseja criar um programa conforme o movimento do mouse.
# ls / etc
No diretrio /etc esto os arquivos de congurao do sistema. Nesse diretrio vamos encontrar vrios arquivos de congurao, tais como: scripts de inicializao do sistema, tabela do sistema de arquivos, congurao padro para logins dos usurios, etc.
aluno :x :1
:1
Vamos dividir esta linha em campos, onde cada campo separado por : (dois pontos), ento:
Linux Essentials
Pgina 21
4Linux www.4linux.com.br
O comando more assim como o cat serve para ver o contedo de um arquivo que , geralmente, texto. A diferena entre o more e o cat que o more faz uma pausa a cada tela cheia exibindo uma mensagem --More", dando uma oportunidade ao usurio ler a tela. Aperte enter para ir para a prxima linha ou espao para ir para a prxima pgina e para sair digite q. Uma alternativa ao uso do comando more seria o uso do comando less, que implementa as mesmas funcionalidades que more e mais algumas, como a possibilidade de rolar a tela para cima e para o lado quando o texto ocupa mais de oitenta colunas. A utilizao dos comandos less e more se faz de maneira semelhante.
Pgina 22
Linux Essentials
4Linux www.4linux.com.br
Este arquivo possui as senhas criptografadas dos usurios do sistema. Existe uma entada no arquivo para cada usurio do sistema com os seguintes campos:
Apenas o usurio root (administrador do sistema) tem permisso para acessar o arquivo /etc/shadow. O comando pwconv usado para criar o arquivo shadow a partir do arquivo /etc/passwd , enquanto o comando pwunconv executa a operao inversa. Execute:
pwunconv
Verique que as senhas criptografadas esto agora no arquivo /etc/passwd atravs do comando getent:
Linux Essentials
Pgina 23
4Linux www.4linux.com.br
# getent passwd
O comando getent obtm dados da base administrativa do sistema, seguindo a ordem de busca que est no arquivo /etc/nsswitch.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# cat / etc / nsswitch . conf # / etc / nsswitch . conf # # Example configuration of GNU Name Service Switch functionality . # If you have the glibc - doc - reference and info packages installed , try : # info libc " Name Service Switch " for information about this file . passwd : group : shadow : hosts : networks : protocols : services : ethers : rpc : netgroup : compat compat compat files mdns4_minimal [ NOTFOUND = return ] dns mdns4 files db files db files db files db files nis
Observe a linha do passwd, o compat signica compatibilidade com o sistema, ou seja, o arquivo /etc/passwd, mas os usurios e as senhas poderiam estar armazenados em uma outra localidade, por exemplo em um servidor LDAP e se voc apenas executasse um cat /etc/passwd, no veria todos os usurios do sistema, ento sempre utilize o getent passwd porque no importa onde os dados esto armazenados ele sempre seguir a ordem de busca do arquivo /etc/nsswitch.conf.
Pgina 24
Linux Essentials
4Linux www.4linux.com.br
# pwconv
Agora as senhas esto protegidas novamente!! Antigamente estes comandos eram utilizados para sistemas que no vinham com as senhas protegidas no /etc/shadow por padro, hoje em dia praticamente todas as distribuies trazem o arquivo como padro, ento utilizamos o comando para execuo de scripts para facilitar a captura de senhas, como por exemplo a migrao de um servidor de e-mail, onde queremos manter a senha antiga do usurio.
# ls / lib
No diretrio /lib esto as bibliotecas compartilhadas e mdulos do kernel. As bibliotecas so funes que podem ser utilizadas por vrios programas. Cada kernel tm seus prprios mdulos, que cam em: /lib/modules/<verso do kernel>/kernel Separados por tipos em subdiretrios. Para saber sua verso do kernel execute:
# uname -r
Linux Essentials
Pgina 25
4Linux www.4linux.com.br
# ls / media
Ponto de montagem para dispositivos removveis, tais como: hd cd dvd disquete pendrive cmera digital
# ls / mnt
Este diretrio utilizado para montagem temporria de sistemas de arquivos, tais como compartilhamentos de arquivos entre Windows e GNU/Linux, GNU/Linux e GNU/Linux, etc.
Pgina 26
Linux Essentials
4Linux www.4linux.com.br
# ls / opt
Normalmente, utilizado por programas proprietrios ou que no fazem parte ocialmente da distribuio.
# ls / sbin
O diretrio /sbin guarda os comandos utilizados para inicializar, reparar, restaurar e/ou recuperar o sistema. Isso quer dizer que esse diretrio tambm contm comandos essenciais, mas os mesmos so utilizados apenas pelo usurio administrador root. Entre os comandos esto:
halt
ifcong
init
iptables
Os usurios comuns no podem executar comandos do /sbin que alterem o sistema, apenas alguns para visualizao. EX: Visualizar IP congurado na placa eth0:
Linux Essentials
Pgina 27
4Linux www.4linux.com.br
$ /sbin/ifcong eth0 Alterar IP da placa de rede: $ /sbin/ifcong eth0 192.168.200.100 Obs.: necessrio passar o caminho completo do comando, pois o diretrio /sbin no consta na lista de diretrios de comandos do usurio comum que denida na varivel PATH, iremos estudar esta varivel durante o curso.
# ls / srv
Diretrio para dados de servios fornecidos pelo sistema, cuja aplicao de alcance geral, ou seja, os dados no so especcos de um usurio. Por exemplo: /srv/www (servidor web) /srv/ftp (servidor ftp)
# ls / tmp
Diretrio para armazenamento de arquivos temporrios. utilizado principalmente para guardar pequenas informaes que precisam estar em algum lugar at que a operao seja completada, como o caso de um download.
Pgina 28
Linux Essentials
4Linux www.4linux.com.br
Enquanto no for concludo, o arquivo ca registrado em /tmp, e, assim que nalizado, encaminhado para o local correto. No Debian os dados so perdidos a cada reboot, j no CentOS os dados so mantidos durante dez dias aps seu ltimo acesso. Para alterar no Debian:
1 2 3 4 5 6 7
# vim / etc / default / rcS TMPTIME = SULOGIN = no DELAYLOGIN = no UTC = yes VERBOSE = no FSCKFIX = no
Altere o valor da varivel TMPTIME para o nmero de dias que desejar manter os dados aps o seu ltimo acesso. Para alterar no CentOS:
1 2 3 4 5 6 7 8 9 10 11
# vim / etc / cron . daily / tmpwatch flags =- umc / usr / sbin / tmpwatch " $flags " -x / tmp /. X11 - unix -x / tmp /. XIM - unix \ -x / tmp /. font - unix -x / tmp /. ICE - unix -x / tmp /. Test - unix \ -X / tmp / hsperfdata_ * 1 d / tmp / usr / sbin / tmpwatch " $flags " 3 d / var / tmp for d in / var /{ cache / man , catman }/{ cat ? , X11R6 / cat ? , local / cat ?}; do if [ -d " $d " ]; then / usr / sbin / tmpwatch " $flags " -f 3 d " $d " fi done
Linux Essentials
Pgina 29
4Linux www.4linux.com.br
# ls / usr
O diretrio /usr contm programas que no so essenciais ao sistema e que seguem o padro GNU/Linux, como, por exemplo, navegadores, gerenciadores de janelas, etc.
Fique atento as diferenas entre: /bin - binrios essenciais ao sistema /usr/bin - binrios no essenciais ao sistema /usr/local/bin - scripts criados pelo usurio
# ls / var
O diretrio /var contm arquivos de dados variveis. Por padro, os programas que geram arquivos de registro para consulta, mais conhecidos como logs, cam armazenados nesse diretrio. Alm do log, os arquivos que esto aguardando em las, tambm cam localizados em /var/spool. Os principais arquivos que se utilizam do diretrio /var so: mensagens de e-mail arquivos a serem impressos
# ls / var / spool
Pgina 30
Linux Essentials
4Linux www.4linux.com.br
arquivos de log
# ls / var / log
# ls / proc
O /proc um diretrio virtual, mantido pelo kernel, onde encontramos a congurao atual do sistema, dados estatsticos, dispositivos j montados, interrupes, endereos e estados das portas fsicas, dados sobre as redes, etc. Utilize os paginadores more ou less para visualizar alguns arquivos:
Neste arquivo esto as informaes das IRQs dos dispositivos. Os endereos de IRQ so interrupes de hardware, canais que os dispositivos podem utilizar para chamar a ateno do processador. Na maioria das situaes, o sistema operacional simplesmente chaveia entre os aplicativos ativos, permitindo que ele utilize o processador durante um determinado espao de tempo e passe a bola para o seguinte. Como o processador trabalha a uma frequncia de clock muito alta, o chaveamento feito de forma muito rpida, dando a impresso de que todos realmente esto sendo executados ao mesmo tempo. Ao ser avisado atravs de qualquer um destes canais de IRQ, o processador imediatamente pra qualquer coisa que esteja fazendo e d ateno ao dispositivo, voltando
Linux Essentials
Pgina 31
4Linux www.4linux.com.br
ao trabalho logo depois. Cada endereo uma espcie de campainha, que pode ser tocada a qualquer momento. Se no fossem pelos endereos de IRQ, o processador no seria capaz de ler as teclas digitadas no teclado, nem os clicks do mouse, a sua conexo pararia toda vez que abrisse qualquer programa e assim por diante.
o arquivo que contm a lista do registro ISA direto dos canais em uso da acesso a memria (DMA). Os canais de DMA so utilizados apenas por dispositivos de legado (placas ISA, portas paralelas e drives de disquete) para transferir dados diretamente para a memria RAM, reduzindo desta forma a utilizao do processador.
Neste arquivo encontramos informaes sobre os endereos das portas I/O (Input/Output). Diferentemente dos endereos de IRQ, os endereos de I/O no so interrupes, mas sim endereos utilizados para a comunicao entre os dispositivos. Cada dispositivo precisa de um endereo prprio mas, ao contrrio dos endereos de IRQ, existe uma abundncia de endereos de I/O disponveis, de forma que eles raramente so um problema.
# ls / sys
Pgina 32
Linux Essentials
4Linux www.4linux.com.br
Pode-se dizer que esse diretrio um primo do diretrio /proc. Dentro do diretrio /sys podemos encontrar o quase o mesmo contedo do /proc, mas de uma forma bem mais organizada para ns administradores. Esse diretrio est presente desde a verso 2.6 do kernel, ele agrupa informaes sobre os dispositivos instalados, incluindo o tipo, fabricante, capacidade, endereos usados e assim por diante. Estas informaes so geradas automaticamente pelo kernel e permitem que os servios responsveis pela deteco de hardware faam seu trabalho, congurando impressoras e criando cones no desktop para acesso ao pendrive, por exemplo.
# ls / home
/ root
Os diretrios /root e /home podem estar disponveis no sistema, mas no precisam obrigatoriamente possuir este nome. Por exemplo, o diretrio /home poderia se chamar /casa, que no causaria nenhum impacto na estrutura do sistema. O /home contm os diretrios pessoais dos usurios cadastrados no sistema. O /root o diretrio pessoal do super usurio root. O root o administrador do sistema, e pode alterar as conguraes do sistema, congurar interfaces de rede, manipular usurios e grupos, alterar a prioridade dos processos, entre outras. Dica: Utilize uma conta de usurio normal em vez da conta root para operar seu sistema.
Uma razo para evitar usar privilgios root regularmente, a facilidade de se cometer danos irreparveis; alm do que, voc pode ser enganado e rodar um
Linux Essentials
Pgina 33
4Linux www.4linux.com.br
programa Cavalo de Tria (programa que obtm poderes do super usurio) comprometendo a segurana do seu sistema sem que voc saiba.
nd [diretrio] [opes/expresso]
-name [expresso] : Procura pela [expresso] denida nos nomes de arquivos e diretrios processados.
-maxdepth [num] : Limita a recursividade de busca na rvore de diretrios. Por exemplo, limitando a 1, a busca ser feita apenas no diretrio especicado e no ir incluir nenhum subdiretrio.
Pgina 34
Linux Essentials
4Linux www.4linux.com.br
-amin [num] : Procura por arquivos que foram acessados [num] minutos atrs. Caso seja antecedido por -, procura por arquivos que foram acessados entre [num] minutos atrs e o momento atual.
# find ~ - amin -5
-atime [num] : Procura por arquivos que foram acessados [num] dias atrs. Caso seja antecedido por -, procura por arquivos que foram acessados entre [num] dias atrs e a data atual.
# find ~ - atime -1
-uid [num] : Procura por arquivos que pertenam ao usurio com o uid 1000 [num].
# find / - uid 1
-user [nome] : Procura por arquivos que pertenam ao usurio aluno [nome].
Linux Essentials
Pgina 35
4Linux www.4linux.com.br
-perm [modo] : Procura por arquivos que possuem os modos de permisso [modo]. Os [modo] de permisso podem ser numrico (octal) ou literal.
-size [num] : Procura por arquivos que tenham o tamanho [num]. O tamanho especicado em bytes. Voc pode usar os suxos k, M ou G para representar o tamanho em Quilobytes, Megabytes ou Gigabytes, respectivamente. O valor de [num] Pode ser antecedido de + ou - para especicar um arquivo maior ou menor que [num].
# find / - size +1 M
-type [tipo] : Procura por arquivos do [tipo] especicado. Os seguintes tipos so aceitos: b - bloco; c - caractere; d - diretrio; p - pipe; f - arquivo regular; l - link simblico; s - socket.
Outros exemplos:
Pgina 36
Linux Essentials
4Linux www.4linux.com.br
Procura no diretrio raiz e nos subdiretrios um arquivo/diretrio chamado grep ignorando caso sensitivo:
-iname - ignora case sensitive; Procura no diretrio raiz e nos subdiretrios at o 2 nvel, um arquivo/diretrio chamado grep:
Procura no diretrio atual e nos subdiretrios um arquivo com tamanho maior que 1000 kbytes (1Mbyte).:
# find . - size +1
Procura no diretrio raiz e nos subdiretrios um arquivo que foi modicado h 10 minutos atrs ou menos:
# find / - mmin -1
Procura diretrios a partir do diretrio /etc e tambm executa um comando no resultado da busca com a opo exec, no exemplo o comando ls -ld:
- exec ls - ld {} \;
Xargs
Linux Essentials
Pgina 37
4Linux www.4linux.com.br
Outra forma de procurar por arquivos e/ou diretrios e executar um comando atravs do comando xargs que obtm como a entrada a sada ok do comando antes do pipe e envia como stdin do prximo comando, no caso o ls -ld:
| xargs ls - ld
1 2 3
1 2 3 4
# ls / > teste_xargs . txt # cat teste_xargs . txt # cat teste_xargs . txt | xargs -n 2 # xargs -n 3 < teste_xargs . txt
Voc percebeu que no primeiro comando ele listou o diretrio, jogando na tela um nome de cada vez. O segundo comando far o mesmo s que com dois nomes na mesma linha, e o terceiro com 3 nomes. Tempo de execuo de um programa: time O comando time permite medir o tempo de execuo de um programa. Sua sintaxe : time [programa]. Exemplo:
Pgina 38
Linux Essentials
4Linux www.4linux.com.br
4.4.2 Locate
O comando locate um comando rpido de busca de arquivos, porm no usa busca recursiva na sua rvore de diretrios. Ele utiliza uma base de dados que criada pelo comando updatedb, para que a busca seja mais rpida. Por padro, a atualizao da base de dados agendado no cron do sistema para ser executada diariamente. Para utiliz-lo, primeiro necessrio criar a sua base de dados usando a seguinte sintaxe:
# updatedb
Quando esse comando executado pela primeira vez costuma demorar um pouco. Isso deve-se a primeira varredura do disco para a criao da primeira base de dados. Para o comando locate, usamos a seguinte sintaxe:
# locate howto
1 2 3
/ usr / share / doc / python2 .4 - xml / howto . cls / usr / share / doc / python2 .4 - xml / xml - howto . tex . gz / usr / share / doc / python2 .4 - xml / xml - howto . txt . gz / usr / share / vim / vim64 / doc / howto . txt
Linux Essentials
Pgina 39
455
Linux Essentials
www.4linux.com.br
Contedo
Comandos Avanados I 5.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 Trabalhando com entrada e sada de dados . . . . . . . . . Alterando os redirecionamentos . . . . . . . . . . . . . . . . O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . O direcionador < . . . . . . . . . . . . . . . . . . . . . . . . . O direcionador 2> . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 5 8 8 9
5.1.10 O direcionador | . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.1.11 O direcionador tee . . . . . . . . . . . . . . . . . . . . . . . . 14 5.1.12 O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1.13 Comando dd . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.1.14 Comando wc . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.15 Comando split . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1.16 Comando le . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1.17 Comando who . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1.18 Comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1.19 Comando ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1.20 Inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.1.21 Comando stat . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.1.22 Link simblico . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.1.23 Hard links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.1.24 Comando nl . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4Linux www.4linux.com.br
Contedo
Linux Essentials
Pgina 3
Comandos Avanados I
No mundo GNU/Linux, a maioria das operaes so realizadas por meio de comandos escritos. Em geral, eles permitem um maior controle e exibilidade de operaes, alm de poderem ser includos em scripts. Neste captulo iremos aprender alguns comandos avanados.
No linux, voc pode ler dados de um arquivo ou terminal ou escrever dados para um arquivo ou terminal. O linux tem trs tipos de uxo de dados: entrada(INPUT), sada(OUTPUT) e a ltima para imprimir diagnsticos ou mensagens de erro. Por padro, a entrada de dados e comandos no Shell feita pelo teclado, a sada destes retornada na tela. Eventuais erros so exibidos na tela tambm. Porm voc pode alterar a sada padro que a tela e envi-la para um arquivo ou outra localizao. Os termos geralmente usados so: 0 - Entrada de dados, representada por stdin (Standard Input); 1 - Sada de dados, representada por stdout (Standard Output); 2 - Sada de erros, representada por stderr (Standard Error);
4Linux www.4linux.com.br
> (maior): Direciona a sada do comando para um arquivo, substituindo o seu contedo, caso o arquivo j exista;
(maior-maior): Direciona a sada do comando para um arquivo, adicionando o texto ao nal do arquivo, caso ele j exista;
2> (dois-maior): Direciona as sadas de erro geradas pelo programa para um arquivo, substituindo seu contedo, caso o arquivo j exista;
2 (dois-maior-maior): Direciona as sadas de erro geradas pelo programa para um arquivo, adicionando o texto ao nal do arquivo, caso ele j exista;
2>&1 (dois-maior-e-um): Direciona as sadas de erro para a sada do comando, no caso para STDOUT;
&> (e-maior): Direciona todas as sadas (normal e de erro) para um arquivo, substituindo seu contedo, caso ele j exista; & (e-maior-maior): Direciona todas as sadas (normal e de erro) para um arquivo, adicionando o texto ao nal do arquivo, caso ele j exista;
| (barra vertical ou pipe): Utiliza a sada do primeiro comando como argumento do segundo comando; tee: mostra sada na tela e redireciona para um arquivo ou outra localizao ao mesmo tempo;
: marca o m de um bloco.
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
O direcionador >
O direcionador > direciona a sada padro de um comando para um arquivo. Caso o arquivo exista, o seu contedo substitudo. Vejamos, ento, uma sada do comando ls:
1 2
# ls / boot tmp lost + found lib bin media dev lib64 mnt opt proc repo root selinux srv var sys usr cdrom home sbin etc
Para gravar essa lista em um arquivo chamado raiz, utilizamos o direcionador, da seguinte forma:
# ls / > raiz
No aparece nada na tela porque o comando foi executado sem erros e sua sada redirecionada para o arquivo raiz, conra:
# cat raiz
O contedo do arquivo raiz o mesmo da sada do comando ls. Cuidado ao utilizar o direcionador para o mesmo arquivo, pois os dados sero perdidos, exemplo: Quero enviar a sada do arquivo raiz para raiz: 1 - Primeiro visualize o arquivo para ver que h dados no arquivo raiz:
# cat raiz
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
Ao realizar o comando acima, a primeira interpretao do bash executar o comando: > raiz, ou seja, se no existe o arquivo, ele ser criado, e se j existe sobrescrito. No caso ele sobrescreve o arquivo raiz, deixando-o em branco, e quando o comando cat raiz executado, no h sada, pois o arquivo est zerado, no redirecionando nada. Para evitar este problema execute o comando:
# set -o noclobber
# set +o noclobber
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
5.1.3 O direcionador
O direcionador direciona a sada padro de um comando para um arquivo. Caso o arquivo exista, a sada adicionada ao nal do arquivo.
# ls / >> hoje
Verique que sem o redirecionador < o comando no executado com sucesso, agora faa corretamente:
Voc tambm pode utilizar o comando tr para deletar caracteres, vamos deletar as vogais do arquivo:
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
Para que as mudanas sejam efetuadas de fato necessrio encaminhar a sada para outro arquivo.
1 2 3
# ls nao_existe > ls_naoexiste ls : imposs vel acessar nao_existe : Arquivo ou diret rio n o encontrado
Verique que mesmo no redirecionando a sada com erro o arquivo ls_naoexiste criado:
# cat ls_naoexiste
Agora sim, nenhuma mensagem de erro foi exibida na tela, porque ela foi enviada para o arquivo ls_naoexiste.err, vamos vericar o contedo dele:
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
1 2
# cat ls_naoexiste . err ls : imposs vel acessar nao_existe : Arquivo ou diret rio n o encontrado
5.1.6 O direcionador 2
Quando utilizamos o direcionador 2 ele redireciona apenas as mensagens de erro, caso o arquivo no exista ser criado e caso j exista ser adicionada a sada ao nal do arquivo.
1 2 3
# cat
ls_naoexiste . err
ls : imposs vel acessar nao_existe : Arquivo ou diret rio n o encontrado cat : / nada : Arquivo ou diret rio n o encontrado
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
# cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler um diretrio com o comando cat. Vamos enviar a sada deste comando para arquivos diferentes:
1 2
Mas, e se for necessrio gravar todas as mensagens em um arquivo apenas? Podemos redirecionar o stderr para o stdout:
Aqui redirecionamos o stdout para o arquivo msg_total e redirecionamos o stderr para stdout, ou seja, tambm para o arquivo msg_total. Visualize seu contedo:
# cat
msg_total
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
Podemos usar os direcionadores > e 2> em conjunto, para gerar um arquivo com a sada padro e outro com a sada de erros, dessa forma:
# cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler um diretrio com o comando cat. Vamos enviar a sada deste comando para arquivos diferentes:
1 2
Mas, e se for necessrio gravar todas as mensagens em um arquivo apenas? Para isso existe o direcionador &>, que direciona tanto as mensagens padro quanto as mensagens de erro para um nico arquivo, caso o arquivo no exista ser criado e caso j exista ser sobrescrito. Repetindo o teste anterior:
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
No aparece nenhuma mensagem no terminal, pois tanto as mensagens ok quanto as mensagens com erro foram redirecionadas para o arquivo ls_out, visualize seu contedo:
# cat ls_out
Assim como o redirecionador &> ele redireciona tanto a sada de stdout quanto a sada de stderr para um nico arquivo, a diferena que, caso o arquivo no exista ele ser criado e caso j exista ser adicionado a sada com comando ao nal do arquivo. Visualize o arquivo ls_out:
# cat ls_out
No aparece nenhuma mensagem no terminal, pois tanto as mensagens ok quanto as mensagens com erro foram redirecionadas para o arquivo ls_out, visualize seu contedo:
# cat ls_out
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
5.1.10 O direcionador |
Conhecido como pipe, ele envia o stdout de um comando para o stdin do prximo comando para dar continuidade ao processamento, os dados enviados sero processados pelo prximo comando trazendo assim um resultado esperado. Vamos usar novamente o comando tr para exemplicar, mas desta vez utilizando o pipe: Primeiro visualize o contedo do arquivo /etc/passwd:
A sada foi o stdout do comando. Vamos agora redirecionar este stdout para o comando tr:
Quando usado junto com o pipe |, o tee permite que a sada padro do comando seja exibida na tela e enviada para um arquivo ao mesmo tempo. Veja a sada de um comando e envie-a para um arquivo qualquer, caso o arquivo no exista, ser criado e caso j exista ser sobrescrito, caso queira adicionar um arquivo j existente use tee -a :
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
A sada aparece na tela e tambm foi direcionada para o arquivo arquivo.tee, visualizeo:
5.1.12 O direcionador
Temos ainda o direcionador , utilizado para marcar o m de exibio de um bloco. Um dos usos mais freqentes desse direcionador em conjunto com o comando cat. Voc pode editar um novo arquivo com o comando cat ou at mesmo adicionar contedo nele, veja:
Onde: EOF - indica que a edio do arquivo terminar quando em uma linha contiver apenas a sequncia EOF. > arquivo_novo - direciona o que for digitado no arquivo para arquivo_novo. Ex:
1 2 3 4 5 6
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
# cat arquivo_novo
5.1.13 Comando dd
O comando dd dos sistemas baseados em Linux e Unix, um programa para copiar e converter arquivos de um local para outro, servindo at para clonar dispositivos ou reas de discos xos ou removveis como CD(s), DVD(s), disquetes, HD(s), dispositivos USB entre outros. Sintaxe:
Onde: If - Input File = arquivo de origem of - Output File = arquivo de destino bs - Block Size = tamanho do bloco count - nmero de blocos Em sistemas operacionais do tipo Unix, /dev/zero um arquivo especial que fornece quantos caracteres nulos (o NULL da tabela ASCII, 0x00; e no o caractere "dgito
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
zero", "0", 0x30) forem lidos dele. O uxo de caracteres nulos gerado por este dispositivo pode, por exemplo, ser utilizado para sobreescrever informaes ou para gerar um arquivo limpo de certo tamanho.
5.1.14 Comando wc
Grande parte dos arquivos de congurao e de dados usa uma linha por registro. A contagem destas linhas pode nos fornecer informaes muito interessantes. Por exemplo, a sada abaixo:
# wc / etc / passwd
Indica que o arquivo contm X linhas, Y blocos (palavras) e Z caracteres. Caso seja necessrio apenas o nmero de linhas, o comando wc pode ser usado com o parmetro -l, como abaixo:
# wc -l / etc / passwd
# wc -w / etc / passwd
# wc -c / etc / passwd
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
# split -b 3
KB teste . txt
O tamanho pode ter os suxos: b 512, KB 1000, K 1024, MB 1000*1000, M 1024*1024 GB 1000*1000*1000, G 1024*1024*1024 Verique que foram gerados vrios arquivos com o prexo x, veja tambm o tamanho deles:
# ls -lh xx *
Podemos dividir o arquivo por nmero de linhas e mudar seu prexo tambm:
# split -l 1
Verique que foram gerados vrios arquivos com o prexo pref, veja tambm o nmero de linhas de cada um:
# wc -l pref *
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
# cat
Visualize o arquivo:
5.1.16 Comando le
Extenses de arquivos tm apenas a funo de nos auxiliar a nomear os arquivos, a identic-los e organiz-los facilmente. No a extenso que determina o tipo do arquivo, mas sim o seu contedo. Por exemplo, se renomearmos um arquivo de imagem chamado 4Linux.jpg para 4Linux.html, ele continuar sendo um arquivo de imagem JPEG. O comando le determina o tipo do arquivo analisando o seu contedo. O exemplo abaixo mostra o uso deste comando:
1 2 3 4 5
# file / # file / bin / cat # file / dev / sda1 # file / etc / passwd # file / usr / sbin / adduser
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
1 2 3
Onde: fabiano - usurio logado tty7 - terminal em que o usurio est logado 2011-08-11 23:01 - hora e data de login (:0) - Display
5.1.18 Comando w
Mostra tempo que o sistema est ligado, mdia de carga do sistema, usurios logados.
1 2 3 4 5
# w 21:43:12 up 22:42 , USER fabiano fabiano TTY tty7 pts / : : . 2 users , FROM load average : LOGIN@ Thu23 21:32 ,55 , IDLE 22:41 m . s ,45 , JCPU 6:27 .22 s ,37 PCPU WHAT .53 s . 2s w
gnome - session
5.1.19 Comando ln
O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux, os hard links e os links simblicos. Os links simblicos tm uma funo parecida com os atalhos do Windows: eles apontam para um arquivo, mas se o arquivo movido para outro diretrio, o link ca quebrado. Os hard links por sua vez so
Pgina 20
Linux Essentials
4Linux www.4linux.com.br
semelhantes aos atalhos do OS/2 da IBM, eles so mais intimamente ligados ao arquivo e so alterados junto com ele. Se o arquivo muda de lugar, o link automaticamente atualizado. Isto possvel porque nos sistemas de arquivos usados pelo Linux cada arquivo possui um cdigo de identicao (chamado de inode), que nunca muda. O sistema sabe que o arquivo renomeado o mesmo do atalho simplesmente procurando-o pelo inode ao invs do nome.
5.1.20 Inodes
Cada diretrio e arquivo do Linux identicado para o kernel como um nmero de n i (inode). Um inode , na realidade, uma estrutura de dados que possui informaes sobre um determinado arquivo ou diretrio como, por exemplo, dono, grupo, tipo e permisso de acesso. O inode exclusivo somente para o dispositivo (partio) dentro do qual ele est contido. Portanto, para identicar unicamente um arquivo, o kernel deve ter o nmero de dispositivo e o inode do arquivo. Um arquivo possui um nico inode, no importa por quantos nomes este arquivo identicado no sistema. Logo, o conjunto de inodes que indica o nmero de arquivos/diretrios que o sistema possui.
Linux Essentials
Pgina 21
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8
# stat / etc / passwd 1 2 3 4 5 6 7 File : / etc / passwd Size : 3 2 Blocks : 8 IO Block : 4 96 Uid : ( / root ) .236496119 - 3 .325887191 - 3 arquivo comum Gid : ( / root ) Device : 8 1 h /2 49 d Inode : 4995196 Links : 1
Onde:
Pgina 22
Linux Essentials
4Linux www.4linux.com.br
1 2
1 2
Linux Essentials
Pgina 23
4Linux www.4linux.com.br
1 2 3
# ls -1 il arq * 11927715 lrwxrwxrwx 1 root root 7 2 11 - 8 -11 18: 4 arq . simb lico -> arquivo 11927685 -rw -r - -r - - 1 root root 2 11 - 8 -11 17:52 arquivo
Onde: -1 - mostra um arquivo por linha -i - mostra nmero do inode do arquivo/diretrio -l modo estendido Verique que no possvel determinar qual a permisso olhando o arq.simblico. Crie um diretrio:
# mkdir diretorio
1 2
Onde: -d - mostra informaes do diretrio -i - mostra nmero de inode do arquivo/diretrio Criando o link simblico:
Pgina 24
Linux Essentials
4Linux www.4linux.com.br
1 2 3
# ls
11935762 drwxr - xr - x 2 root root 4 96 2 11 - 8 -11 18:12 diret rio 11927717 lrwxrwxrwx 1 root root -> diret rio /
Onde: -1 - mostra um arquivo/diretorio por linha -d - mostra informaes do diretorio -i mostra nmero do inode do arquivo/diretrio -l - modo estendido
No possvel criar Hark links de arquivos e/ou diretrios que estejam em parties diferentes, pois o range de numeros de inodes mudam de uma partio para outra, ou seja, os Hark links no tero o mesmo nmero de inode, e tambm no possvel criar Hard links de diretrios da mesma partio. Criando o Hard link:
# ln
Linux Essentials
Pgina 25
4Linux www.4linux.com.br
# ln
# ls -1 -i arq *
5.1.24 Comando nl
Existe um outro comando que tambm visualiza arquivo e numera as linhas, este Comando o nl:
1 2 3 4
Pgina 26
Linux Essentials
4Linux www.4linux.com.br
Para diversas aes como eliminao de itens repetidos e rpida visualizao de nomes interessante que possamos classicar um arquivo texto ou a sada de um comando. Na linha de comando, os arquivos textos podem ser classicados usando o comando sort. Vamos criar um arquivo de exemplo:
1 2 3 4 5 6 7 8 9
# vim bagun a Gabriela Barbara Bruno Victor Alexandre Bruno Alfredo Bruno
# cat bagun a
# sort bagun a
O comando sort pode ser modicado usando os parmetros: -f - no considera se as letras esto em caixa alta ou baixa;
Linux Essentials
Pgina 27
4Linux www.4linux.com.br
# man sort
Pgina 28
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
Comandos Avanados II 6.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 6.1.7 Filtragem : grep e egrep e fgrep . . . . . . . . . . . . . . . . Comando grep . . . . . . . . . . . . . . . . . . . . . . . . . . Comando egrep . . . . . . . . . . . . . . . . . . . . . . . . . Comando fgrep . . . . . . . . . . . . . . . . . . . . . . . . . . Comando sed . . . . . . . . . . . . . . . . . . . . . . . . . . Comandos cut e awk . . . . . . . . . . . . . . . . . . . . . . Juntando dois arquivos em um: join e paste . . . . . . . . . . 2 3 3 3 5 6 6 8 9 10
Administrao da Shell 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7
Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 O que uma shell? . . . . . . . . . . . . . . . . . . . . . . . 11 Variveis em Shell . . . . . . . . . . . . . . . . . . . . . . . . 12 Variveis Locais e de Ambiente (globais) . . . . . . . . . . . 14 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Arquivos de Login . . . . . . . . . . . . . . . . . . . . . . . . 20 Arquivos /etc/issue e /etc/motd . . . . . . . . . . . . . . . . . 21 Tipos de shell . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Comandos Avanados II
6.1 Introduo terica
No mundo GNU/Linux, a maioria das operaes so realizadas por meio de comandos escritos. Em geral, eles permitem um maior controle e exibilidade de operaes, alm de poderem ser includos em scripts. Neste captulo iremos aprender alguns comandos avanados.
1 2
Outra situao possvel procurar pelas entradas que no possuem a palavra procurada. Para isso, usamos o parmetro -v (inVerter), que inverte a ltragem do comando grep:
4Linux www.4linux.com.br
1 2 3 4 5
# grep -v bash / etc / passwd daemon :x :1:1: daemon :/ usr / sbin :/ bin / sh bin :x :2:2: bin :/ bin :/ bin / sh sys :x :3:3: sys :/ dev :/ bin / sh sync :x :4:65534: sync :/ bin :/ bin / sync
-v - Inverte a busca, encontra apenas as linhas onde o padro no existir. Traz como resultado todas as linhas do arquivo /etc/passwd, exceto as linhas que continham a palavra bash. Para buscar a palavra Debian no arquivo /etc/passwd utilize a opo -i para ignorar maisculas e minsculas:
1 2
# grep -in debian / etc / passwd 6 : Debian - exim : x :123:132::/ var / spool / exim4 :/ bin / false
-i - Ignora diferena entre maisculas e minsculas; -n - Mostra o nmero de cada linha encontrada; Caso queira ver alm da linha que casar com a busca as duas prximas linhas e uma linha anterior, digite:
-A [n] - After = Mostra n linhas depois; -B [n] - Before = Mostra n linhas antes; O grep pode ser combinado com a sada de outros comandos com o uso do | (pipe).
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
A seguir, o grep aplicado para ltrar quem est logado no primeiro terminal (tty1):
1 2
Para uma busca mais avanada utilize o egrep. Por exemplo quero buscar por uma linha que contenha a palavra root ou aluno:
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
-e - Executa a expresso e comando a seguir. incio de linha # - string de busca A letra d ao lado da expresso regular um comando sed, que indica a excluso de linhas contendo o respectivo padro. Para substituir uma string, utilize a opo -s: Substitua todos os caracteres "#"por "@"em /etc/fstab:
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
Observe que voc tem que escapar o caracter /, pois este o separador dos campos. Ou mais fcil, utilize outro separador de campos:
Observe ainda que em nenhum dos casos foi efetuada a troca de todas as instncias da linha, somente a primeira que foi encontrada em cada linha, para que se possa resolver este problema utilize a opo g de global:
Para efetuar a troca em uma linha especca, aponte o nmero da linha, por exemplo fazer a troca dos caracteres / por @ na primeira linha:
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
O comando awk um primo do cut, mas possui mais recursos e opes, por ser uma linguagem de programao. H situaes nas quais o cut no conseguir resolver o problema, para elas use awk.
# awk -F: { print $1 ," " , $4 } / etc / passwd > / root / gid
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
$1 - coluna1 $4 - coluna4 - delimitador da sada do comando O awk suporta mais opes que o cut, por exemplo executar novamente a busca anterior, mas desta vez trazer apenas os usurios que tenham uid inferior a 5:
# awk
-F :
( $3 <= 5)
$1 , $3 }
/ etc / passwd
Onde ($3 <= 5) equivale a: $3 - coluna3 <= - menor ou igual == - igual >= - maior ou igual 5 - valor de comparao
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
O comando join (unir), concatena registros de dois arquivos de texto baseado em ndices comuns entre os registros. No caso dos arquivos vistos o ndice em comum so os nomes dos usurios, vamos usar o join para unir os dois arquivos:
Comando paste
O comando paste, junta os arquivos na sada padro. Diferente do join, ele joga os dois arquivos lado-a-lado.:
Pgina 10
Linux Essentials
Administrao da Shell
O principal meio de interao do usurio com um sistema GNU/Linux o terminal de comandos, tambm conhecida como shell. Neste captulo iremos aprender como personaliz-la e sua utilizao bsica.
A shell uma camada de acesso ao sistema bsico, o sistema operacional do computador, que pode ser acessada tanto pelo modo grco, quanto em modo texto. A shell pode ser personalizada para atender as necessidade do usurio. Podese denir um idioma padro, personalizar e automatizar processos. Nos tpicos a seguir, veremos como fazer essa personalizao.
11
4Linux www.4linux.com.br
# ANSWER =42
Esse tipo de varivel que acabamos de denir conhecida como escalar e pode receber valores numricos ou caracteres. Para acessarmos o endereo de memria atribudo varivel ANSWER, em shell, devemos utilizar o operador $ (cifro) antes do nome da varivel, ou seja, se desejarmos mostrar na tela o valor da varivel ANSWER devemos imprimir o contedo armazenado no endereo de memria $ANSWER:
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
# echo $ANSWER
O comando echo usado para imprimir algo na tela ou direcionar para um arquivo. Isso bastante til para automao. Na linha de comando o echo til para inspecionar variveis de ambiente, que so parmetros guardados em memria e que denem o ambiente em uso. Para imprimir algo na tela:
# echo algo
# comando = ls
# echo $comando
Ou
# echo $comando
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
# echo $comando
Ou
# echo $( $comando )
1 2
# LOCAL =" sem export na frente " # export GLOBAL =" com export na frente "
Uma vez denidas as variveis, podemos visualiz-las utilizando os comandos set e env ou printenv para variveis locais e de ambiente, respectivamente. Com isso, se tivssemos denido as variveis LOCAL e GLOBAL e executssemos o comando set, veramos as denies de ambas. Mas, se executssemos o comando env, veramos apenas a denio da varivel GLOBAL.
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Visualizando:
1 2 3 4 5 6 7 8 9 10
# magica =" abracadabra " # echo $magica # set # clear # env Abra um terminal filho : # bash No h nada na vari vel , pois ela n o foi exportada : # echo $magica # exit
Exporte a varivel:
1 2 3 4
# bash
# echo $magica
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
1 2
Para car permanente para todos e funcionar em qualquer terminal deve-se colocar em um dos arquivos:
1 2
Para car permanente para o usurio e funcionar em qualquer terminal deve-se colocar em um dos arquivos:
1 2 3 4
Variveis de ambiente (as globais) so muito s pois denem o comportamento da shell e de muitos outros programas. Por exemplo, a forma com que o prompt apresentado ao usurio denido pela varivel global PS1.
1 2
Algumas variveis importantes: EDITOR -> dene o editor que abrir um programa que chama o editor padro. No debian, conseguimos fazer a alterao do editor atravs do comando update-alternatives cong editor, que veremos ainda no curso.
1 2
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
3 4 5
# TMOUT =3
# echo $HOME
1 2
PATH -> dene quais diretrios pesquisar e a ordem na qual eles so pesquisados para encontrar um determinado comando:
1 2
$ ifconfig
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
No conseguimos, isto ocorre ou porque no temos permisso para execut-lo, ou porque o caminho do comando no est na varivel PATH do usurio. Para saber qual o caminho do binrio ifcong, digite:
$ whereis ifconfig
No utilizamos o which que traz apenas o caminho do binrio do comando porque ele no iria encontrar o comando ifcong em nosso PATH j o whereis traz da localizao original. Repare que o comando ifcong tem o seu binrio localizado em /sbin/ifcong que no est no nosso PATH, quer dizer, no estava porque agora vamos adicionlo:
$ ifconfig
Isso no signica que voc tem a permisso de root para executar os comandos de root. Tente derrubar sua placa de rede:
$ ifconfig eth
down
Saber o contedo de algumas variveis muito importante: HISTSIZE HOME PS1 PATH EDITOR
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
6.2.4 Alias
Um recurso do shell que facilita muito a vida do usurio a denio de aliases. Imagine que um usurio gosta de utilizar o comando ls sempre com os parmetros - -color -h -l. O que seria dele se toda vez que fosse execut-lo tivesse que escrever o comando com todos os parmetros?! Para resolver esse tipo de situao, basta criar um alias para o comando ls que dena que cada vez que o usurio digitar um simples ls ele ser sucedido pelas opes denidas, e o que ser executado ser o comando ls - -color -h -l. Para criarmos esse alias, basta usarmos o comando abaixo:
# alias ls = ls -- color -h -l
Dessa forma ca fcil criar seu prprio comando. Por exemplo, um que limpe a tela:
# alias c = clear
Tanto os aliases quanto as denies de variveis podem ser efetuadas em linha de comando ou, para maior comodidade, utilizando arquivos apropriados para isso. Limpe a tela:
# c
# alias
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
# unalias c
# c
Quando uma bash executada como uma shell de login interativo ela l e executa o arquivo /etc/prole, se ele existir. Esse arquivo deve conter as conguraes gerais que se aplicam a todos os usurios do sistema. Aps ler o /etc/prole, ela ir procurar por um dos arquivos:
1 2 3
Esses arquivos esto na home do usurio, executando o primeiro que estiver disponvel e tiver permisso de leitura. Alm desses, executa tambm o arquivo /.bashrc. Perceba que esses so arquivos ocultos, pois esto precedidos por um (.) Quando a bash estiver sendo terminada (usurio fazendo logout), o arquivo /.bash_logout ser lido e executado, caso ele exista. Atravs deste arquivo, podemos automatizar procedimentos como por exemplo limpar a tela ao se deslogar do sistema. Quando uma bash chamada mas no uma shell de login, o arquivo chamado ser apenas o /.bashrc.
Pgina 20
Linux Essentials
4Linux www.4linux.com.br
Sendo assim, para criar aliases ou denir variveis ou funes que sejam comuns a todos os usurios, devemos inclu-las no arquivo /etc/prole. Caso o usurio no queira utilizar o padro do sistema, alter-lo ou adicionar conguraes pessoais, ele deve utilizar os arquivos /.bash_prole, /.bash_login, /.prole ou /.bashrc para isso. Para colocar alias ou variveis permanentes para seu usurio:
1 2 3
1 2 3 4 5 6 7 8
# cat / etc / motd Linux aula 2.6.32 -5 -486 # 1 Wed May 9 22:23:4 UTC 2 11 i686
The programs included with the Debian GNU / Linux system are free software ; the exact distribution terms for each program are described in the individual files in / usr / share / doc /*/ copyright .
Linux Essentials
Pgina 21
4Linux www.4linux.com.br
9 10
Debian GNU / Linux comes with ABSOLUTELY NO WARRANTY , to the extent permitted by applicable law .
1 2
Os caracteres "(n)"e "(l)"no arquivo "/etc/issue"representam respectivamente o nome do servidor e do terminal em que o usurio est logado.
echo $SHELL
A opo $(which rbash) substituda pelo resultado do comando which rbash. Se logue como aluno e tente trocar de diretrio.
Pgina 22
Linux Essentials
4Linux www.4linux.com.br
# su - aluno
A opo which bash substituda pelo seu resultado /bin/bash. No prximo login o aluno estar no shell bash novamente.
Linux Essentials
Pgina 23
455
Linux Essentials
www.4linux.com.br
Contedo
Editores de Texto 7.1 7.2 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editores de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 7.2.2 Nano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcionalidades do Vim . . . . . . . . . . . . . . . . . . . . . . 2 3 4 4 6 8
Editores de Texto
7.1 Introduo terica
A grande maioria das conguraes em sistemas GNU/Linux so feitas editando diretamente arquivos de congurao em modo texto. Para facilitar essa tarefa, preciso conhecer alguns editores de texto, dentre eles: vi, vim, nano, pico, mcedit, ed, e emacs dentre outros: vi - Sem dvida nenhuma o editor mais famoso de todos os tempos, presente em quase todas as distribuies; vim - Uma verso melhorada do vi, Vim signica VImproved e traz diversas facilidades sem perder os conceitos originais do vi; nano - Editor padro de muitas distribuies como Debian , CentOS esse editor diferente do vim e muito fcil de ser usado; pico - Muito parecido com o nano, este est presente nas distribuies Slackware e Gentoo; mcedit - Editor muito fcil e completo. Seu grande diferencial a possibilidade da utilizao do mouse, mesmo no ambiente textual; ed - O editor de textos mais simples no mundo Unix, o ed um editor de linha para terminais aonde no possvel abrir uma janela de edio;
4Linux www.4linux.com.br
emacs - Poderoso editor de "tudo", o emacs tambm muito conhecido no mundo GNU/LINUX por fazer muitas coisas diferenciadas de um editor de texto; Neste captulo vamos abordar apenas a utilizao dos editores nano e vim. Isso porque eles so os mais usados.
# nano [ arquivo ]
Ao ser chamado, este editor ir apresentar um tela em branco com um rodap semelhante a esse: Vamos analisar essas funes:
Get Help - Apresenta uma tela de ajuda para os mais diversos comandos e G uma breve explicao sobre o editor;
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
Exit - Sai do editor, lembrando que se o arquivo no estiver salvo, essa opo X ir te pedir para salv-lo; WriteOut - Salva ou sobrescreve um arquivo; Justify - Justica o arquivo inteiro; J Read File - Importa um arquivo; R Where Is - Procura por uma ocorrncia dentro do arquivo; W Prev Page - Move o cursor para pagina anterior; Y Next Page - Move o cursor para prxima pagina; V Cut Text - Corta a linha em que o cursor est posicionado; K UnCut Text - Cola a linha recortada na posio atual do cursor Cur Pos - Mostra informaes sobre a posio do cursor; C To Spell - Ativa a correo ortogrca. necessrio ter o comando spell T instalado para que isso funcione; Como podemos ver, usar o editor de textos nano, no uma das tarefas mais difceis no GNU/Linux. Vamos conhecer, agora, o editor Vim.
Para denirmos qual ser o editor padro no Debian podemos usar o aplicativo update-alternatives.
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
7.2.2 Vim
O Vi o editor bsico do GNU/Linux, e est disponvel em grande parte das distribuies do GNU/Linux, mesmo naquelas que vm em apenas um disquete. Hoje em dia, as distribuies usam uma verso mais completa e com mais recursos do que o Vi que o Vim = VI iMproved. Abaixo podemos ver uma tela do editor de textos vim: Ao invocar o vim, este entra direto para o modo visualizao. Para modicar o arquivo, usam-se os modos de insero, deleo e de substituio. Para voltar ao modo de visualizao, sempre se usa a tecla ESC.
A grande maioria dos servios em Unix so congurados atravs de arquivos de congurao, o vim no seria diferente. Seu arquivo de congurao ca localizado em /etc/vim/vimrc. Para congurar o seu editor de textos, basta descomentar as funcionalidades desejadas, e copiar o arquivo para o seu home como .vimrc.
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
# vim texto # Para inserir digite : i i => Entra no modo de inser o antes do cursor # Para sair do modo de inser o digite : ESC # Para inserir uma linha abaixo do cursor digite : o o => Insere uma linha abaixo do cursor e entra no modo de inser o # Para sair do modo de inser o digite : ESC # Para inserir uma linha acima do cursor digite : O
O => Insere uma linha acima do cursor e entra no modo de inser o # Para sair do modo de inser o digite : ESC # Para desfazer a ltima altera o digite : # Para refazer digite : CTRL + R : set number :2 y p u
# Para colar na linha abaixo do cursor digite : # Para ir para a primeira linha digite : gg
# Para colar na linha acima do cursor , "3 vezes " digite : 3 P # Para salvar as altera es digite : : w # Para sair do arquivo sem salvar digite : : q da sem salvar : : q ! ou Para for ar a sa
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
1 2 3 4 5 6
# vim texto # Para ir para a ltima linha digite : G # Para deletar " recortar " a linha atual digite : dd # Para salvar e sair do arquivo : x ou Para for ar : x!
1 2 3 4
# vim texto # Delete as 5 primeiras linhas digitando : cursor na primeira linha digite : # Para sair sem salvar digite : q! 5 dd :1 ,5 d ou d5d ou Com o
1 2 3 4 5 6
# vim texto # buscar palavra " inser " dentro do arquivo abaixo do cursor , digite : / inser # Para ir para a pr xima ocorr ncia digite : # Para ir para a ocorr ncia anterior digite : ? inser # Para grifar todos os resultados da busca , digite : : set hlsearch n N
# Buscar palavra " inser " dentro do arquivo acima do cursor , digite :
Funcionalidades do Vim
Comandos bsicos de insero de texto: i - Insere texto antes do cursor; a - Insere texto depois do cursor;
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
r - Substitui texto no incio da linha onde se encontra o cursor; A - Insere texto no nal da linha onde se encontra o cursor; o - Adiciona linha abaixo da linha atual; O - Adiciona linha acima da linha atual; Ctrl + h - Apaga o ltimo caractere. Comandos bsicos de movimentao: Ctrl+f - Move o cursor para a prxima tela; Ctrl+b - Move o cursor para a tela anterior; H - Move o cursor para a primeira linha da tela; M - Move o cursor para o meio da tela; L - Move o cursor para a ltima linha da tela; h - Move o cursor um caractere esquerda; j - Move o cursor para a prxima linha; k - Move o cursor para linha anterior; l - Move o cursor um caractere direita; w - Move o cursor para o incio da prxima palavra; W - Move o cursor para o incio da prxima palavra, separadas por espao; b - Move o cursor para o incio da palavra anterior;
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
B - Move o cursor para o incio da palavra anterior, separadas por espao; 0(zero) - Move o cursor para o incio da linha atual; Move o cursor para o primeiro caractere no branco da linha atual; $ - Move o cursor para o nal da linha atual; nG - Move o cursor para a linha n; :n - Move o cursor para a linha n; gg - Move o cursor para a primeira linha do arquivo; G - Move o cursor para a ltima linha do arquivo. Comandos bsicos para localizar texto: /palavra - Busca pela palavra ou caractere em todo o texto; ?palavra - Move o cursor para a ocorrncia anterior da palavra; n - Repete o ltimo comando / ou ?; N - Repete o ltimo comando / ou ?, na direo reversa; Ctrl+g - Mostra o nome do arquivo, o nmero da linha atual e o total de linhas. Comandos bsicos para alterao de texto: x - Deleta o caractere que est sob o cursor; dw - Deleta a palavra, da posio atual do cursor at o nal; dd - Deleta a linha atual, e copia o contedo para rea de transferncia;
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
D - Deleta a linha a partir da posio atual do cursor at o nal; :A,Bd - Deleta da linha A at a linha B, copia para rea de transferncia; rx - Substitui o caractere sob o cursor pelo especicado em x; u - Desfaz a ltima modicao ; U - Desfaz todas as modicaes feitas na linha atual; J - Une a linha corrente a prxima; yy - Copia 1 linha para a rea de transferncia; yNy - Copia N linhas para a rea de transferncia; p - Cola o contedo da rea de transferncia; Np - Cola N vezes o contedo da rea de transferncia; cc - Apaga o contedo da linha, e copia para rea de transferncia; cNc - Apaga o contedo de N linhas, e copia para rea de transferncia; :%s/string1/string2/g - Substitui "string1"por "string2". Comandos para salvar o texto: :wq ou :x - Salva o arquivo e sai do editor; :w nome_do_arquivo - Salva o arquivo corrente com o nome especicado; :w! nome_do_arquivo - O mesmo que :w, mas forando sobrescrita; :q - Sai do editor;
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
Resumo de VI para a LPI: :set ic => ignora case sensitive :set number => numera as linhas :syntax on => colore o texto :set hlsearch => grifa o texto :w => Salva o arquivo que est sendo editado no momento. :q => Sai. :wq => Salva e sai. :x => Salva e sai. ZZ => Salva e sai. :w! => Salva forado. :q! => Sai forado. :wq! => Salva e sai forado.
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
No CentOS /etc/vimrc.
Adicione ao nal do arquivo as opes para deixar o texto com as linhas numeradas, texto colorido e grifar as buscas encontradas:
1 2 3 4
Linux Essentials
Pgina 13
455
Linux Essentials
www.4linux.com.br
Contedo
Gerenciamento de Pacotes em Alto Nvel 8.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 8.1.2 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.3 8.3.1 8.3.2 8.3.3 O que um pacote? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mas o que um gerenciador de pacotes? 2 3 3 4 4 5
Removendo pacotes que no sero mais usados . . . . . . . 10 Atualizar pacotes instalados . . . . . . . . . . . . . . . . . . 11 Atualizao da distro . . . . . . . . . . . . . . . . . . . . . . 11
Gerenciamento de Pacotes em Distros baseadas em RPM . . . . . . . 12 Instalando pacotes . . . . . . . . . . . . . . . . . . . . . . . . 14 Removendo pacotes . . . . . . . . . . . . . . . . . . . . . . . 14 Atualizando pacotes . . . . . . . . . . . . . . . . . . . . . . . 15
J nas distribuies baseadas em RedHat, temos pacotes com a extenso caracterstica: .rpm.
4Linux www.4linux.com.br
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8 9
# vim / etc / apt / sources . list # mirros de seguran a deb http :// security . debian . org / squeeze / updates main contrib deb - src http :// security . debian . org / squeeze / updates main contrib # mirros oficiais deb ftp :// ftp . br . debian . org / debian / squeeze main contrib non - free deb http :// linorg . usp . br / debian / squeeze main contrib non - free # mirror multimidia deb http :// debian - multimedia . org / squeeze main
# aptitude update
ou
Os comandos acima sincronizam a lista de pacotes disponveis para instalao nos servidores remotos, com uma lista local. A lista local visa acelerar as consultas e pesquisas. Caso ocorra um erro de GPG, basta instalar o pacote debian-keyring.
ou
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
# aptitude update
ou
Vamos primeiramente utilizar a ferramenta aptitude em seu modo visual, e logo aps em seu modo texto, para instalar, remover e procurar pacotes.
# aptitude
Para procurarmos por um pacote que desejamos instalar, podemos fazer uma busca pelo comando abaixo:
ou
A diferena entre aptitude e apt-cache que o aptitude ir trazer os resultados que contenham o argumento passado na busca no nome do programa, enquanto que o
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
apt-cache trar como resultado tanto comandos, quanto resumo do comando que contenham o argumento passado na busca.
Para buscar uma lista completa de pacotes disponveis para Debian acesse: http://packages.debian.org
Vamos buscar por gerenciadores de janela, mas no sabemos quais existem, ento prera utilizar o apt-cache e faa a busca sempre em ingls:
Se zer a busca com o aptitude, talvez voc no encontre o pacote que procura.
J no caso de saber o nome do programa que voc busca, voc pode utilizar diretamente o aptitude, por exemplo o programa ORCA para decientes visuais:
O apt-cache traz mais opes, pois busca no nome do programa e no resumo do que faz o mesmo.
Agora falando de dependncias de pacotes, importante entender que os pacotes no so apenas binrios mgicos, que depois de um comando de instalao esto prontinhos para funcionar.
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
A instalao de um pacote depende de vrios pr-requisitos que o prprio pacote capaz de resolver e/ou indicar ao sistema como resolver. Por exemplo, queremos instalar o pacote kdm, um gerenciador de displays. Aps comunicarmos que queremos instalar esse pacote, o nosso gerenciador de pacotes vericar suas dependncias, recomendaes, conitos e/ou apenas sugestes de tarefas, que devem ser satisfeitas. A visualizao de todas essas informaes pode ser feita executando o comando:
ou
Para a instalao de pacotes deve-se usar o comando aptitude ou apt-get com a instruo install e, em seguida, fornecer o nome do pacote desejado. Por exemplo, para instalar os programas kdm, xdm, samba, digitamos:
ou
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
As dependncias so pacotes que esto diretamente ligados ao pacote que ir ser instalado, ou seja, so pr-requisitos essenciais. Se um pacote depende de outro, ambos devem ser instalados pois o programa em questo s ir funcionar se todas suas dependncias estiverem supridas. As recomendaes so pacotes que no so essenciais, porm adicionam/retiram alguma funo que o programa poderia ter. Por exemplo, quando instalamos o pacote mozilla-browser recomendado tambm a instalao do pacote mozilla-psm, que d suporte s paginas seguras, mas este ltimo no obrigatrio e, portanto, se no for instalado no ser um impedimento na instalao do mozilla-browser. As sugestes so pacotes relacionados com o complemento de funcionalidade. A instalao desse pacote pode fornecer alguns complementos em relao ao pacote que est sendo instalado. Os conitos so pacotes que no podem ser instalados simultaneamente no sistema. Para remover um pacote instalado deve-se usar o comando aptitude ou apt-get com a instruo remove e, em seguida, fornecer o nome do pacote. Por exemplo, para remover o programa samba, digitamos:
ou
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
Repare que aps a remoo, os arquivos de congurao do samba, ainda continuam existindo no sistema:
# ls / etc / samba
ou
Agora iremos remover o samba e suas dependncias, assim como seus arquivos de congurao:
Ou:
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
pode crescer e ocupar muito espao em disco. Felizmente o apt fornece uma tima ferramenta para lidar com seu repositrio local,o mtodos "clean"do apt-get. O "aptget clean" remove tudo exceto os arquivos de lock dos diretrios "/var/cache/apt/archives/" e "/var/cache/apt/archives/partial/". Assim, se voc precisar reinstalar um pacote o apt ir busc-lo novamente.
# aptitude upgrade
ou
Linux Essentials
Pgina 11
Nas distros baseadas em RedHat, o gerenciamento de pacotes feito pelo programa rpm. A RedHat e Fedora disponibilizam tambm a ferramenta yum, similar em funcionalidade ao aptitude. J o SUSE apresenta a ferramenta zypper, muito embora nesta distro recomenda-se a utilizao da ferramenta Yast para gerenciamento de pacotes e congurao do sistema. Quando falamos de Mandriva a ferramenta da vez o urpmi.
O yum (Yellow dog Update, Modied) o gerenciador de pacotes usado por padro no CentOS, no Fedora e no Red Hat Enterprise. O yum foi originalmente desenvolvido pela equipe do Yellow Dog (uma distribuio baseada no Red Hat, destinada a computadores com chip PowerPC) e foi sistematicamente aperfeioado pela equipe da Red Hat, at nalmente assumir o posto atual. O yum trabalha de forma bem similar ao apt-get e aptitude, baixando os pacotes a partir dos repositrios especicados nos arquivos de congurao, junto com as dependncias necessrias. Assim como o apt-get e aptitude, ele capaz de solucionar conitos automaticamente e pode ser tambm usado para atualizar o sistema. Essencialmente, o yum e o apt-get/aptitude solucionaram o antigo problema das dependncias (um pacote precisa de outro, que por sua vez precisa de um terceiro) que atormentava os usurios de distribuies mais antigas. Diferente do gerenciador de pacotes do Debian que toda vez que modica a lista de repositrio necessrio fazer a atualizao da lista, o yum faz a atualizao automaticamente cada vez que uma instalao solicitada, checando os repositrios, baixando os headers do pacotes e calculando as dependncias antes de conrmar a instalao. Os repositrios cam em: /etc/yum.repos.d, vamos adicionar o repositrio do dag:
Pgina 12
Linux Essentials
1 2 3 4 5 6 7
# vim / etc / yum . repos . d / dag . repo [ dag ] name = Dag RPM Repository for Red Hat Enterprise Linux baseurl = http :// apt . sw . be / redhat / el$releasever / en / $basearch / dag gpgcheck =1 gpgkey = http :// dag . wieers . com / rpm / packages / RPM - GPG - KEY . dag . txt enabled =1
Procurando um programa:
ou
A diferena entre as opes list e search que a primeira opo list ir trazer os resultados que contenham o argumento passado na busca no nome do programa, enquanto que a opo search trar como resultado tanto comandos, quanto resumo do comando que contenham o argumento passado na busca. Obtendo informaes do pacote: Usando o yum para mostrar informaes de pacotes:
Linux Essentials
Pgina 13
ou:
Pgina 14
Linux Essentials
Remova o samba:
ou
# ls / etc / samba
O yum no tem uma opo purge como o apt-get e o aptitude, para remover as dependncias e arquivos de congurao do pacote, tendo que serem removidos posteriormente.
# yum update
Linux Essentials
Pgina 15
455
Linux Essentials
www.4linux.com.br
Contedo
Instalao de Programas com DPKG e RPM 9.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 Pacotes Debian - DPKG . . . . . . . . . . . . . . . . . . . . . Pacotes RPM . . . . . . . . . . . . . . . . . . . . . . . . . . . Base de dados RPM . . . . . . . . . . . . . . . . . . . . . . . Gerenciando Pacotes em Formato DPKG . . . . . . . . . . . Convertendo extenses de arquivos . . . . . . . . . . . . . . 2 3 3 4 4 5 8
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
pool \_ stable \_ main \_ a \_ alien \ _ alien - < versao >. deb \_ a2ps \_ ... \_ b \_ ... \_ z \_ liba \_ libb \_ ... \_ libz \_ testing \_ unstable \_ contrib
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
quando um usurio instala um programa e facilita a remoo destes mesmos arquivos. Se o banco de dados ca corrompido (o que acontece facilmente se o cliente de RPM fechado subitamente), as ligaes duplas garantem que eles possam ser reconstrudos sem nenhum problema. Em computadores com o sistema operacional RedHat instalado, este banco da dados encontra-se em /var/lib/rpm. Uma vantagem que o RPM possui sobre DPKG que possui algumas ferramentas de vericao criptogrca com o GPG e o md5, alm de vericao de integridade dos arquivos j instalados. Existe uma documentao que pode ser usada para qualquer distro baseada em RPM que pode ser encontrada em: http://www.rpm.org/RPM-HOWTO/.
# dpkg -- help
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
Ou:
No caso:
# dpkg -l | less
Para determinar qual pacote foi o responsvel por instalar um binrio no sistema, digite:
# dpkg -s coreutils
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
# dpkg -c
# dpkg -r
flashplugin - nonfree
# dpkg -l
flashplugin - nonfree
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
# dpkg -P
flashplugin - nonfree
Alguns pacotes tm problemas de dependncias e no so instalados, at que suas dependncias sejam satisfeitas, para isso utilize o apt-get ou aptitude com a opo -f para resolver. Por exemplo, vamos tentar instalar o google-chrome, faa o download do pacote.deb:
O aplicativo no pode ser instalado porque existem pr-requisitos para sua instalao, para resolver estas dependncias automaticamente, digite:
# aptitude -f
install
Ou:
# apt - get -f
install
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
# dpkg -l alien
1 2 3
1 2 3
ccze ; ls - lh
# cd / opt ; ls - lh
1 2
# alien -r sl - < versao >. deb # alien -r ccze - < versao >. deb
1 2
# alien -t sl - < versao >. deb # alien -t ccze - < versao >. deb
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
1 2
Vamos agora copiar o arquivo .rpm para a mquina Dexter para poder instalar o pacote.
1 2
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
1 2
# rpm - qlp ccze - - < versao >. rpm # rpm -ih -- test -- percent ccze - - < versao >. rpm
As opes -h e percent servem para mostrar uma barra de progressos e a porcentagem de concluso. Instale o programa:
# rpm -e ccze
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
Obs.: se o pacote tiver dependncias e voc quiser remov-lo assim mesmo, utilize o parmetro nodeps.
1 2
Para realizar uma atualizao de verso de algum programa podemos utilizar o comando:
Uma funcionalidade muito boa do RPM a capacidade de realizar vericaes de integridade dos pacotes instalados. Dessa forma, periodicamente voc pode vericar se ocorreu alguma alterao no seu sistema sem voc saber ou se sua mquina foi invadida, pode-se tentar identicar o que foi mexido nela. Verique a integridade de todos os pacotes instalados no sistema:
# rpm -Va
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
Execute o comando:
Verique que os logs esto saindo coloridos, o comando ccze serve para vericar logs desta maneira.
Dica LPI: O comando tail mostra por padro as ltimas 10 linhas de um arquivo, e em conjunto com a opo -f verica em tempo real.
# rpm -Va
Algumas siglas da checagem: S -> le Size differs M -> Mode differs (includes permissions and le type) 5 -> MD5 sum differs
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
D -> Device major/minor number mismatch L -> readLink(2) path mismatch U -> User ownership differs G -> Group ownership differs T -> mTime differs P -> caPabilities differ
Pgina 14
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
11 Compilando Programas 11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 Congure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2 Makele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliotecas 11.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Tipos fundamentais de programas executveis . . . . . . . . 3 3 4 4 7 8 8
11.2.2 Modo Esttico e Compartilhado . . . . . . . . . . . . . . . . 10 11.2.3 Listando Bibliotecas disponveis . . . . . . . . . . . . . . . . 11 11.2.4 Localizao das bibliotecas? . . . . . . . . . . . . . . . . . . 12 11.2.5 Adicionando novas bibliotecas ao sistema . . . . . . . . . . 12
Compilando Programas
10.1 Introduo Terica
Um dos pontos centrais do mundo GNU/Linux est baseado nas quatro liberdades bsicas propostas pela FSF - Free Software Foundation, sendo elas: 1 liberdade de rodar o programa para qualquer propsito; 2 liberdade de acesso ao cdigo fonte, estudar como ele funciona e adapt-lo s suas necessidades; 3 liberdade de redistribuir cpias do software; 4 liberdade de melhorar o programa e distribuir essas melhorias em benefcio da comunidade. Para que essas quatro liberdades bsicas sejam alcanadas necessrio que tenhamos acesso ao cdigo fonte dos programas. Tirando a parte ideolgica, h diversas situaes que exigem que recompilemos um determinado software a partir do cdigo fonte, sendo algumas delas, quando necessitamos alter-lo para que ele satisfaa alguma necessidade pessoal, corrigir um erro ou melhorar a segurana, o software no est disponvel na forma de pacote ou simplesmente o pacote no vem compilado com alguma funcionalidade que desejamos.
4Linux www.4linux.com.br
10.1.1 Congure
Em geral, sempre que pegamos o cdigo fonte de um programa ele vir com um aplicativo chamado congure que ir executar uma vericao em seu sistema a m de vericar se ele dispe de todos os componentes bsicos para uma compilao bem sucedida. Alm disso, quando consultamos o help do congure ele ir nos mostrar todas as funcionalidades que podemos compilar com o programa e todas as funcionalidades que podemos retirar do mesmo para que ele se encaixe em nossas necessidades. Alm da escolha das funcionalidades, ele nos permite informar a localizao de certos componentes que por ventura no encontre. Uma vez que o processo de congure for encerrado com sucesso, ele ira gerar um arquivo chamado Makele, contm instrues de compilao e instalao entre outras.
10.1.2 Makele
A Makele em geral criada utilizando a ferramenta congure e o objetivo desta automatizar os processos de compilao, vericao e instalao dos softwares. A Makele estruturada em sees; cada uma delas realiza alguma tarefa especca. Em geral essas Makeles vm com pelo menos trs sees padro: default, install e clean. Algumas podem vir com test ou check ou alguma outra que o desenvolvedor ache relevante. Por isso devemos sempre ler a documentao do programa. A forma de utilizao da Makele , simplesmente, utilizar o comando make com o nome de alguma das sees. Se nenhuma for especicada, ele ir executar a seo default. Instalao:
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
Para que possamos instalar um software a partir de seu cdigo fonte, o primeiro passo que temos que seguir : fazer o download dele. Em geral fazemos isso acessando a pgina do desenvolvedor do programa. Neste captulo vamos realizar a compilao do software chamado nmap, que pode ser encontrado em http://www.insecure.org. O procedimento de compilao de um programa parte do princpio que, atravs do cdigo fonte do programa, qualquer um possa ter acesso ao cdigo e gerar o binrio nal a partir dele. O procedimento de compilao sempre bem parecido para todas as aplicaes, porm, sempre que for compilar algum programa, devemos consultar o arquivo INSTALL ou o README que est sempre presente junto com o cdigo fonte. Vamos instalar os pacotes necessrios:
1 2 3
# wget http :// nmap . org / dist / nmap -5.51. tar . bz2 # tar xvjf nmap -5.51. tar . bz2 -C / usr / local # cd / usr / local / nmap - versao
Qual o primeiro passo para compilar um programa?? Ler os arquivos README e INSTALL:
1 2
Dica LPI:Todos esses mtodos chegam ao mesmo resultado. Certque-se de que voc entende que o tar capaz de arquivar direto para arquivos e que se pode
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
fazer uma verso comprimida de um arquivo tar como gzip. Para a prova voc deve dominar o TAR e o GZIP, que estudamos no 450, e utilizaremos aqui.
Obs.: Nem sempre ambos os arquivos estaro presentes, mas certamente um deles sempre estar. Agora que sabemos o que fazer, vamos executar. Para determinar quais so os parmetros que podemos passar ao congure:
# ./ configure -- help
Como no estamos interessados na interface grca do nmap, podemos informar ao congure que no queremos que o nmap a utilize:
Dica LPI: muito comum, quando compilamos um programa a partir de seu cdigo fonte, que alguns de seus requisitos no estejam presentes, ocasionando assim um erro durante a execuo do congure. Quando isso ocorrer, deve-se identicar o componente que est faltando, instal-lo e executar novamente o congure at que ele termine com sucesso. Fique atento esse processo.
Quando o congure for executado com sucesso, podemos passar compilao, mas antes vamos conhecer o arquivo Makele criado pelo congure:
# vim Makefile
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
# make
# make install
# nmap 192.168.2
.254
Aps compilarmos o programa, podemos remover os arquivos binrios e de objetos que foram criados durante a compilao:
# make clean
Para desinstalar:
# make uninstall
Linux Essentials
Pgina 7
Bibliotecas
10.2 Introduo Terica
Hoje em dia muito simples instalar um programa j compilado, com a ajuda de gerenciadores de pacotes como o rpm, dpkg, aptitude e outros. Mas voc vai encontrar muitos programas disponveis somente em cdigo-fonte, e s vezes nem to bem documentados assim. Entretanto, compilar um programa no algo de outro mundo, no um bicho de sete cabeas. A funo destas bibliotecas lembra um pouco a dos arquivos .dll no Windows. Temos as bibliotecas estticas e dinmicas. As dinmicas so usadas por vrios programas e necessrias para instalar programas distribudos em cdigo fonte (os famosos arquivos tar.gz, tgz e tar.bz2).
4Linux www.4linux.com.br
Obs: Deve ser colocado o caminho completo do executvel, no somente o nome do comando. Para facilitar em vez de digitar o caminho completo:
# ldd $( which ls )
1 2 3
# aptitude install module - assistant # ldd / usr / bin / module - assistant not a dynamic executable
1 2 3 4
# ldd / bin / ln linux - gate . so .1 = > ( xffffe / lib /ld - linux . so .2 ( xb7f29 ) ) ) libc . so .6 = > / lib / tls / libc . so .6 ( xb7ded
Vericando tamanhos:
1 2 3
# du -h / usr / bin / module - assistant / bin / ln 64 K / usr / bin / module - assistant 4 K / bin / ln
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
Note que um executvel esttico bem maior que o executvel dinmico, isso ocorre pois o esttico j contm o que precisa dentro do prprio executvel. Obviamente, bibliotecas compartilhadas tendem a gerar executveis menores, eles tambm usam menos memria, ou seja, menos espao em disco usado.
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
As bibliotecas mais comuns, utilizadas por todas as aplicaes e utilitrios do sistema, so: libc: na verdade um grande "pacote"de bibliotecas que prov funcionalidades bsicas de entrada/sada, de acesso a servios do sistema, rede, etc. ld-linux: prov as funes necessrias para a carga de bibliotecas dinmicas, durante a inicializao do programa. Por default, essas duas bibliotecas so automaticamente includas e ligadas em todos os programas. Ao usar uma biblioteca esttica, o linker encontra as partes que os mdulos do programa precisam, e as cpia sicamente no arquivo de sada executvel que ele gera. Para bibliotecas compartilhadas, no em vez disso, ele deixa uma nota na sada dizendo quando este programa for executado, ele ter que carregar primeiro esta biblioteca. Diversos programas, para no terem sempre que reinventar a roda, usam bibliotecas, como a libc, por exemplo. Apesar de parecer um termo complicado, trabalhar com bibliotecas compartilhadas muito simples. Para isso necessrio saber em quais diretrios elas costumam estar, quais bibliotecas determinado binrio utiliza e saber adicionar novas bibliotecas no sistema.
# ldconfig -p
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
Por padro, os programas instalados j adicionam as bibliotecas em seus devidos diretrios, que geralmente so: /lib, /usr/lib. A ordem de buscas por bibliotecas no sistema : - O valor da varivel: LD_LIBRARY_PATH - Os diretrios especicados em /etc/ld.so.conf - Os diretrios padro do sistema para bibliotecas: /lib e /usr/lib
Caso voc tenha desenvolvido ou baixado alguma biblioteca nova e criou um diretrio especco para guard-las, adicione o caminho completo do diretrio em que essa biblioteca se encontra no arquivo /etc/ld.so.conf e digite o comando ldcong (sem parmetros). Isso ir gerar o arquivo /etc/ld.so.cache, que contm informaes sobre as bibliotecas compartilhadas disponveis no sistema que ld.so ou ld-linux.so iro procurar. Aps a operao, conra o resultado com o comando ldcong -p e veja se sua nova biblioteca consta na lista. Outra opo adicionar o caminho completo na varivel de ambiente LD_LIBRARY_PATH, que instrui o carregador dinmico para checar um certo diretrio:
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
EX: Vamos criar um diretrio para nossas bibliotecas e copiar uma biblioteca que o comando ping utiliza para l, como este novo diretrio no consta na lista de diretrios de bibliotecas, o comando no pode ser executado com sucesso, at que se adicione este novo diretrio de bibliotecas: Criando o diretrio novo para guardar bibliotecas:
# mkdir / bibliotecas
# ls / etc
1 2 3 4 5 6 7 8 9 10
# ldd / bin / ls linux - gate . so .1 = > ( xb7816 ) ) ) ) ) ( xb766d ) libselinux . so .1 = > / lib / libselinux . so .1 ( xb77e1 librt . so .1 = > / lib / i686 / cmov / librt . so .1 ( xb77d8 libacl . so .1 = > / lib / libacl . so .1 ( xb77d ) libc . so .6 = > / lib / i686 / cmov / libc . so .6 ( xb768a libdl . so .2 = > / lib / i686 / cmov / libdl . so .2 ( xb7686 / lib /ld - linux . so .2 ( xb7817 libpthread . so . ) ) = > / lib / i686 / cmov / libpthread . so .
Uma das bibliotecas compartilhadas utilizada pelo comando ls a /lib/librt.so.1, repare que ele apenas um link para a biblioteca original:
1 2
# ls -l ls -l / lib / librt . so .1 lrwxrwxrwx 1 root root 15 Set 16 17:14 / lib / librt . so .1 -> librt -2.11.2. so
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
# mv
/ lib / librt . so .1
/ bibliotecas
ls / etc
ping: error while loading shared libraries: librt.so.1 cannot open shared object le: No such le or directory No foi possvel executar o comando ls, pois a biblioteca compartilhada no pde ser carregada por estar em um diretrio que no referenciado em /etc/ld.so.cache para os linkadores carregarem-na. Vamos checar as bibliotecas que faltam:
# ldd / bin / ls
Voc j imaginou car sem a librt.so.1? Sem essa lib, muitos recursos de movimentao pelo terminal no iram responder. Nesses casos em que as bibliotecas esto em um diretrio diferente necessrio dizer ao sistema para buscar bibliotecas l: Adicione o caminho completo ao arquivo /etc/ld.so.conf ou crie um arquivo em /etc/ld.so.conf.d com a extenso .conf:
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
1 2 3
# ldconfig
# ls / etc
# ldd / bin / ls
Linux Essentials
Pgina 15
455
Linux Essentials
www.4linux.com.br
Contedo
Introduo a Redes 11.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 Entendendo o IP . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2 Entendendo o gateway da rede . . . . . . . . . . . . . . . . 11.1.3 O servidor DNS . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.4 Arp e RARP . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.5 Congurando a Rede . . . . . . . . . . . . . . . . . . . . . . 11.1.6 Congurando IP e Mscara 11.1.7 Congurando o gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 4 5 6 7 7 8 9
. . . . . . . . . . . . . . . . 11
11.1.9 Congurao esttica de rede . . . . . . . . . . . . . . . . . 12 11.1.10 Congurando hosts e hostname DEBIAN . . . . . . . . . . . 14 11.1.11 Congurando hosts e hostname CentOS: . . . . . . . . . . . 16
Introduo a Redes
11.1 Introduo terica
Neste captulo, iremos aprender alguns conceitos de redes que so muito importantes no nosso dia a dia em TI. Elementos como o endereo IP da mquina e a mscara de rede, so de fundamental importncia quando lidamos com congurao de rede. To importante quanto os itens acima, saber como funciona uma rede, aprendendo a congurar seu gateway e denir seu DNS, alm de descobrir tcnicas que facilitam as conguraes diria de rede nos nossos sistemas UNIX. Os protocolos TCP/IP antigamente eram usados como um padro militar para troca de informaes. Atualmente esses protocolos so o padro mundial para comunicao de redes de computadores. Inclusive da Internet. O protocolo TCP - Transmission Control Protocol, orientado a conexes, transporta informaes por meio de handshake. Caso algum erro acontea durante a comunicao ele, automaticamente, reenvia a informao. Esse protocolo garante o envio das mensagens. Podemos citar alguns servios de rede que utilizam o protocolo TCP: SMTP, FTP e Telnet. J o protocolo IP - Internet Protocol descrito pela RFC 791, responsvel por estabelecer o esquema de endereamento e pela denio de datagramas.
Apesar da nova verso da LPI ter diminudo os tpicos sobre TCP/IP, ele ainda est presente na prova, e por isso dar ateno ao modelo OSI, uma boa
4Linux www.4linux.com.br
Acompanhe um pouco mais desse assunto no treinamento 451 da Formao 4Linux. O treinamento 452, mostra a congurao dos principais servios.
11.1.1 Entendendo o IP
O endereamento IP, como dever ser chamado, composto por 4 octetos e uma mscara, que determina quantos endereos so destinados a host e quantos endereos so destinados a rede. O GNU/Linux no diferente de outros sistemas operacionais. Para termos acesso a Internet ou a comunicao em rede tambm precisamos ter nosso nmero IP. O nmero IP est presente em todas as mquinas, mesmo nas que no tem conexo com a Internet. Isso possvel porque em todo GNU/Linux h uma interface lgica, chamada loopback (lo) cujo endereo IP 127.0.0.1 e que sempre deve estar devidamente congurada.
Voc pode estar se perguntando: Mas por que raios eu poderia querer um servio em uma mquina que no fala com o mundo externo?".
A resposta simples: As aplicaes da sua mquina utilizam este IP 127.0.0.1 para comunicao com outras aplicaes internas. Alm disso, voc pode desenvolver suas pginas e sistemas Web e test-las localmente. Ou mesmo testar a implantao
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
de um servidor de DNS ou um proxy, antes mesmo de coloc-lo em produo e evitar que seus usurios reclamem de algo que no funcionou direito. Em resumo, voc pode fazer qualquer coisa que voc queira e no necessariamente precisa ter contato com o mundo exterior. Com essa interface congurada, todo o tipo de servio pode ser ativado na mquina, desde um simples servidor de ssh at um servidor de DNS, passando por um servidor de pginas Web, am de realizar testes antes de coloc-los em produo. A Internet totalmente endereada por nmeros IPs, e no depende, isso mesmo, no depende em momento nenhum de um servidor de DNS para funcionar. O servio de DNS apenas facilita o nosso acesso a Internet, permitindo que a navegao seja feita atravs de nomes e no de nmeros. Isso signica que para entenderemos como a Internet funciona, precisamos entender como funcionam os nmeros que ela utiliza os nmeros IP. Para congurarmos um nmero IP em nosso computador, precisamos tambm, congurar uma Mscara para esse nmero IP. A mscara de rede, tambm conhecida como netmask, um nmero constitudo por 32 bits, que utilizado para separar redes, determinando quem host, quem rede e quem broadcast.
BroadCast - Normalmente o ltimo endereo da rede, utilizado para que uma mquina possa falar com todas as outras.
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
O gateway da rede um host que conhece outros hosts que por sua vez conhece outros, e assim por diante. Complicado?
O principal papel do gateway levar os pacotes TCP/IP para outras redes que os hosts que os originaram, no conhecem. dessa forma que os pacotes saem de uma rede privada para um rede Wan. Para que os pacotes possam transitar pela Internet ou mesmo s por uma rede fechada necessrio um gateway. Mesmo em uma rede local, o gateway a prpria mquina, pois todos os hosts esto normalmente com a mesma congurao de IP, ou seja, mesma mscara, mesma classe de IP, etc.
ping 8.8.8.8
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
Se a resposta for positiva, voc no tem um problema de link, cheque seu DNS. Suporte - Sr. Usurio, percebi que voc est acessando um site proibido pela empresa, h algo errado? Usurio - Eu?? .. No, no, tudo bem, a Internet j est normalizada.
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
# ifconfig
Com esse comando possvel descobrir todas as interfaces presentes no sistema, mas para ter certeza que nenhuma interface est inativa adicionamos o parmetro -a.
# ifconfig -a
Para atribuir um endereo IP para uma placa de rede utilizamos esta sintaxe:
Exemplo:
# ifconfig eth
172.16. .1
Com esse comando estamos atribuindo o endereo IP 172.16.0.100 para a interface eth0. Visualize o endereo da interface e sua mscara:
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
# ifconfig eth
O comando ifcong calcula automaticamente a mscara, mas se voc precisar congurar uma mscara diferenciada, voc deve usar o parmetro netmask, assim:
# ifconfig eth
172.16. .1
netmask 255.255. .
# ifconfig eth
Caso voc queira participar de uma outra rede, utilizando uma nica placa de rede, crie uma interface virtual:
# ifconfig eth :
1 . . .1
Onde: :0 o nome da placa de rede virtual, poderia ser tambm :local, :net, ou qualquer nome. Visualize a congurao da placa:
# ifconfig eth :
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
Para congurar o gateway da nossa rede utilizamos o comando route com os seguinte parmetros:
Com esse comando possvel congurar a rota padro de sada da nossa rede. Para listar todas as rotas traadas, podemos utilizar o comando abaixo:
# route -n
A opo -n serve para o comando no tentar resolver os nomes, trazendo apenas os IPs. Com ele podemos descobrir se as rotas necessrias para que nossa rede funcione esto corretas. Se desejarmos remover a rota padro, devemos utilizar o comando:
Esse comando se encarregar de remover a rota padro para a sada da rede, mas lembre-se que essa rota obrigatria no processo de congurao de rede. Tente pingar o gateway:
# ping 172.16. .1
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
# ping
No foi possvel, porque? Para poder pingarmos um domnio necessrio congurarmos o DNS responsvel pela resoluo de nomes.
Para que a resoluo de nomes funcione o contedo do arquivo /etc/resolv.conf deve ser parecido com este: nameserver 8.8.8.8 Com essa sintaxe acabamos de congurar um servidor de DNS, no caso o DNS do Google. Tente pingar um site agora:
Traceroute uma ferramenta que permite descobrir o caminho feito pelos pacotes desde a sua origem at o seu destino.
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
O comando traceroute pode ajudar os administradores a descobrir em que ponto da rede podemos ter um possvel problema.
1 2 3 4 5 6 7 8 9 10 11 12
# vim / etc / network / interfaces auto lo iface lo inet loopback auto eth iface eth inet static address 192.168. .1 netmask 255.255.255. broadcast 192.168. .255 network 192.168. . gateway 192.168. .1
Reinicie o servio:
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
1 2
No CentOS:
Os arquivos de congurao das interfaces de rede no CentOS esto localizados em /etc/syscong/network-scripts/ifcfg-device. Onde device o nome da placa de rede.
Vamos congurar a rede do servidor CentOS para que as mquinas possam se comunicar:
1 2 3 4 5 6 7 8 9
# vim / etc / sysconfig / network - scripts / ifcfg - eth DEVICE = eth BOOTPROTO = static ONBOOT = yes IPADDR =192.168. .1 NETMASK =255.255.255. BROADCAST =192.168. .255 NETWORK =192.168. .
Reinicie o servio:
Para ativar ou desabilitar uma placa de rede podemos usar a sintaxe, tanto no Debian quanto no CentOS:
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
1 2
up down
Uma boa alternativa para habilitar e desabilitar as placas de redes, seriam os comando ifup e ifdown. Para que estes comandos funcionem as respectivas placas de redes devem estar habilitadas no arquivo de congurao de rede. Debian: /etc/network/interfaces CentOS: /etc/syscong/network-scripts/ifcfg-eth0 (o nome da placa poder variar)
Exemplo:
1 2
IP
FQDN
HOSTNAME
ALIAS
* IP - endereo IP ex: 192.168.0.100 * FQDN - Full Qualied Domain Name = nome da mquina + domnio ex: aula.teste.com.br * Hostname - nome da mquina ex: aula * Alias - apelido (este opcional) ex: micro100, micro100.teste.com.br
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Exemplo : 192.168.0.100 aula.teste.com.br aula Isso facilita nosso trabalho, uma vez que todos esto devidamente congurados, no precisamos mais decorar nmeros IP. O comando hostname altera dinamicamente o nome da mquina e deve ser utilizado da seguinte maneira:
hostname aula
Deslogue e logue para alterar o prompt. Para testar a resoluo de nomes pelo arquivo hosts:
# hostname -i
# hostname -f
# hostname -d
# hostname -v
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
A sada dever ser igual ao seu hostname: aula Para alterar o hostname de maneira esttica, devemos editar o arquivo /etc/hostname:
1 2
O comando hostname com sua opo -f (FQDN) mostra qual o Full Qualied Domain Name da nossa mquina, sempre que formos congurar qualquer servio externo em nossa mquina, o FQDN ser a chave. name>.<domainname> <host-
IP
FQDN
HOSTNAME
ALIAS
1 2
# vim / etc / hosts 192.168. .1 aula . dexter . com . br aula dexter . com . br
Para alterar o nome da maquina no CentOS, altere a linha HOSTNAME do arquivo "/etc/syscong/network", como no exemplo abaixo:
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
1 2
# ping 192.168. .1
Agora que j estamos com a rede congurada vamos tentar acessar a Internet. Pingue o dns do google:
# ping 8.8.8.8
Linux Essentials
Pgina 17
455
Linux Essentials
www.4linux.com.br
Contedo
Gerenciamento de Processos 12.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 E como fazemos para gerenciar os processos? . . . . . . . . . . . . . O comando pkill . . . . . . . . . . . . . . . . . . . . . . . . . . O comando killall . . . . . . . . . . . . . . . . . . . . . . . . . O comando kill . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 8 9 9 9
Gerenciamento de Processos
12.1 Introduo Terica
Quando executamos algum comando, script ou iniciamos algum programa, o kernel atribui a ele um nmero de processo (PID) e passa a gerenciar a quantidade de recursos que ele ir disponibilizar para essa atividade. Como haver sempre diversos processos rodando simultaneamente na mquina o kernel tem uma lista de processos que necessitam de recursos. Como no existe atualmente um sistema realmente multitarefa, capaz de realizar diversas atividades realmente ao mesmo tempo, o kernel cria uma la de processos e a percorre disponibilizando recursos de mquina para cada um deles por um determinado perodo de tempo. Quanto melhor essa distribuio for efetuada melhor ser o desempenho do sistema como um todo e mais prximo de um sistema multitarefas o sistema se parecer. A forma como o kernel gerncia os processos bastante inteligente e podemos sempre visualizar o status do processo num determinado instante, para determinar se ele est sendo executado neste mesmo instante ou se ele est aguardando tempo de mquina para que seja executado. Podemos visualizar todos os processos que esto rodando em nosso sistema com o programa que tira uma foto dessa estrutura, conhecido como snaPShot vulgo ps:
# ps
4Linux www.4linux.com.br
ento aqui esto os mais importantes: Para podermos ver com mais detalhes os processos temos a combinao dos seguintes parametros
# ps aux
Onde os parmetros so: a - mostra todos os processos existentes no associados com um terminal; u - exibe o nome do usurio que iniciou determinado processo e a hora em que isso ocorreu; x - exibe os processos que no esto associados a terminais; Onde os campos so:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
- nome do usu rio dono do processo ; - n mero de identifica o do usu rio dono do processo ; - n mero de identifica o do processo ; - n mero de identifica o do processo pai ; - porcentagem do processamento usado ; - porcentagem da mem ria usada ; - indica o tamanho virtual do processo ; - Resident Set Size , indica a quantidade de mem ria
usada ( em KB ) ; TTY START COMMAND - indica o identificador do terminal do processo ; - hora em que o processo foi iniciado ; - nome do comando que executa aquele processo ;
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
22 23 24 25 26 27 28 29
PRI NI
- valor da prioridade do processo ; - valor preciso da prioridade ( geralmente igual aos valores de PRI ) ;
WCHAN
D Processo morto (usually IO); R Running (na la de processos); S Dormindo Interruptamente (aguardando um evento terminar); T Parado, por um sinal de controle; Z Zombie, terminado mas removido por seu processo pai. Essas letras podem ser combinadas e ainda acrescidas de: > o processo est rodando com prioridade maior que a padro, tendo sido denida pelo kernel; < o processo est rodando com prioridade menor que a padro, tendo sido denida pelo kernel; + o processo um processo pai, ou seja, possui processos lhos; s o processo um session leader, ou seja, possui processos que dependem dele;
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
l o processo possui mltiplas threads; L o processo possui pginas travadas na memria; N o processo foi denido com uma prioridade diferente da padro, tendo sido denida pelo usurio. Tambm temos alguns programas que nos mostram os processos em execuo:
# top
Com o top podemos ver o horrio atual, quanto tempo a mquina est ligada, quantos usurios esto logados, quantos processos esto em aberto, rodando, em espera e zumbi:
1 2 3 4 5
Top - 1 :19: 9 up 1:11 , 2 users , load average : Tasks : 2 4 total , Cpu (s): 7.1% us , . % st Mem : 2 running , 2 2 sleeping , .9% sy , .2% ni , 91.7% id , . % wa ,
. 2,
. 7,
. 6 zombie . % si ,
stopped , . % hi ,
353 556 k total , 1972 72 k used , 1558484 k free , k used , 1 8134 k free ,
232288 k buffers
99 248 k cache
Onde os campos em CPU(s) so: us = tempo de processamento, executado pelo usurio sy = tempo de processamento, executado pelo sistema ni = tempo de processamento, prioridade alterada pelo usurio id = ociosidade wa = wait - espera de I/O hi = interrupes de harware si = mapeamento das interrupes pelo Kernel st = steal time A primeira linha do comando top tambm pode ser observada com o comando uptime:
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
1 2
Onde apresentado: 16:23:00 - hora atual up 2:14 - tempo que o sistema est ligado 3 users - nmero de usurios logados load average: 0.45, 0.69, 0.74 - mdia de carga de processamento 1min atrs, 5 min atrs e 15min atrs. Outro programa que nos ajuda a visualizar os processos o htop muito mais amigvel:
1 2
Observe que com o htop voc pode navegar na lista de processos. No sistema de processos temos um tipo de processo que se chama threads esses processos so partes de um outro processo. Podemos ver esse cenrio em forma de rvore com o comando:
# pstree
# pgrep cron
ou
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
# pidof cron
Dica LPI: Uma listagem completa dos sinais possveis pode ser vista na seo STANDARD SIGNALS do man 7 signal. Alguns dos sinais mais utilizados podem ser vistos a seguir:
SIGHUP (1) Term Hangup detected on controlling terminal or death of controlling process; SIGKILL (9) Term Kill signal; SIGTERM (15) Term Termination signal; SIGCONT (18) Continue if stopped; SIGSTOP (19) Stop process. Para ver mais opes:
# man signal
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
Passando esses sinais aos processos podemos realizar tarefas desde, reiniciar o processo at encerr-lo de forma forada. Para gerenciarmos processos temos alguns comandos:
O comando pkill
# pkill cron
O comando killall
# killall cron
Os programas pkill e killall gerenciam os processos pelo nome do programa, mas tambm podemos gerenciar os processos pelo seu PID.
O comando kill
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
Vamos matar um processo e seus processos lho: Acesse a parte grca e abra o aplicativo Ekiga: Aplicativos - Internet - Ekiga Verique qual o pid do ekiga:
1 2
# kill -9 1267
Veja que a janela do aplicativo, fechada aps a execuo do kill. Ainda na parte grca, abra dois terminais e digite em um deles:
# ekiga
Verique que o comando ca no prompt do terminal, impossibilitando de utiliz-lo, at que eu cancele com um ctrl+c ou feche a janela do aplicativo. Vamos pausar a aplicao com o sinal de stop:
Tente avanar na congurao do aplicativo Ekiga, tente fechar a janela no x, repare que no possvel isto porque o processo est pausado. Para continuar o processo envie o sinal de continue:
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
Tente mexer na aplicao sem fech-la, agora voc consegue, mas repare que o terminal onde estava rodando cou livre e o processo continua em execuo, mas onde foi parar este processo? Quando enviamos o sinal pro processo continuar, ele continuou, mas em background no terminal de onde foi executado, para visualizar este processo em background utilizamos o comando jobs. Execute o comando no terminal que voc executou o ekiga pela primeira vez:
1 2
Onde: [1]+ - o nmero do job Executando - o statusXECUTANDO ekiga - o nome do programa & - signica que o processo est em background. Para enviar um sinal para um processo em background utilize o kill:
# kill %1
Verique que o processo foi terminado, lembrando que quando no passamos o sinal utilizado o sinal 15 como padro:
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
# jobs
Lembra que quando executamos o comando ekiga o terminal cou inutilizvel, pois se cancela-se o aplicativo fecharia? Ns podemos executar um comando para ser executado em background, liberando-se assim o terminal para uso: Em vez de digitar ekiga e prender o terminal, execute-o em background:
# ekiga &
Agora voc j sabe para poder executar qualquer programa em backgroung, coloque o caracter & no nal do comando. Verique que o processo est em background:
1 2
# kill -19 %1
Se quisermos rodar novamente o programa ekiga, mas em foreground ou seja primeiro plano, isso mesmo, aquele que trava o terminal para sua execuo, faa:
Ou seja:
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
# fg 1
Verique que o terminal cou travado para a execuo do ekiga, se voc cancelar o processo, o ekiga ser fechado. Quando estamos executando um programa no terminal, ns podemos paus-lo sem utilizar o kill, mas como isso? Simples basta digitar no terminal: ctrl+z.
crtl +z
1 2
Ou seja:
# bg 1
1 2
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
Imagine agora que voc vai rodar um comando que ir demorar muito tempo e voc no quer deixar o terminal logado para evitar que algum acesse o sistema, se voc se deslogar o comando ir parar e no ir terminar, para resolver isso existe o comando nohup:
O comando nohup
O nohup ignora os sinais de interrupo de conexo durante a execuo do comando especicado. Assim, possvel o comando continuar a executar mesmo depois que o usurio se desconectar do sistema. Se a sada padro uma tty, esta sada e o erro padro so redirecionados para o arquivo nohup.out (primeira opo) ou para o arquivo $HOME/nohup.out (segunda opo). Caso nenhum destes dois arquivos possam ser criados (ou alterados se j existem), o comando no executado. O nohup no coloca o comando que ele executa em background. Isto deve ser feito explicitamente pelo usurio. Vamos executar um ping com o nohup e ver que ele continua sua execuo mesmo aps fecharmos o terminal:
# nohup ping -c 1
Enviamos 1000 pings ao site 4linux.com.br. Feche o terminal e aps alguns (10)segundos abra novamente. Verique no home do usurio que voc executou o comando nohup se tem o arquivo: nohup.out.
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Execute novamente e verique que o ping continua, pois o comando ainda no terminou de ser executado (1000 pings ao site 4linux.com.br):
O Comando lsof
O comando lsof um dos mais importantes comandos para quem administra sistemas Linux, principalmente na rea de segurana. Este comando lista todos os arquivos abertos por todos os processos. Aqui, quando eu falo arquivo, no so apenas arquivos comuns, mas sim recursos que funcionam como arquivos (podem ser abertos, mapeados na memria, entre outros). Isso inclui bibliotecas, sockets, arquivos comuns, diretrios e por a vai. Em outras palavras, este comando nos fornece um mapeamento completo do que o programa est usando no sistema. Lembre-se que usando apenas o comando lsof, esta lista ca muito grande, pois mostra todos os arquivos de todos os processos. Por exemplo:
1 2 3 4 5 6
# lsof -n COMMAND OFF init 4 96 init 4 96 init 1298 init 51712 1 1 1 2 / root root txt mem REG REG 8 ,1 8 ,1 6946871 / sbin / init 11665519 / lib / libnss_files -2.11.1. so PID NODE NAME 1 2 / root rtd DIR 8 ,1 root cwd DIR 8 ,1 USER FD TYPE DEVICE SIZE /
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
7 8 9 10 11
init 43552 init 97256 init 35712 init 1572232 init 31744
1 1 1 1 1
8 ,1 8 ,1 8 ,1 8 ,1 8 ,1
11665529 / lib / libnss_nis -2.11.1. so 11665513 / lib / libnsl -2.11.1. so 11665515 / lib / libnss_compat -2.11.1. so 11665453 / lib / libc -2.11.1. so 11665567 / lib / librt -2.11.1. so
No exemplo acima, eu peguei apenas um fragmento do comando, indicando o que o comando bash est fazendo. D pra ver que bibliotecas ele est usando, onde ele est atuando, entre outros. O parmetro -n, que usei no exemplo acima, serve para que se o comando retornar algum endereo de rede (IP, por exemplo), ele no tente resolver com DNS, assim o retorno do comando ca mais rpido. Alguns dos usos mais comuns incluem:
Ver se algum processo est escutando uma porta na rede suspeita, ou conectado em algum lugar suspeito. Por exemplo, vrios scripts de invaso cam escondidos no sistema (com nomes de outros processos), conectados a servidores de IRC desconhecidos. Com o lsof, d pra saber que estes comando esto fazendo algo que no bem o que deveriam fazer ;) ;
Quando lsof chamado sem parmetros, ele vai mostrar todos os arquivos abertos por todos os processos.
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
# lsof
$ vim arquivo
Agora abra outro terminal e descubra quem est utilizando o comando vim no sistema:
Nos mostrar quais os arquivos so abertos por processos cujos nomes comeam pela letra "k"(klogd, kswapd . . . );
# lsof -c k
Nos mostrar quais arquivos so abertos por processos cujo nome comea com bash:
# lsof -c bash
Nos mostrar quais os arquivos so abertos por processos cujos nomes comeam por "bash", mas exclui aqueles cujo proprietrio o usurio "aluno":
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
# lsof -u aluno
# lsof +p 1
# lsof +D / tmp
1 2
# ssh 192.168.2
Onde X o ip do amigo. Agora verique as conexes da porta 22, que a porta do ssh:
# lsof -i
:22
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
# ekiga
1 2 3
# ps -eo args , nice , pid | grep ekiga ekiga grep ekiga 126 5 14116
-e - mostra todos os processos -o - mostra campos especcos: args - comando nice - prioridade pid - identicao do processo Para alterar a prioridade do processo em execuo, utilize o comando renice:
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
<PID >
# renice -2
126 5
1 2 3
# ps -eo args , nice , pid | grep ekiga ekiga grep ekiga -2 126 5 1444
# killall ekiga
Para executar um processo com a prioridade especca diferente da padro utilize o comando nice:
Pgina 20
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
13 Manipulando Hardware e Dispositivos 13.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.1 Explorando o /dev . . . . . . . . . . . . . . . . . . . . . . . . 13.1.2 Dispositivos de armazenamento . . . . . . . . . . . . . . . . 3 3 3 8
13.1.3 O que uma partio? . . . . . . . . . . . . . . . . . . . . . 10 13.1.4 Criando Parties no HD . . . . . . . . . . . . . . . . . . . . 14 13.1.5 Particionamento com FDISK . . . . . . . . . . . . . . . . . . 14 13.1.6 Particionamento com CFDISK . . . . . . . . . . . . . . . . . 16 13.1.7 Aplicando um Filesystem . . . . . . . . . . . . . . . . . . . . 18 13.1.8 O que JOURNALING? . . . . . . . . . . . . . . . . . . . . . 20 13.1.9 Aplicando um FileSystem . . . . . . . . . . . . . . . . . . . . 21 13.1.10 Espao em Disco: df . . . . . . . . . . . . . . . . . . . . . . . 21 13.1.11 Denindo tamanho dos objetos: du . . . . . . . . . . . . . . 22 13.1.12 Devices, UUID e Labels . . . . . . . . . . . . . . . . . . . . . 23 13.1.13 Rotulando uma partio: . . . . . . . . . . . . . . . . . . . . 26 13.1.14 Usando os dispositivos de armazenamento . . . . . . . . . 28
Uma diferena marcante entre sistemas MS-Windows e Unix-like a forma de lidar com parties e dispositivos, como unidade de disquete e CD-ROM. Em sistemas MS-Windows, desde uma partio no disco rgido a um pen drive, o acesso efetuado utilizando a idia de "unidades"ou drives, como o drive C: ou A: ou at mesmo uma unidade de rede. Esse tipo de conceito faz com que o usurio nal no precise saber o que est por trs do funcionamento desses equipamentos, simplicando sua utilizao ao preo da perda do conhecimento.
4Linux www.4linux.com.br
Em sistemas como GNU/Linux existe o conceito de dispositivos; praticamente tudo na mquina tratado como sendo um dispositivo e pode ser acessado pelo seu respectivo arquivo localizado no diretrio /dev. Uma exceo a isso a interface de rede que tratada diretamente no nvel do kernel, no existindo um dispositivo (no /dev) associado a ela. O diretrio /dev consiste de um lesystem (sistema de arquivos) especial e pode ser de dois tipos: devfs ou udev. O primeiro mais antigo, tendo sido substitudo pelo segundo a partir do kernel 2.6.12. Uma das diferenas entre os dois que no devfs os arquivos de dispositivos so criados uma nica vez, dessa forma, o diretrio /dev contm os dispositivos para todos os hardwares suportados pelo Linux, no importando se eles existem de fato na mquina ou no. Com o udev os dispositivos so criados de acordo com a disponibilidade no sistema. Dessa forma, o diretrio contm apenas os arquivos de dispositivo para o hardware presentes na mquina.
O UDEV no "super popula o diretrio /dev do nosso sistema, alm de nos proporcionar um mtodo de congurao disponvel em /etc/udev/.
Explorando o diretrio /dev voc ir se deparar com alguns arquivos especiais, conhecidos como arquivos de dispositivos. Os tipos existentes so: bloco - utilizados para transferncia de dados para hardware de armazenamento de dados, como discos rgidos; caracter - conhecido tambm como "unbuffered" utilizado para comunicao com hardware como mice e terminais; fo - conhecido tambm como named pipe um dispositivo utilizado para realizar a comunicao entre dois processos independentes; socket - um dispositivo do tipo socket utilizado para criar um ponto de comunicao.
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
/dev/fdX Aqui o dispositivo equivalente ao drive de disquete, onde o x corresponde a qual driver. Caso voc tenha apenas um drive, esse drive vai ser o /dev/fd0. Se tiver 2 drives, o primeiro ser /dev/fd0 e o segundo /dev/fd1, e por a vai. /dev/ttyX Quando voc se loga no seu Linux, voc acaba de se logar nesse terminal. Ou seja, um terminal serve para voc se logar e usar uma shell (interpretador de comandos). O /dev/ttyX corresponde a cada terminal, onde X vai ser substitudo pelo nmero do terminal (so 63 ao todo). Voc tambm pode se deparar com /dev/ttypX. Neste caso para terminais acessados por telnet/ssh. /dev/ttySX Portas seriais! Na verso 2.2.x do kernel, estas portas seriais correspondem ao modem, ao mouse, e outras coisas ligadas nas COMs. Veja a tabela:
Agora se voc usa um kernel velho de verso anterior a 2.2.x, ao invs de ser /dev/ttySX, vai ser /dev/cuaX. Ou seja, voc ter os equivalentes como /dev/cua0, /dev/cua1, /dev/cua2 e /dev/cua3. E estes dispositivos /dev/cuaX so usados para determinar os modems. /dev/lpX Corresponde a porta da impressora ou porta de um servio paralelo. X o nmero correspondente a porta... 0 = LPT1 por exemplo. /dev/plipX Esse dispositivo corresponde a uma conexo de cabo paralelo. O X ser o nmero correspondente a porta, como no exemplo anterior. /dev/console Este um dispositivo especial, simbolizando os consoles (terminais no-grcos).
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
/dev/null Este um dispositivo nulo, ou seja, tudo que voc mandar ou se referir a ele ser descartado. Seguindo essa classicao, os dois tipos mais comuns de serem manipulados so os de bloco e de caracter; como exemplos deles temos os devices referentes a dispositivos IDE conectados mquina (/dev/hda1, por exemplo) e o dispositivo de acesso ao mouse (/dev/psaux, por exemplo). Outros dispositivos de bloco importantes so os SCSI utilizados no apenas por discos SCSI mas tambm por dispositivos USB e SATA, uma vez que so acessados utilizando essa emulao. O nome destes dispositivos do tipo /dev/sd[letra][nmero] e seguem a mesma lgica dos dispositivos IDE. Dessa forma, se houver um HD SATA conectado mquina e mais nenhum outro dispositivo que utilize emulao SCSI, sua localizao ser o device /dev/sda. Os nomes dos dispositivos e a maneira como so representados na hierarquia do diretrio /dev podem ser bastante confusos primeira vista. Com um pouco de prtica, a nomenclatura usada far sentido. Um mouse USB representado pelo arquivo /dev/input/mice, que pode ser traduzido como: dispositivo (DEV) de entrada (INPUT) do tipo apontador (MICE outro termo para rato, em ingls). Um mouse PS/2 segue uma nomenclatura um pouco mais complicada e representada pelo arquivo /dev/psaux, que pode ser interpretado como dispositivo auxiliar na porta PS. Para alguns dispositivos como o mouse, podemos realmente ver a interao com o arquivo que representa o dispositivo. No exemplo abaixo, usamos o comando cat para mostrar o contedo do arquivo de dispositivo de mouse (mexa o mouse depois de pressionar ENTER, aps os comandos abaixo): Para mouse USB:
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
As sadas, ilegveis para humanos, representam os dados que o sistema operacional GNU/Linux usa para avaliar a movimentao, posicionamento e o apertar de botes do mouse.
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
Outro exemplo importante so os dispositivos de armazenamento principais do seu computador: os discos rgidos. Existem trs tecnologias principais de discos rgidos: IDE, SATA e SCSI. Outro exemplo importante so os dispositivos de armazenamento principais do seu computador: os discos rgidos. Existem trs tecnologias principais de discos rgidos: IDE, SATA e SCSI. Os discos IDE ainda so maioria no mercado, mas a tecnologia vem dando lugar ao padro SATA. Tanto o padro IDE como o SATA so considerados econmicos e mais voltados para computadores pessoais ou estaes de trabalho. Os discos do padro SCSI usam uma tecnologia de acesso mais sosticada, so geralmente mais velozes que similares IDE e SATA, alm de mais robustos. So usados principalmente em servidores e mquinas de alto desempenho. Os dispositivos IDE so representados na hierarquia do diretrio /dev com um padro que comea com hd. O disco rgido conectado como mestre na controladora principal ser designado por hda. J o escravo, nesta mesma controladora, ser representado por hdb. Analogamente, temos hdc e hdd, respectivamente para os discos mestre e escravo conectados na controladora secundria. Por outro lado, o padro dos dispositivos SATA e SCSI comeam por sd. Assim sendo, temos sda para o primeiro dispositivo SATA ou SCSI, sdb para o segundo, e assim por diante. Uma controladora SCSI de 8 bits pode comportar at 7 dispositivos, alm da prpria controladora. Para as de 16 bits, o nmero mximo de dispositivos 15. Podemos vericar o contedo de um disco usando novamente o comando cat. Para inspecionar o contedo do primeiro disco rgido sata de um computador, podemos usar o comando abaixo:
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
A sada gerada no parece ter nenhum sentido. Os dados mostrados so aqueles dados gravados no seu disco. Contudo, esto em uma forma que compreensvel apenas pelo sistema operacional. Uma partio uma diviso lgica do seu disco rgido, criada por questes de organizao, convenincia, exibilidade ou segurana. Nos sistemas baseados em representao por letras, um disco rgido sata pode ser dividido, particionado de forma a ser visto no GNU/Linux em /dev/sda1 e /dev/sda2. Ou seja, a primeira partio do disco sda representada por /dev/sda1 e a segunda representada por /dev/sda2. Qualquer partio adicional seguir o mesmo padro.
Uma partio um espao do disco que se destina a receber um sistema de arquivos ou, em um caso particular que veremos adiante, outras parties.
Tipos de parties
Existem trs tipos possveis de parties: primria, estendida e lgica. Parties primrias Este tipo de partio contm um sistema de arquivos. Em um disco deve haver no mnimo uma e no mximo quatro parties primrias. Se existirem quatro parties primrias, nenhuma outra partio poder existir neste disco. As parties primrias so nomeadas da seguinte forma, caso o disco seja SATA:
/dev/sda1
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
/dev/sda2 /dev/sda3 /dev/sda4 Partio estendida Isso mesmo, no singular. S pode haver uma partio estendida em cada disco. Uma partio estendida um tipo especial de partio primria que no pode conter um sistema de arquivos. Ao invs disso, ela contm parties lgicas. Se existir uma partio estendida, ela toma o lugar de uma das parties primrias, podendo haver apenas trs. Se houver, por exemplo, trs parties no disco, sendo duas primrias e uma estendida, o esquema de nomes car assim: /dev/sda1 (Primria) /dev/sda2 (Primria) /dev/sda4 (Estendida) Parties lgicas Tambm chamadas de unidades lgicas, as parties lgicas residem dentro da partio estendida. As parties lgicas so numeradas a partir de 5. Em um disco contendo duas parties primrias, a partio estendida e 3 parties lgicas, o esquema seria o seguinte: /dev/sda1 (Primria) /dev/sda2 (Primria)
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
/dev/sda4 (Estendida) /dev/sda5 (Lgica) /dev/sda6 (Lgica) /dev/sda7 (Lgica) Note que, neste caso, no h uma partio nomeada como /dev/sda4, pois os numeros de 1 a 4 so reservados para parties primrias e para a partio estendida.
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
abaixo:
Para interromper a sada do comando, que pode ser bastante demorada, pressione a combinao de teclas Ctrl + c (mantenha a tecla Ctrl pressionada e pressione a letra c). Caso a tela do seu console continue a mostrar caracteres estranhos, digite reset. O ltimo comando mostra uma sada que seres humanos no conseguem entender. Elas representam a maneira como os dados foram armazenados em /dev/hda1. Para que o sistema operacional GNU/Linux apresente estes dados de uma forma mais legvel, necessrio solicitar ao sistema um processo de traduo. Este processo chamado de montagem de dispositivos. Ento para que a partio /dev/sda1 seja usada, necessrio montar esta partio em algum local e acess-lo. Este local, que um diretrio no sistema de arquivos, chamado de ponto de montagem. Podemos montar um dispositivo de armazenamento em qualquer diretrio do sistema de arquivos, contudo, existem algumas convenes: Dispositivos removveis devem ser montados em /media (em outras pocas em /mnt). Exemplos: Um cdrom convencional, representado por /dev/cdrom , /dev/hdc, /dev/sr0 deve ser montado em /media/cdrom; Um leitor de disquetes, representado por /dev/fd0, deve ser montado em /media/oppy; A grande maioria dos dispositivos de bloco USB, so reconhecidos como SCSI, e podem ser localizados em /dev/sda;
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
Um Hd Sata tambm pode ser encontrado em /dev/sda, isso pode variar, dependendo da porta SATA utilizada. No caso dos discos rgidos, uma partio montada diretamente na raiz do sistema de arquivos ou em um diretrio diretamente abaixo da raiz.
Adicione um novo dispositivo de armazenamento na sua mquina virtual. Desligue a mquina, v em conguraes - armazenamento - controladora SATA adicionar disco, crie um disco de 8GB, salve e inicie a mquina.
# fdisk [ dispositivo ]
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
Utilizando:
1 2 3 4 5 6
The number of cylinders for this disk is set to 14593. There is nothing wrong with that , but this is larger than 1 24 , and could in certain setups cause problems with : 1) software that runs at boot time ( e . g . , old versions of LILO ) 2) booting and partitioning software from other OSs Command ( m for help ) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Command ( m for help ) : m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o reate a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition s system id u change display / entry units v verify the partition table w write table to disk and exit
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Para criarmos uma nova partio devemos, antes, ver se temos espao disponvel para isso, ou seja, precisamos imprimir a tabela de parties utilizando a letra p. Se houver espao disponvel para a criao de uma nova partio basta pressionar a letra n e informar o tipo da partio (primria ou estendida) e seu tamanho. 1 crie uma partio:
1 2 3 4
Comando ( m para ajuda ) : n Comando - a o l p l gica (5 ou superior ) parti o prim ria (1 -4)
3 inico da partio:
1 2
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
Uma vez executado esse comando, a tela do cfdisk se abrir como mostrado na gura:
A utilizao do cfdisk bastante intuitiva, utilizando as setas para cima e para baixo voc navega pela listagem das parties e, utilizando as setas para a esquerda e direita, voc navega pelo menu na parte inferior da tela. Para criar uma nova partio basta selecionar na listagem de parties a linha que contm espao livre e entrar na opo New no menu inferior. Se ainda for possvel criar parties primrias surgir a pergunta pelo tipo da partio, caso contrrio, surgir a pergunta para especicar quanto espao deve ser destinado para essa partio. Crie duas parties primria de 1G cada. Aps realizar todas as alteraes, escolha, no menu inferior, a opo Write para salv-las. Uma pergunta pedindo que voc conrme as alteraes ir aparecer. Sua resposta deve ser sim ou no com todas as trs letras! Anal, voc o root e sabe o que est fazendo.
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
Criadas as parties precisamos aplicar um lesystem (sistema de arquivos) para que ela seja usvel pelo sistema operacional.
Observe que a partio criada ainda no aparece, isto porque a tabela de particionamento do seu hd no foi relida, para no ter que reiniciar, instale o programa parted:
# partprobe
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
Formatar o processo de preparar a mdia magntica, como discos rgidos e disquetes, para receber informao. Esse tipo de preparo de baixo nvel e consiste em desenhar as trilhas e setores na mdia em questo. Aplicar o lesystem signica criar uma estrutura lgica acima dessas trilhas e setores que permita organizar seus arquivos em uma estrutura de diretrios e subdiretrios. Apesar das diferenas tcnicas, os dois processos assemelham-se por apagar todo o contedo da partio. Portanto cuidado! Para saber os FileSystem suportados pelo seu kernel:
Vamos conhecer alguns tipos de FileSystem: ext2 - Um dos primeiros FileSystem do linux; ext3 - Evoluo do ext2, mas com a tcnica de Journal; ext4 - Evoluo do ext3, mais desempenho. reiserfs - timo sistema de arquivos para arquivos menores que 4Gb; reiser4 - Evoluo reiserfs, mais desempenho. xfs - Usado geralmente em banco de dados, tem suas vantagens com objetos muito grandes. iso9660 - O sistema de arquivos padro do CD-ROM.
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
msdos - Sistema de arquivos DOS. umsdos - Sistema de arquivos para suportar arquivos DOS e Linux coexistentes. vfat - Sistema de arquivos Windows (permite denio de nomes de arquivos com at 32 caracteres). nfs - Sistema de arquivos remoto NFS. proc - Sistema de arquivos Linux Process Information. jfs (Journaling File System) : criado pela IBM para uso em servidores corporativos, teve seu cdigo liberado. xfs : desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o cdigo fonte. swap - Em alguns lugares ele mencionado como um Sistema de Arquivos, mas SWAP um espao reservado para troca de dados com a memria RAM.
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
O FileSystem escolhido para ser utilizado no device deve ser suportado pelo kernel. Para consultar quais FileSystem so suportados pelo kernel em uso, basta consultar o arquivo /proc/lesystems. Caso o FileSystem desejado no esteja na lista, pode-se buscar por ele nos repositrios do GNU/Linux para instal-lo e ativ-lo como mdulo do Kernel (item que estudaremos mais tarde no Treinamento 451).
Preste sempre ateno em qual partio ir aplicar o lesystem, pois seus seus dados sero perdidos!
Dessa forma, podemos exemplicar a criao de um lesystem em um dispositivo utilizando o seguinte comando:
Pgina 20
Linux Essentials
4Linux www.4linux.com.br
1 2
# df -k < arquivo , diret rio ou parti o > # df -m < arquivo , diret rio ou parti o >
Aproxima para a unidade de medida mais prxima, mais legvel para o ser humano.
Linux Essentials
Pgina 21
4Linux www.4linux.com.br
Mostra em bytes:
Mostra em kilobytes:
Mostra em megabytes:
Pgina 22
Linux Essentials
4Linux www.4linux.com.br
esse tipo de problema utilizar o mtodo UUID - Universally Unique Identier ou o mtodo de Labels. Para descobrirmos o UUID de nossa partio podemos utilizar dois aplicativos: vol_id ou blkid
1 2
A opo -u do comando vol_id, nos imprime a UUID referente a uma determinada partio. J o comando blkid lista todos os dados relevantes sobre as parties do seu disco:
1 2 3 4 5 6 7
# blkid / dev / sda1 : UUID = " f541a97e - ef19 -4 e47 - b3 5 - b535a75c932a " TYPE = " ext3 " LABEL = " MAIN " / dev / sda3 : UUID = " 7 C444A56444A12F6 " TYPE = " ntfs " LABEL = " WIN " / dev / sda5 : TYPE = " swap " / dev / sda6 : UUID = " 69 ff8ed5 - c 9b -49 b6 - b21d -328 e9 243efa " TYPE = " ext3 " LABEL = " HOME " / dev / sda7 : UUID = " 2 c 7 d34 -5 c6e -45 4 -8 d4b -9 a8fa91 548d " TYPE = " ext3 " LABEL = " STORAGE " / dev / sda8 : UUID = " 489 B -5 A22 " TYPE = " vfat " LABEL = " CENTER "
1 2 3
# ls -l / dev / disk / by - uuid / lrwxrwxrwx 1 root root 1 2 9 - 3 - 6 1 :41 2 c 7 d34 -5 c6e -45 4 -8 d4b -9
Linux Essentials
Pgina 23
4Linux www.4linux.com.br
4 5 6 7
lrwxrwxrwx 1 root root 1 lrwxrwxrwx 1 root root 1 lrwxrwxrwx 1 root root 1 ../../ sda3 lrwxrwxrwx 1 root root 1
2 2 2 2
9 - 3 - 6 1 :41 489 B -5 A22 -> ../../ sda8 9 - 3 - 6 1 :41 69 ff8ed5 - c 9b -49 b6 - b21d 9 - 3 - 6 1 :41 7 C444A56444A12F6 -> 9 - 3 - 6 1 :41 f541a97e - ef19 -4 e47 - b3 5 -
Mas a resposta gerada no est to amigvel quando as dos outros comandos. Outra forma de visualizar o UUID e tambm o LABEL o tune2fs para parties com arquivios de sistema ext:
1 2 3 4 5 6 7 8 9 10
# tune2fs -l / dev / sda1 tune2fs 1.41.11 (14 - Mar -2 1 ) # aqui mostrado o nome do label : Filesystem volume name : Last mounted on : Filesystem UUID : Filesystem magic number : Filesystem revision # : Filesystem features : < none > / 7 c56c1d8 -7 e8c -4 b2 -8 a46 - a 332355faff xEF53 1 ( dynamic ) has_journal ext_attr resize_inode
dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
11 12 13 14 15 16 17 18 19 20 21
Filesystem flags : Default mount options : Filesystem state : Errors behavior : Filesystem OS type : Inode count : Block count : Reserved block count : Free blocks : Free inodes : First block :
signed_directory_hash ( none ) clean Continue Linux 18997248 75981568 3799 78 2 3163 3 18593199
Pgina 24
Linux Essentials
4Linux www.4linux.com.br
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
Block size : Fragment size : Reserved GDT blocks : Blocks per group : Fragments per group : Inodes per group : Inode blocks per group : Flex block group size : Filesystem created : Last mount time : Last write time : Mount count : Maximum mount count : # data da ltima checagem : Last checked : Check interval : Next check after : Lifetime writes : Reserved blocks uid : Reserved blocks gid : First inode : Inode size : Required extra isize : Desired extra isize : Journal inode : First orphan inode : Default directory hash : Directory Hash Seed : Journal backup : 256
4 96 4 96 1 5 32768 32768 8192 512 16 Sun Mar 27 12:24:11 2 11 Thu Jun 3 21:11: 7 2 11 Sat Jun 18 18:34:53 2 11 29 36 Sat Jun 18 18:34:53 2 11 15552 468 GB ( user root ) ( group root ) 11 28 28 8 262883 half_md4 192 bfa52 - e1 f -4 ef3 - ac2f - a1acbd575b5c inode blocks (6 months )
# total de montagem da parti o : # limite m ximo de montagens antes de checar o arquivo de sistema :
Linux Essentials
Pgina 25
4Linux www.4linux.com.br
Cheque a alterao:
Parties REISERFS:
Parties EXT2/EXT3/EXT4:
Parties NTFS:
Parties Fat16/Fat32:
Pgina 26
Linux Essentials
4Linux www.4linux.com.br
Parties JFS:
Parties XFS:
Parties SWAP:
# mount
Linux Essentials
Pgina 27
4Linux www.4linux.com.br
Para montar um dispositivo de armazenamento em seu ponto de montagem, o comando mount pode ser usado da seguinte forma:
# mount -t < tipo > -o < op es > < dispositivo > < ponto - de - montagem >
# man mount
Para que seja possvel acessar o contedo de algum dispositivo precisamos de quatro itens bsicos: Saber o nome do dispositivo que ser acessado; Saber o lesystem que ele est utilizando; Ter um ponto de montagem; Ter permisso de montagem. determine o lesystem: Uma vez determinado o nome do dispositivo, podemos executar o comando blkid com o nome do dispositivo, e determinar qual lesystem ele est utilizando.
Caso no obtenha resposta porque a partio no tem um arquivo de sistema. determine o ponto de montagem:
Pgina 28
Linux Essentials
4Linux www.4linux.com.br
Se no existir um ponto de montagem, basta criar um diretrio vazio no local apropriado, em geral no /media ou /mnt e executar o comando para mont-lo. Vamos criar uma imagem ISO para simular um arquivo de cdrom:
genisoimage o programa que cria as imagens em diversos protocolos; -R o protocolo para o tipo de extenso Rock Ridge, comumente usado no Linux; -J o protocolo Joliet comumente usado no Windows; -o indica o nome do arquivo de sada; -l permite mais de 31 caracteres para o nome do arquivo, pode ser que o MSDOS no consiga enxergar estes caracteres, j que ele trabalha com um protocolo 8.3; -V especica uma identicao para o CD (LABEL); -v modo verbose; -pad este parmetro necessrio em muitos OSs, inclusive no Linux, ele acionado para evitar erros de entrada e sada; Vamos criar um arquivo ISO, ou seja, o tipo de arquivo para CD-ROM. Para isso utilizaremos o arquivo dd pra gerar um arquivo e genisoimage para aplicar o sistema de arquivo ISO9660:
Linux Essentials
Pgina 29
4Linux www.4linux.com.br
if = input le - origem of=output le - destino bs= block size - tamanho do bloco count= count - contagem de blocos Aplicando o sistema de arquivo ISO9660:
Montando a partio:
A opo -o loop utilizada quando se quer montar um arquivo ISO que est localizado no HD. Para desmontar um dispositivo, o comando usado umount. Neste caso possvel usar como parmetro o ponto de montagem ou o prprio dispositivo. Visualizando que est montado:
# mount
OU visualizando o arquivo /etc/mtab que lista os sistemas de arquivos montados atualmente no sistema. Sua funo idntica ao /proc/mounts:
Pgina 30
Linux Essentials
4Linux www.4linux.com.br
Cada linha representa um sistema de arquivo correntemente montado e contm os seguintes campos (da esquerda para a direita): A especicao do dispositivo O ponto de montagem O tipo de sistema de arquivo Se o sistema de arquivo est montado como somente-leitura (ro, read-only) ou leitura e gravao (rw, read-write), junto s outras opes do ponto de montagem Dois campos no-usados contendo zeros OU visualizando o arquivo /proc/mounts para podermos ver o status de todos os sistemas de arquivo montados:
# df
Desmontando: Como usurio aluno abra outro terminale acesse o diretrio /media/cdrom:
$ cd / media / cdrom
Linux Essentials
Pgina 31
4Linux www.4linux.com.br
ou de forma equivalente:
Verique que no foi possvel, isto porque existe algum acessando o diretrio, para descobrir quais os processos que esto utilizando o /media/cdrom faa:
-i : pede conrmao antes de matar um processo (usado junto com a opo -k). -k : mata os processos que esto acessando o arquivo/diretrio especicado. -u : identica o usurio de cada processo. Ou seja:
1 2
A letra que aparece logo aps o PID representa o tipo de acesso, onde podemos ter, por exemplo: c : diretrio atual (a partir do qual o processo foi inicializado). e : arquivo sendo executado pelo processo. r : diretrio raiz do sistema (ponto de inicializao do processo).
Pgina 32
Linux Essentials
4Linux www.4linux.com.br
Verique que o usurio aluno est acessando o diretrio e por isso no possvel desmontar o volume, aps descobrir, mate o processo:
Linux Essentials
Pgina 33
455
Linux Essentials
www.4linux.com.br
Contedo
14 Gerenciamento Avanado de Parties 14.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1.1 Migrando de Filesystem ext sem perder dados: . . . . . . . . 14.1.2 Gerenciar parties SWAP . . . . . . . . . . . . . . . . . . . 14.1.3 Montagem automtica de Filesystem no boot . . . . . . . . . 3 3 3 6 8
14.1.4 Mostrar o uso de memria RAM: free . . . . . . . . . . . . . 10 14.1.5 Introduo a parties criptografadas . . . . . . . . . . . . . 11 14.1.6 Criar parties criptografadas . . . . . . . . . . . . . . . . . . 12 14.1.7 Criar mapeamentos para partioes LUKS . . . . . . . . . . . 13 14.1.8 Aplicar sistema de arquivos e Montagem . . . . . . . . . . . 14 14.1.9 Montagem manual de parties criptografas . . . . . . . . . 16 14.1.10 Congurar automount para parties comuns . . . . . . . . . 17 14.1.11 Criar automount para parties criptografadas . . . . . . . . 18
# mkdir / teste
4Linux www.4linux.com.br
# cp -r / etc /* / teste
Desmontar a partio:
# umount / teste
Montando a partio:
# mount
Desmontar dispositivo:
# umount / teste
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
Vamos agora converter de ext3 para ext4, sem perder os dados: Debian:
CentOS:
# mount
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
1 2 3 4
Desmontar dispositivo:
# umount / teste
Filesystems podem ser grandes aliados na prova, principalmente no tpico migrao de lesystems. Lembre-se da migrao mais comum de lesystems: de ext2 para ext3
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
sendo utilizados para a partio Swap e libera a memria RAM para continuar carregando os dados necessrios pelo programa. Quando os dados movidos para a partio Swap so solicitados, o GNU/Linux move os dados da partio Swap para a Memria. Por este motivo a partio Swap tambm chamada de rea de Troca ou memria virtual. A velocidade em que os dados so movimentados da memria RAM para a partio muito alta. Vamos aproveitar a partio criada anteriormente e vamos aplicar o Swap ela:
ou
# swapon -s
O comando swap tem a opo -p que habilita a prioridade: -p, priority <n> Quanto maior o nmero maior a prioridade que pode variar entre 0 e 32767. Para desabilitar a partio swap:
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
Ou:
# swapon -s
1 2 3 4 5 6 7
< file system > < mount point > < type > < options > < dump > < pass > proc / dev / sda1 / dev / sda2 / dev / sda5 / dev / sda6 / dev / sda7 / tmp / / var / proc / boot / usr ext3 ext3 ext3 ext3 proc defaults defaults ext3 defaults defaults defaults 2 1 2 2 2 defaults , errors = remount - ro
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
8 9 10 11 12
defaults 2
UUID = be35a7 9 - c787 -4198 - a9 3 - d5fdc8 ab2f8 / teste defaults # exemplo LABEL : LABEL = SWAP none swap sw
As informaes que devem estar nesse arquivo, de acordo com o nmero da coluna, so: Localizao do lesystem, em geral o device ou endereo de rede; Ponto de montagem; Tipo do lesystem: ext3, reiserfs, xfs, etc; Opes de montagem: defaults = rw, suid, dev, exec, auto, nouser e async. Ver man mount; Aceita os valores 0 ou 1 e informa que, havendo um sistema de backup (dump) congurado, dever ser feito o seu backup; Aceita os valores de 0 a 2 e informa que dever ser realizada a checagem (pass) de integridade do sistema de arquivos. O valor zero desativa a funcionalidade, o valor 1 deve ser especicado apenas para o / e o valor 2 deve ser especicado para quaisquer outros sistemas de arquivos. Sendo assim, o fstab armazena as informaes dos dispositivos comumente acessados, como as parties do sistema, discos removveis e alguns dispositivos USB. Entretanto no mostra informao alguma a respeito de quais dispositivos esto montados neste exato momento.
Essa informao pode ser obtida no arquivo /etc/mtab ou no /proc/mounts. Ambos os arquivos so uma tabela atualizada em tempo real e que mostra quais
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
# free
Mais detalhes:
# free -m
1 2 3 4
total used free shared buffers cached Mem : 2 66856 95 944 1115912 Swap : 57 268 57 268 3892 342612 -/+ buffers / cache : 569412 1497444
Informaes de swap:
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
1 2
1 2 3
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8 9
# cryptsetup -y -- cipher aes - cbc - essiv : sha256 -- key - size 256 luksFormat / dev / sdb1 WARNING ! ================================================== This will overwrite data on / dev / sdc1 irrevocably . Are you sure ? ( Type uppercase yes ) : YES ( Digite YES em mai scula ) Enter LUKS passphrase : ( Digite uma frase secreta ) Verify passphrase : ( Repita a frase secreta )
Descrio dos parmetros: -y ou verify-passphrase: Faz a checagem da senha digitada; cipher: Dene qual o modo de criptograa que o dispositivo vai usar; key-size: Dene em bits o tamanho da chave de criptograa; LuksFormat: Indica que o dispositivo vai utilizar o padro LUKS.
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
1 2 3
Agora que aplicamos o padro LUKS na partio, podemos criar um mapeamento Device-Mapper atravs do opo luksOpen. Sera solicitada a frase secreta para continuar:
1 2
# cryptsetup luksOpen / dev / sdc1 cryptfs Enter passphrase for / dev / sdc1 : ( Digite uma frase secreta )
Use o comando blkid para identicar o nossa partio como um dispositivo do tipo crypt_LUKS.
1 2
# blkid | grep sdc1 / dev / sdc1 : UUID = " fd e5672 - b321 -4724 -8285 -3 a3 962af 74 " TYPE = " crypto_LUKS "
Com a opo luksOpen nosso dispositivo /dev/sdc1 foi mapeado para /dev/mapper/cryptfs, e a partir de agora s pode ser acessado por por este caminho!
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
1 2
# mkdir / mnt / seguro # mount -t ext4 / dev / mapper / cryptfs / mnt / seguro
O que preciso para montar parties criptografadas durante o Boot? Quando estamos manipulando parties criptografadas no basta apenas acrescentar a partio ao /etc/fstab, preciso congurar mais um arquivo, o /etc/crypttab.
1 2 3
# vim / etc / crypttab < target name > cryptfs < source device > / dev / sdc1 < key file > none < options > luks
Descrio dos parmetros: <target name>: Dene o nome que a partio sera mapeada; <source device>: Dene o nome real da partio; <key le>: Dene a frase secreta, use none para nenhum; <options>: Ativa o dispositvo com extenses LUKS.
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
1 2
# vim / etc / fstab / dev / mapper / cryptfs / mnt / seguro ext4 defaults 2
Testando o funcionamento: Para testar o funcionamento sem precisar reiniciar desmonte a partio:
1 2 3 4 5
# / etc / init . d / cryptdisks start Starting remaining crypto disks ... cryptfs ( starting ) ... Unlocking the disk / dev / sdc1 ( cryptfs ) Enter passphrase : ( Digite uma frase secreta ) cryptfs ( started ) ... done
Toda vez que o computador for iniciado ou este disco montando em outras maquinas, sera solicitada a frase secreta!
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
A ativao automtica durante o boot em um servidor no uma boa pratica de administrao, pois acaba atrasando a inicializao do servios. A soluo alterar a opo NO para YES da diretiva CRYPTDISKS_ENABLE no arquivo /etc/default/cryptdisks:
1 2
Para ativar de forma manual s usar o comando cryptdisks_start e o nome mapeado da partio. Mas ainda no vai funcionar porque como desativamos o cryptdisks do boot, o modulo dm_crypt no sera carregado. Este mdulo responsvel em fazer o mapeamento de dispositivos criptografados. Vamos resolver este problema ativando o mdulo no boot com o comando:
1 2 3 4 5
# cryptdisks_start cryptfs Starting crypto disk ... cryptfs ( starting ) ... Unlocking the disk / dev / sdc1 ( cryptfs ) Enter passphrase : ( Digite uma frase secreta ) cryptfs ( started ) ... done
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
Esta pratica pode ser feita atravs do pacote autofs5, usado para controlar a operao dos "daemons"de auto montagem. Os "daemons"de auto montagem automaticamente montam sistemas de arquivos quando eles so usados e desmontados aps um perodo de inatividade. Para comear instale o pacote autofs5
Sera criado o arquivo /etc/auto.master que consultado para congurar o automount e os pontos de montagem, gerenciados quando o script autofs invocado, ou o programa de montagem quando executado de forma automtica. Para testar o automount comece criando uma congurao para o ponto de montagem /dexter/montagem/banco:
1 2
# vim / etc / auto . master / dexter / montagem / etc / auto . banco -- timeout =1
Descrio das opes: /dexter/montagem: Dene em qual diretrio sera executado o automout; /etc/auto.banco: Qual arquivo sera congurado as opes de montagem; timeout: Tempo de desmontagem automtica. Executado quando nenhum processo ou usurio estiver usando o diretrio. Agora vamos criar o arquivo com as opes de montagem:
1 2
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
Descrio das opes: banco: Dene qual diretrio sera montado em /dexter/montagem de forma automtica; -fstype: Dene as opo de montagem da partio; :/dev/sdc1: Dene o dispositivo que sera montado. Para testar remova a entrada no /etc/fstab e reinicie o servio autofs.
1 2
Para testar acesse o diretrio /dexter/montagem/bancoo e use o comando df para listar a partio montada de forma automtica:
1 2
1 2
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
/mnt: Dene em qual diretrio sera executado o automout; /etc/auto.crypt: Qual arquivo sera congurado as opes de montagem; timeout: Tempo de desmontagem automtica. Executado quando nenhum processo ou usurio estiver usando o diretrio. Agora vamos criar o arquivo com as opes de montagem:
1 2
# vim / etc / auto . crypt seguro - fstype = ext4 , rw :/ dev / mapper / cryptfs
Descrio das opes: seguro: Dene qual diretrio sera montado em /media de forma automtica; -fstype: Dene as opo de montagem da partio; :/dev/mapper/cryptfs: Dene a partio criptograda que sera montada. Para testar remova a entrada no /etc/fstab e reinicie o servio autofs.
1 2 3
# vim / etc / fstab # #/ dev / mapper / cryptfs defaults # / etc / init . d / autofs restart / mnt / seguro ext4 noauto ,
Para testar acesse o diretrio /mnt/seguro e use o comando df para listar a partio montada de forma automtica:
1 2
Linux Essentials
Pgina 19
455
Linux Essentials
www.4linux.com.br
Contedo
Inicializao do Sistema 15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.1 System V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.2 Nveis de Execuo - System V . . . . . . . . . . . . . . . . . 15.1.3 O que faz um script de inicializao? . . . . . . . . . . . . . . 2 3 3 4 7
Inicializao do Sistema
15.1 Introduo Terica
Para que possamos entender a base de funcionamento do sistema de inicializao padro System V, precisamos antes conhecer um tipo especial de arquivos: os links. Um Link serve para termos o mesmo arquivo em diversos lugares, sem a necessidade de cpias. Isso faz com que voc tenha a maior quantidade de arquivos em vrios lugares e ocupando menos bits de metadados ao sistema de arquivos. O diretrio /etc/init.d por exemplo, guarda os scripts para iniciar, e parar determinados servios. E dentro do diretrio rcN.d (a letra N correspondente ao nvel de inicializao, veremos a seguir) que cam os links dos scripts que esto dentro de /etc/init.d para poder determinar qual script ser executado primeiro. Os links nos permitem fazer modicaes nos arquivos originais, assim no precisamos alterar o arquivo original e sua cpia.
15.1.1 System V
O Padro System V dene, entre outras coisas, como deve ser a inicializao dos servios do sistema. Ele trabalha com nveis de inicializao, os chamados runlevels, havendo oito deles que sero descritos posteriormente. A inicializao do sistema se inicia com um boot loader no qual o usurio escolhe qual sistema operacional ele ir iniciar na mquina. Uma vez escolhido, o boot loader
4Linux www.4linux.com.br
inicia o carregamento do kernel na memria RAM e passa o controle do sistema a ele. Uma vez que o kernel j esteja controlando a mquina, iniciada a fase de subir os servios necessrios para a utilizao do sistema. Este ltimo estgio que trataremos aqui.
1 2
# runlevel N 2
Onde:
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
N - nvel anterior, quando N signica que no houve mudana de nvel desde a inicializao. 2 - nvel atual. Para trocar de nvel:
# init 3
1 2
# runlevel 2 3
# init 1
Verique que ao trocar para o modo mono-usurio executado o nvel S, servios essenciais:
1 2
# runlevel 1 S
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
A maioria das distribuies Linux utilizam o padro System V para gerenciamento dos Daemons e servios que devem ou no ser carregados nos diferentes nveis de execuo. Para uma melhor compreenso, interessante que analisemos o arquivo /etc/inittab para ver como esse gerenciamento funciona.
Os primeiros servios a serem inicializados so aqueles do nvel S que carregam por exemplo o hostname da mquina (servio essencial). Aps esse nvel ter sido concludo passa-se para o nvel seguinte denido como padro do sistema no arquivo /etc/inittab. Que no caso do Debian o nvel 2, e no CentOS o nvel 5. Neste nvel so iniciados os outros servios no essenciais, como servidores de SSH, web, etc. O sistema System V consiste em agrupar todos os scripts de inicializao do sistema em um nico diretrio /etc/init.d e criar links simblicos para esses scripts dentro dos diretrios dos runlevels apropriados. Cada runlevel possui o seu diretrio, sendo eles localizados no /etc sobre o nome rcN.d, no qual o caracter N representa o nmero do runlevel. Nesses diretrios haver links para os scripts de inicializao e/ou nalizao dos servios e o nome desses links indicar se o servio deve ser iniciado ou nalizado e qual ser a ordem que ser seguida para isso. Por exemplo, se um servio comea por S18 como o caso do ssh cujo nome dentro do rc2.d S18ssh; ele ser o servio a ser iniciado aps todos os servios com nmero menor que o dele serem iniciados. Por exemplo, ele ser iniciado aps o servio portmap cujo nome do link S14portmap, caso exista outro servio com o mesmo nmero de inicializao do ssh, como o agendador de tarefas at cujo nome do link S18atd, a ordem de inicializao se dar pela ordem alfabtica, ou seja o S18atd ser executado antes de S18ssh.
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
No caso de um desses links ter seu nome iniciando pela letra K esse servio ser nalizado quando o runlevel correspondente for iniciado. Dessa forma se existir um link chamado K01atd no runlevel 0 (/etc/rc0.d), quando mudarmos para esse runlevel, se o atd estiver ativo ele ser o um dos primeiros a ser desativado.
No Debian 6.0 todos os scripts de inicializao "/etc/init.d/"foram convertidos para ordenar a sequncia de boot baseado em um padro especicado na Linux Standard
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
Base (LSB). Com a adeso deste padro agora existe um cabealho em todos os scripts de inicializao onde so indicadas as dependncias que ele necessita para poder ser executado, fazendo com que o script inicie s depois de tais dependncias. Esta funcionalidade ativada pelo comando insserv que ordena os scripts init.d baseando-se nas suas dependncias declaradas nos cabealhos. Ou seja, para adicionar/remover servios da inicializao no Debian 6.0 no se usa mais o "updaterc.d"e sim o "insserv"! Vamos usar o comando head que mostra por padro as 10 primeiras linhas e vericar o cabealho de inicializao do ssh:
1 2 3 4 5 6 7 8 9 10 11
# head / etc / init . d / ssh #! / bin / sh # ## BEGIN INIT INFO # Provides : # Required - Start : # Required - Stop : # Default - Start : # Default - Stop : # Short - Description : # ## END INIT INFO OpenBSD Secure Shell server sshd $remote_fs $remote_fs 2 3 4 5 $syslog $syslog
O comando head, por padro, exibe as 10 primeiras linhas de um arquivo. A opo mais usada : - Provides: Nome do script - Required-Start: Deni scripts que devem ser inicializados antes de carregar este script.
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
- Required-Stop: Deni scripts que devem ser parados, antes de descarregar este script. - Should-Start: Dene que ir rodar s depois que os servios declarados forem inicializados. - Should-Stop: Deni que ir parar s depois que os servios declarados forem parados. - Default-Start: Nveis para carregar o servio - Default-Stop: Nveis para descarregar o servio - Short-Description: Descrio rpido do script - Description: Descrio mais detalhada do script Valores genricos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
$local_fs Todos os arquivos locais de sistema s o montados .. $network Baixo n vel de rede . ( placa de rede ; PCMCIA ) $named Daemons que podem fornecer resolu o de nomes , como por exemplo : DNS , NIS , LDAP . $portmap Daemon que fornece mapeamento de portas . $remote_fs Todos arquivos de sistema est o montados . $syslog Logs do sistema operacional . $time Daemons utilizados para definir a hora do sistema , como ntpdate , ntp , rdate .
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
15
$all
Suportado pelo insserv para iniciar depois que todos os outros scripts forem carregados na sequncia de inicializao. Somente trabalha para inicializar, para descarregar no possvel, pois nenhum script depende de todos.
1 2 3 4 5 6 7 8
# insserv - rv ssh insserv : remove service / etc / init . d /../ rc2 . d / S18ssh insserv : remove service / etc / init . d /../ rc3 . d / S18ssh insserv : remove service / etc / init . d /../ rc4 . d / S18ssh insserv : remove service / etc / init . d /../ rc5 . d / S18ssh insserv : creating . depend . boot insserv : creating . depend . start insserv : creating . depend . stop
1 2 3 4 5
# insserv -v ssh insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc2 . d / S18ssh insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc3 . d / S18ssh insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc4 . d / S18ssh insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc5 . d / S18ssh
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
6 7 8
insserv : creating . depend . boot insserv : creating . depend . start insserv : creating . depend . stop
E de onde o insserv tira a prioridade de rodar os scripts? Exemplo do ssh ("/etc/init.d/../rc2.d/S18ssh") iniciando com prioridade 18? A que est a grande novidade, voc no precisar mais editar essa prioridade na mo, o insserv vai calcular a prioridade de acordo com o tal cabealho vericando quais os scripts que sero iniciados antes para que o script seja executado. red hat
Red Hat: Nvel 0 desliga o sistema; Nvel 1 modo mono usurio; Nvel 2 multiusurio, sem NFS; Nvel 3 multi-usurio, com NFS, sem X; Nvel 4 no usado; Nvel 5 multi-usurio com NFS e X; Nvel 6 reinicializar o sistema;
No Red Hat os servios cam em /etc/rc.d/init.d, todos os arquivos aqui tm um hard link para /etc/init.d. Ento tanto faz mudar em um como em outro, ambos sero atualizados. Vamos olhar o cabealho de inicializao do sshd do CentOS:
1 2 3 4 5 6 7 8 9 10
# head -n 15 / etc / rc . d / init . d / sshd # !/ bin / bash # # Init file for OpenSSH server daemon # # chkconfig : 2345 55 25 # description : OpenSSH server daemon # # processname : sshd # config : / etc / ssh / ssh_host_key
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
11 12 13 14
# config : / etc / ssh / ssh_host_key . pub # config : / etc / ssh / ssh_random_seed # config : / etc / ssh / sshd_config # pidfile : / var / run / sshd . pid
Onde:
# chkconfig :
<Nveis de execuo para inicializao> 2345 <ordem iniciar S> S55 <ordem parar K> K25 - description: Descrio - cong Arquivos de congurao. - pidle Localizao do PID do processo.
# chkconfig -- list
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
Ou:
Nota: Estas linhas garantem que o servio do ssh esteja desabilitado no prximo reboot. Para desligar o mesmo servio sem precisar reiniciar a mquina use o comando:
Se no desligares o servio com chkcong, ele ser reinicializado da prxima vez que o computador for reiniciado, mesmo que o tenhas parado atravs do script apropriado (notar que stop um argumento de entrada para o mesmo script). Por isso para parar imediatamente e desativar permanentemente o servio deves usar:
Ou:
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
# chkconfig sshd on
Ou:
Pgina 14
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
Introduo ao Upstart 0.1 0.2 0.3 0.4 0.5 Introduo ao Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diretrios e arquivos de congurao . . . . . . . . . . . . . . . . . . . Como possvel chamar um evento? . . . . . . . . . . . . . . . . . . . Personalizar novos scripts . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 4 6 7 9 9
0.10 Gerenciando servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 0.11 Personalizar novos scripts . . . . . . . . . . . . . . . . . . . . . . . . . 16 0.12 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 0.13 Testando a montagem automatica . . . . . . . . . . . . . . . . . . . . . 19
4Linux www.4linux.com.br
0.2 Instalao
com o init ocorre por meio do D-Bus. O Upstart comparado ao SysV init mais rpido porque consegue executar os scripts de inicializao de forma paralela, dependendo que eventos sejam denidos na incializao do sistema. Uma outra vantagem que o Upstart pode monitorar um servio, e em caso de interrupo o mesmo inicializado de forma automtica.
0.2 Instalao
A instalao dispensada dependendo da distribuio. Em distribuies baseadas em Debian possvel usar o comando:
Para ver na prtica o Upstart vamos utilizar a distribuio CentOS 6 Mas quais distribuies usam o Upstart? Ubuntu 9.10: Upstart nativo; Fedora 9: Substituiu o sysvinit pelo Upstart apartir dessa verso; Fedora 15: O Upstart foi substitudo por Systemd nesta verso; RHEL 6 e CentOS 6: Inclui o Upstart; Debian: Planos para migrar para o Systemd em verses futuras; OpenSUSE: Incluiu o Upstart na verso 11,3 mas no como padro; NixOS: Utilizando o Upstart como padro;
Linux Essentials
Pgina 3
4Linux www.4linux.com.br
Maemo 5: Upstart substitui o sysvinit no sistema operacional para Internet Google OS: Utiliza o Upstart; O Upstart ainda usado no webOS da HP para o Palm Pre, Palm Pixi (ambos antes de a Palm foi comprada pela HP), HP Veer, e HP Pre 3 telefones inteligentes, juntamente com o tablet TouchPad HP.
# ls -l / etc / init
O diretrio /etc/init possui arquivos de servios do Upstart (arquivos que denem os tarefas que o daemon Upstart init executado). Inicialmente, este diretrio preenchido pelo pacote de software Upstart. Em algumas verses do Ubuntu o nome do diretrio /etc/event.d. Quando voc instala novos servios, sero acrescentados novos arquivos neste diretrio para controlar o servio instalado, substituindo os arquivos que foram previamente colocados no diretrios /etc/rc.d/rc* e /etc/rc.d/init.d. Para aprender um pouco mais sobre o Upstart abra um arquivo .conf do diretrio /etc/init.
1 2 3 4
# vim / etc / init / control - alt - delete . conf # control - alt - delete - emergency keypress handling # This task is run whenever the Control - Alt - Delete key combination is # pressed . Usually used to shut down the machine .
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
5 6
start on control - alt - delete exec / sbin / shutdown -r now " Control - Alt - Delete pressed "
Em nosso exemplo temos o arquivo que congura o evento CTRL + AL +DEL. Acompanhe a seguir a descrio das linhas:
start on: Dene em qual evento o arquivo sera lido. Em nosso exemplo toda vez que for acionado a combinao de teclas CTRL + ALT +DEL, a prxima linha sera lida; exec: Indica qual comando ou script sera executado.
Devido a migrao do Sysvinit para o Upstart, s possvel desativar o CTRL + ALT + DEL no arquivo /etc/init/control-alt-delete.conf e no mais no /etc/init/inittab! O que um evento? Um evento um argumento que envolve o carregamento do sistema, a montagem do sistema de arquivos, combinao de teclas, execuo de um ou mais runlevels, a execuo de um script em /etc/init.d ou at mesmo quando uma interfaces de rede estiver UP. Exemplos:
carregamento do sistema: start on startup montagem do sistema de arquivos: start on lesystem combinao de teclas: start on control-alt-delete execuo nos runlevels 2 a 5: start on runlevel [2345] execuo nos runlevels S, 1, 0 e 6: stop on runlevel [S016] execuo de um script em /etc/init.d: start on started messagebus
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
interfaces de rede estiver UP: start on net-device-up IFACE=lo Para combinar dois eventos ao mesmo tempo use and entre as opes: start on lesystem and net-device-up IFACE=lo
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# initctl list rc stop / waiting tty (/ dev / tty3 ) start / running , process 1662 tty (/ dev / tty2 ) start / running , process 166 tty (/ dev / tty6 ) start / running , process 1674 tty (/ dev / tty5 ) start / running , process 1666 tty (/ dev / tty4 ) start / running , process 1664 plymouth - shutdown stop / waiting control - alt - delete stop / waiting rcS - emergency stop / waiting readahead - collector stop / waiting kexec - disable stop / waiting rcS stop / waiting prefdm start / running , process 3997
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
15 16 17 18 19 20 21
init - system - dbus stop / waiting readahead stop / waiting splash - manager stop / waiting start - ttys stop / waiting readahead - disable - services stop / waiting rcS - sulogin stop / waiting serial stop / waiting
1 2 3 4 5 6
# vim / root / script # !/ bin / bash while true do date >> / root / data . txt sleep 3 done
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
1 2 3 4 5 6
# vim / etc / init / date . conf start on runlevel [2345] stop on runlevel [ S 16 ] respawn exec / root / script
Descrio das opes: start on runlevel [2345]: Inicia a execuo do script nos runlevels 2 a 5 stop on runlevel [S016]: Para a execuo do script nos runlevels S, 1, 0 e 6 respawn: Signica que o processo ser reiniciado se terminar inesperadamente. exec: Indica qual comando ou script sera executado. Agora inici o script atravs do comando start
1 2
O resultado o comando o estado do script e seu PID. Mostre o estado do script atravs do comando status
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
1 2
1 2
Agora para testar a opo respawn inicie o script date e use o comando kill -9 PID do mesmo. Ao usar comando status o script volta a se executado de forma automtica.
1 2
1 2 3
Linux Essentials
Pgina 9
0.7 Instalao
4Linux www.4linux.com.br
e restaurao do estado do sistema, alem de manter montagem e pontos de automount sobre demanda. Quais so as vantagens em migrar para o Systemd?
Boot mais rpido: O Systemd consegue iniciar menos processos no total e iniciar mais processos em paralelo durante o boot; Montagem sobre demanda: O Systemd usa o automont para controlar a montagem do sistema de arquivos; Grupo de processos: O uso de cgroups agrupa processos pai, lhos e netos em um nico grupo, facilitando o gerenciamento de recursos em memoria e processamento;
0.7 Instalao
A instalao dispensada dependendo da distribuio. Em distribuies baseadas em Debian possvel usar o comando:
i386: i386-DVD.iso
http://fedora.c3sl.ufpr.br/linux/releases/15/Fedora/i386/iso/Fedora-15-
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
x86_64: http://fedora.c3sl.ufpr.br/linux/releases/15/Fedora/x86_64/iso/Fedora15-x86_64-DVD.iso
1 2
# ls -l / sbin / init lrwxrwxrwx . 1 root root 14 Abr 24 16:52 / sbin / init -> ../ bin / systemd
O sistema cria um link de nome init para carregar durante a inicializao, mas na verdade que carregado o systemd.
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
A unidade de servio refere-se a um daemon (servio) que o systemd pode controlar, incluindo scripts controlados nativamente pelo Systemd e aqueles controlados por Systemd via scripts Sysvinit. Por exemplo, o Systemd controla o daemon ntpd nativamente atravs da unidade de servio ntpd.service. Vamos analisar o contedo do arquivo para aprender um pouco mais
1 2 3 4 5 6 7 8
# cat / usr / lib / system / ntpd . service [ Unit ] Description = Network Time Service After = syslog . target ntpdate . service [ Service ] EnvironmentFile =/ etc / sysconfig / ntpd ExecStart =/ usr / sbin / ntpd -n -u ntp : ntp $OPTIONS
O Arquivo possu duas sessoes (stanza): Unit: Indica a descrio da unidade do servio (Description) e After dene as suas dependncias. Service: Indica o que sera executado (ExecStart) quando a unidade de servio ntpd.service for carregado no boot ou por outro comando. A opo EnvironmentFile dene as conguraes para o servio, como por exemplo a variavel OPTIONS que sera denida na opo ExecStart.
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
1 2 3 4 5
# systemctl status ntpd . service ntpd . service - Network Time Service Loaded : loaded (/ lib / systemd / system / ntpd . service ) Active : inactive ( dead ) CGroup : name = systemd :/ system / ntpd . service
O comando informa a descrio, qual o caminho do arquivo de congurao, se o servio esta ativo e quais so os grupos de processos em Cgroup. Para iniciar o servio use a opo start:
1 2 3 4 5 6 7 8
# systemctl status ntpd . service ntpd . service - Network Time Service Loaded : loaded (/ lib / systemd / system / ntpd . service ) Active : active ( running ) since Tue , 24 Apr 2 12 18:32:52 - 3 57 s ago Main PID : 24647 ( ntpd ) CGroup : name = systemd :/ system / ntpd . service 24647 / usr / sbin / ntpd -n -u ntp : ntp -g 24648 / usr / sbin / ntpd -n -u ntp : ntp -g ;
O que temos de novo o estado (running) a data e hora que foi ativado e o PID Para reiniciar o servio use a opo restart:
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
1 2 3 4 5
# systemctl disable ntpd . service rm / etc / systemd / system / multi - user . target . wants / ntpd . service # systemctl enable ntpd . service ln -s / lib / systemd / system / ntpd . service / etc / systemd / system / multi user . target . wants / ntpd . service
Mas em qual runlevel o servio do ntpd sera iniciado? O Systemd dispensa o conceito de runlevels, mas mantm uma compatibilidade atravs dos diretrios /lib/systemd/system/runlevel*.target:
1 2 3 4 5 6 7 8
# ls -l / lib / systemd / system / runlevel *. target / lib / systemd / system / runlevel . target -> poweroff . target / lib / systemd / system / runlevel1 . target -> rescue . target / lib / systemd / system / runlevel2 . target -> multi - user . target / lib / systemd / system / runlevel3 . target -> multi - user . target / lib / systemd / system / runlevel4 . target -> multi - user . target / lib / systemd / system / runlevel5 . target -> graphical . target / lib / systemd / system / runlevel6 . target -> reboot . target
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
Isso quer dizer que quando um servio ativado ele ganha um link simblico no diretrio /etc/systemd/system/multi-user.target.wants/, como foi o caso do ntpd.service! Como denir o runlevel padro no Systemd? Quando usamos o SysVinit a alterao era feita atravs do arquivo /etc/inittab, mas no Systemd essa alterao feita atravs de arquivos .target e links. Exemplo: Para exibir qual o runlevel padro do sistema use o comando:
1 2 3
# ls -l / etc / systemd / system / default . target / etc / systemd / system / default . target -> / lib / systemd / system / runlevel5 . target
O comando retorna que o runlevel padro aponta para o arquivo default.traget, que aponta para o graphical.target que corresponde ao modo grco no Systemd.
1 2 3
# ls -l / lib / systemd / system / runlevel5 . target / lib / systemd / system / runlevel5 . target -> graphical . target
Para denir o modo texto como padro de inicializao, o default.target deve ser um link apontando para o arquivo multi-user.target. Veja no exemplo:
# ln -sf / lib / systemd / system / multi - user . target / etc / systemd / system / default . target
Ainda possvel vericar qual o modo de inicializao esta denido (grco ou texto) atravs do comando systemctl com a opo list-units
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
1 2
# systemctl list - units -- type = target | grep user multi - user . target loaded active active Multi - User
Agora toda vez que a maquina for iniciada o modo de execuo sera em texto e multiusurio. Para alternar para o modo grco use a opo isolate atravs do comando systemctl.
1 2 3 4 5 6 7 8 9 10 11
# vim / etc / systemd / system / date . service [ Unit ] Description = Date Daemon [ Service ] ExecStart =/ root / script ExecStop =/ bin / kill - TERM $MAINPID [ Install ] WantedBy = multi - user . target
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
ExecStop: Dena qual comando ira encerar o servio Install: Cadastra a unidade no target multi.user do Systemd Para visualizar o status use o comando systemctl com a opo status
1 2 3 4 5 6
# systemctl status date . service date . service - Date Daemon Loaded : loaded (/ etc / systemd / system / date . service ) Active : inactive ( dead ) CGroup : name = systemd :/ system / date . service
1 2 3 4 5 6 7 8 9 10
# systemctl start date . service # systemctl status date . service date . service - Date Daemon Loaded : loaded (/ etc / systemd / system / date . service ) Active : active ( running ) since Tue , 24 Apr 2 12 2 : 3: 9 - 3 s ago Main PID : 1495 ( script ) CGroup : name = systemd :/ system / date . service 1495 / bin / bash / root / script 1497 sleep 3 ; 1
Linux Essentials
Pgina 17
0.12 Troubleshooting
4Linux www.4linux.com.br
0.12 Troubleshooting
Como posso montar parties sobre demanda no Systemd? O System no precisa utilizar o arquivo /etc/fstab para realizar montagem, e sim as unidades que recebem a extenso .mount para montagem xas e .automount para montagem sobre demanda. Em nossa pratica precisamos de uma nova partio ou disco. Em nosso exemplo sera usado uma nova HD /dev/sdb. Crie uma nova partio atravs do comando fdisk, aplique o sistema de arquivos EXT4 e crie um ponto de montagem na raiz Roteiro:
1 2 3
1 2 3 4 5 6
# vim / etc / systemd / system / dados . mount [ Unit ] Description = Diretorio Dados [ Mount ]
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
7 8 9 10
As opes para montagem so bem simples de entender. What dene qual dispositivo sera montado, Where o ponto de montagem, Type o sistema de arquivos e Options opo de montagem. Agora crie o arquivo automount
1 2 3 4 5 6 7
# vim / etc / systemd / system / dados . automount [ Unit ] Description = Montagem automatica do / dados [ Automount ] Where =/ dados
1 2
# systemctl status dados . automount dados . automount - Montagem autom tica do / dados
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
3 4 5
Loaded : loaded (/ etc / systemd / system / dados . automount ) Active : inactive ( dead ) Where : / dados
1 2 3 4 5 6
# systemctl start dados . automount # systemctl status dados . automount dados . automount - Montagem autom tica do / dados Loaded : loaded (/ etc / systemd / system / dados . automount ) Active : active ( waiting ) since Tue , 24 Apr 2 12 2 :39:14 - 3 s ago Where : / dados ; 1
O detalhe que ele esta ativo mais aguardando algum acesso no diretrio /dados. Use o comando cd /dados para montar de forma automtica, e use a opo status para vericar a diferena.
1 2 3 4 5 6
# cd / dados # systemctl status dados . automount dados . automount - Montagem autom tica do / dados Loaded : loaded (/ etc / systemd / system / dados . automount ) Active : active ( running ) since Tue , 24 Apr 2 12 2 :39:14 - 3 min 55 s ago Where : / dados ; 2
Pgina 20
Linux Essentials
455
Linux Essentials
www.4linux.com.br
Contedo
Servidor X 17 Servidor X 17.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2 Congurando o suporte Interface Grca . . . . . . . . . . . . . . . . 17.3 Varivel de Ambiente DISPLAY . . . . . . . . . . . . . . . . . . . . . . 17.4 Window Managers 17.5 Display Managers 17.6 Protocolo XDMCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 3 4 5 6 7 7 8 8
17.7.2 Instalando um Window Manager . . . . . . . . . . . . . . . . 12 17.7.3 Display Managers . . . . . . . . . . . . . . . . . . . . . . . . 14 17.7.4 Servidor X Remoto Acessibilidade 17.9 GOK ( GNOME ONSCREEN KEYBOARD) - teclado virtual do Gnome . . . . . . . . . . . . . . . . . . . . . . . 15 17 19
Captulo 17 Servidor X
O X Window System, conhecido tambm como servidor X, apenas X ou X11, um protocolo de rede e vdeo que prov a capacidade de se trabalhar com o sistema de janelas e que permite as interaes atravs de teclado e mouse. Esse sistema fornece os meios para o desenvolvimento de interfaces grcas para usurios ou GUI - Graphical User Interfaces em sistemas Unix e Unix-like, como o GNU/Linux. O sistema X fornece apenas as ferramentas que possibilitam o desenvolvimento de ambientes GUI como desenhar na tela, mover janelas e interagir com o mouse e teclado; ele no dita quais sero as decoraes das janelas, quem faz isso so os chamados WM - Window Managers ou gerenciadores de janelas. Dessa forma, a cara da parte grca varia drasticamente de um WM para outro. Um conceito bsico do servidor X que ele realmente um servidor como o prprio nome j indica. Sendo assim, possvel abrir vrias instncias de interface grca em uma mesma mquina ou at mesmo em uma mquina remota, graas ao seu protocolo de rede.
4Linux www.4linux.com.br
# X - configure
No Debian Lenny 6.0, o X tem uma congurao um pouco menor dado o fato que todas as conguraes do debconf so aproveitadas para congurao do servidor X;
O arquivo de congurao do servidor X dividido em sees e cada uma diz respeito congurao de um determinado pedao do sistema como um todo. A estrutura bsica de um desses arquivos a seguinte: ServerLayout InputDevice (mouse) Screen InputDevice (keyboard) Files Modules
Pgina 4
Linux Essentials
4Linux www.4linux.com.br
InputDevice (mouse)
InputDevice (keyboard)
Screen
Monitor
Displays
Ou seja, o arquivo composto de vrias sees que denem qual ser o comportamento dos dispositivos como teclado, mouse, monitor e placa de vdeo e algumas outras, que denem recursos que o servido X ir utilizar, como os mdulos que sero carregados e os arquivos de fontes, por exemplo. Alm das sees separadas que denem o comportamento de algum componente extra, h outras como ServerLayout e Screen que denem como o conjunto de recursos ir operar.
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
Sendo o <ip_destino> o endereo IP de uma mquina na rede, podendo ser deixado em branco caso a mquina de destino seja a prpria mquina local. O campo display refere-se a uma instncia de parte grca dentro de uma screen. O campo screen refere-se ao monitor e placa de vdeo na qual a parte grca ser exibida.
Um X Window Manager um software que controla basicamente o posicionamento e a aparncia das janelas dentro do sistema X Window.
Ao contrrio dos sistemas da Apple e Microsoft, que possuem apenas uma nica aparncia bsica, e que de controle delas, nos sistemas GNU/Linux voc livre para escolher qual o gerenciador de janelas que ir utilizar.
H um nmero muito grande de gerenciadores de janelas que voc pode instalar simultaneamente em uma mquina, possibilitando que cada usurio escolha aquele que mais lhe agrade. Cada gerenciador difere do outro em muitos aspectos, como nvel de customizao da aparncia e funcionalidades, congurao dos menus, meios grcos para iniciar um software, capacidade de utilizar mltiplos desktops e, principalmente, na quantidade de recursos que ele exige da mquina.
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
Linux Essentials
Pgina 7
17.7 Xnest
4Linux www.4linux.com.br
17.7 Xnest
Um Xnest uma instncia do servidor X que pode ser utilizada para receber alguma sada grca que tenha sido redirecionada a ela utilizando a varivel DISPLAY. Pode ser utilizada tambm para receber um DM solicitado via XDMCP.
# wininfo
# xdpyinfo
Qual o comando que me traz informaes sobre as cores e opes do Servidor X? R: xwininfo
Pare o servidor x:
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
17.7 Xnest
# dexconf
Caso esteja funcionando, timo. De qualquer forma, vamos executar o procedimento de congurao:
# X - configure
Esse comando tentar identicar qual o hardware da sua mquina e gerar um arquivo de congurao para ela, gravando esse arquivo no diretrio do usurio root.
Novamente, se funcionar, timo. Caso contrrio, teremos que realizar os ajustes manualmente, e para isso precisaremos de algumas informaes como: placa de vdeo - para determinar qual a nossa placa de vdeo, execute:
frequncias do monitor - para descobrir quais so as frequncias suportadas pelo seu monitor voc deve recorrer ao manual do proprietrio ou buscar pelas especicaes tcnicas em mecanismos de busca disponveis na Internet.
Linux Essentials
Pgina 9
17.7 Xnest
4Linux www.4linux.com.br
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Section " InputDevice " ( Entrada de Mouse ) Identifier " Configured Mouse " Driver " mouse " Option " CorePointer " Option " Device " " / dev / input / mice " Option " Protocol " " ImPS /2 " Option " Emulate3Buttons " " true " EndSection Section " Device " ( Se o que define o nosso hardware de v deo ) Identifier " Video Card " Driver " vesa " EndSection Section " Monitor " ( Op es de Monitor ) Identifier " Generic Monitor " Option " DPMS " HorizSync 28 -51 VertRefresh43 -6 EndSection Section " Screen " ( Layout de Screen e bits de cores a serem utilizadas ) Identifier " Default Screen " Device " Video Card " Monitor " Generic Monitor " DefaultDepth 24 SubSection " Display " Depth 1
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
17.7 Xnest
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
Modes " 1 24 x768 " " 8 EndSubSection SubSection " Display " Depth 24 Modes " 1 24 x768 " " 8 EndSubSection EndSection Section " ServerLayout "
x6
x6
Identifier " Default Layout " Screen " Default Screen " InputDevice " Generic Keyboard " InputDevice " Configured Mouse " EndSection
Leitura sugerida para mais informaes a respeito desse arquivo e suas opes de congurao e parmetros: man xorg.conf
Realizadas as alteraes, vamos fazer um novo teste para ver se o servidor consegue carregar a parte grca. Teste as conguraes:
Linux Essentials
Pgina 11
17.7 Xnest
4Linux www.4linux.com.br
1 2 3
# X Ou : # startx
# startx
3) Para o prximo teste, vamos instalar outro cliente grco que muito utilizado, o KDE:
# startx
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
17.7 Xnest
Note que foi utilizado o mesmo comando para iniciar tanto WindowMaker quanto o KDE: o startx. Isso acontece porque ao instalarmos o KDE ele se deniu como sendo o WM padro do sistema, mas isso pode ser alterado.
Podemos editar o arquivo /root/.xinitrc para escolhermos qual cliente grco ser iniciado quando o usurio root utilizar o comando startx. Essa congurao vlida apenas para o usurio root, pois alteramos o xinitrc da home do root:
# vi / root /. xinitrc
Para que alterao seja vlida para qualquer usurio, devemos editar o arquivo de congurao global:
Lembrando que uma congurao local, ou seja, o arquivo pessoal do usurio, prevalece sobre o global, caso o usurio especique um. Vamos instalar o pacote do XFCE:
Linux Essentials
Pgina 13
17.7 Xnest
4Linux www.4linux.com.br
Sero feitas algumas perguntas sobre qual ser o seu Display Manager Default, o kdm ou xdm? Escolha sempre o kdm, pois dessa maneira toda vez que o seu sistema iniciar, ele vai ativar automaticamente o kdm no terminal 7, por padro. Para iniciar o kdm igual. Lembrando que os demais display managers devem estar parados!
Se quiser mudar o seu Display Manager padro, basta editar o seguinte arquivo:
1 2
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
17.7 Xnest
Utilizaremos o Display Manager gdm para fazer esse servio. Vamos editar o arquivo onde ativaremos o XDMCP para o gdm3:
(servidor)Localize o bloco [security] e [xdmcp], utilizado para congurao desse protocolo. Ao encontrar esse bloco, ative o XDMCP inserindo Enable=True:
Linux Essentials
Pgina 15
17.7 Xnest
4Linux www.4linux.com.br
1 2 3 4 5
1 2
# xhost +192.168. .1
# xhost -192.168. .1
(cliente)Em outra mquina exporte seu DISPLAY, ou seja, sua sada grca:
Onde: 192.168.0.1:0.0 -> IP:display.screen (cliente)Execute um programa e veja ele abrindo no servidor:
# gedit
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
17.7 Xnest
(cliente)til seria poder usar o recurso do servidor em uma mquina mais antiga:
# X - query 192.168. .1 :1
Linux Essentials
Pgina 17
Acessibilidade
18
4Linux www.4linux.com.br 17.9 GOK ( GNOME ONSCREEN KEYBOARD) - teclado virtual do Gnome
Dispositivos de entrada alternativos: por meio destes, possvel controlar o computador com outros meios que no sejam um teclado padro ou um mouse. Os exemplos incluem teclados menores ou maiores, dispositivos controlados pelos olhos e pela respirao.
Linux Essentials
Pgina 19
17.9 GOK ( GNOME ONSCREEN KEYBOARD) - teclado virtual 4Linux do Gnome www.4linux.com.br
ou
# gok
Caso o suporte para tecnologias assistivas no estiver liberado no seu sistema quando comear, esta tela aparecer:
Clique em "Enable and Log Out"para habilitar o suporte de tecnologias assistivas e ento fazer uso de todas as funcionalidades do seu GOK. Neste caso, necessrio iniciar o GOK novamente.
Na tela principal:
Por meio das teclas dessa janela, podem ser ativadas vrias opes:
Pgina 20
Linux Essentials
4Linux www.4linux.com.br
17.10 ORCA
17.10 ORCA
Orca um leitor de tela. Tudo o que est na tela ele l e diz atravs do alto-falante do computador.
O mesmo que o Orca, ou seja, prov uma interface em modo texto para usurios que tem problemas visuais que usado como leitor de tela.)
Modica opes a acessibilidade do teclado como repetir caracteres ao apertar um tecla, a velocidade disso, apertando teclas quase que simultneos o que deve ser feito etc. Ver: "/usr/share/X11/xkb/compat/accessx")
Linux Essentials
Pgina 21