Lição 1 - Determinando e Configurando Hardware /proc /proc Mais tarde aprenderemos mais sobre o sistema de arquivos do Linux, mas agora veremos sobre o sistema de arquivos /proc. Este não é um sistema de arquivos real no disco, mas é um pseudo sistema de arquivos, que provê informações sobre o sistema. Neste sistema de arquivos, o arquivo /proc/pci contém informação sobre os dispositivos no PCI bus(bus: interface de comunicação entre componentes). Ultimamente tem havido alguma discussão sobre descontinuar este arquivo em particular, tendo em vista que o comando lspci nos mostra informações similares. Rode o comando cat /proc/pci para ver algo mais ou menos semelhante a (dependendo do seu sistema, este arquivo pode já ter sido retirado): PCI devices found: Bus 0, device 0, function 0: Host bridge: Intel Corp. 82845G/GL [Brookdale-G] Chipset Host Bridge (rev 1). Prefetchable 32 bit memory at 0xd0000000 [0xdfffffff]. Bus 0, device 2, function 0: VGA compatible controller: Intel Corp. 82845G/GL [Brookdale-G] Chipset Integrated Graphics Device (rev 1). IRQ 11. Prefetchable 32 bit memory at 0x88000000 [0x8fffffff]. Non-prefetchable 32 bit memory at 0x80000000 [0x8007ffff]. Bus 0, device 29, function 0: USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 1). IRQ 11. I/O at 0x1800 [0x181f]. Bus 0, device 29, function 1: USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 1). IRQ 10. I/O at 0x1820 [0x183f]. Bus 0, device 29, function 2:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Lição 1 - Determinando e Configurando Hardware
/proc
/proc Mais tarde aprenderemos mais sobre o sistema de arquivos do Linux, mas agora veremos sobre o sistema de arquivos /proc. Este não é um sistema de arquivos real no disco, mas é um pseudo sistema de arquivos, que provê informações sobre o sistema. Neste sistema de arquivos, o arquivo /proc/pci contém informação sobre os dispositivos no PCI bus(bus: interface de comunicação entre componentes). Ultimamente tem havido alguma discussão sobre descontinuar este arquivo em particular, tendo em vista que o comando lspci nos mostra informações similares. Rode o comando cat /proc/pci para ver algo mais ou menos semelhante a (dependendo do seu sistema, este arquivo pode já ter sido retirado):
Sendo bs o tamanho do bloco em bytes e count o número de blocos
utilizados, o tamanho da swap será: 1024*262144, o que dá
aproximadamente 256MB.
Após criado, deve-se preparar o arquivo para ser utilizado como swap:
# mkswap particaoswap
Em seguida, iniciamos o uso do arquivo de swap:
# swapon particaoswap
Lembrando que esta partição swap estará disponível apenas durante esta
sessão. Para que esta partição criada seja montada durante a inicialização do
sistema, a seguinte linha deve ser incluída no arquivo /etc/fstab:
/particaoswap swap swap defaults 0 0
Analise a seguinte afirmação: A swap consiste de uma parte do disco rígido que funciona como uma memória RAM virtual, de forma a acelerar o sistema, aumentando a memória RAM disponível.
Falso.
Verdadeiro.
/boot
Este diretório contêm tudo que é necessário para o processo de boot, exceto
arquivos de configuração que não são necessários no momento do boot e o
map installer. Desta forma, o /boot armazena os dados que são utilizados
antes que o kernel comece a executar os programas em modo de usuário. Isto
pode incluir master boot sectors salvos e sector map files.
Frequentemente este diretório está em uma partição diferente do resto do
sistema operacional.
Instalando o grub No primeiro setor do disco rígido, a MBR, estão as tabelas de partições e o carregador de boot. A função do carregador de boot é encontrar o kernel a ser iniciado e carregá-lo junto a memória. Os dois gerenciadores mais populares do Linux são o Lilo e o Grub. Considerando que o grub possui mais opções que o lilo, e seu utilitário de configuração é automatizado, utilizaremos ele neste curso. Grub é um acrônimo para Grand Unified Bootloader. Após realizar alterações, o grub será atualizado com o comando update-grub. Para instalar o grub na MBR, utiliza-se o comando /sbin/grub-install ou /sbin/grub, dependendo da versão do sistema. Ao instalar o grub, ele provavelmente já listará todos os kerneis instalados. Caso não seja, adicione
ao final do menu.lst e rode o comando update-grub. Segue abaixo um exemplo do arquivo de configuração /boot/grub/menu.lst do grub: pedro-brito@cdtcsun04:~$ cat /boot/grub/menu.lst # menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-legacy-doc/. ## default num # Set the default entry to the entry number NUM. Numbering starts from 0, and # the entry number 0 is the default if the command is not used. # # You can specify 'saved' instead of a number. In this case, the default entry # is the entry saved with the command 'savedefault'. # WARNING: If you are using dmraid do not change this entry to 'saved' or your # array will desync and will not let you boot your system. default 0 ## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). timeout 5 # Pretty colours color cyan/blue white/blue ## password ['--md5'] passwd # If used in the first section of a menu file, disable all interactive editing # control (menu entry editor and command-line) and entries protected by the # command 'lock' # e.g. password topsecret # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ # password topsecret # # examples # # title Windows 95/98/NT/2000 # root (hd0,0) # makeactive # chainloader +1 # # title Linux # root (hd0,1) # kernel /vmlinuz root=/dev/hda2 ro #
# # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST ### BEGIN AUTOMAGIC KERNELS LIST ## lines between the AUTOMAGIC KERNELS LIST markers will be modified ## by the debian update-grub script except for the default options below ## DO NOT UNCOMMENT THEM, Just edit them to your needs ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro # kopt=root=/dev/sda1 ro ## default grub root device ## e.g. groot=(hd0,0) # groot=(hd0,0) ## should update-grub create alternative automagic boot options ## e.g. alternative=true ## alternative=false # alternative=true ## should update-grub lock alternative automagic boot options ## e.g. lockalternative=true ## lockalternative=false # lockalternative=false ## additional options to use with the default boot option, but not with the ## alternatives ## e.g. defoptions=vga=791 resume=/dev/hda5 # defoptions=vga=791 quiet ## should update-grub lock old automagic boot options ## e.g. lockold=false ## lockold=true # lockold=false ## Xen hypervisor options to use with the default Xen boot option # xenhopt= ## Xen Linux kernel options to use with the default Xen boot option # xenkopt=console=tty0 ## altoption boot targets option
## multiple altoptions lines are allowed ## e.g. altoptions=(extra menu suffix) extra boot options ## altoptions=(single-user) single # altoptions=(single-user mode) single ## controls how many kernels should be put into the menu.lst ## only counts the first occurence of a kernel, not the ## alternative kernel options ## e.g. howmany=all ## howmany=7 # howmany=all ## should update-grub create memtest86 boot option ## e.g. memtest86=true ## memtest86=false # memtest86=true ## should update-grub adjust the value of the default booted system ## can be true or false # updatedefaultentry=false ## should update-grub add savedefault to the default options ## can be true or false # savedefault=false ## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.26-2-686 root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro vga=791 quiet initrd /boot/initrd.img-2.6.26-2-686 title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode) root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro single initrd /boot/initrd.img-2.6.26-2-686 ### END DEBIAN AUTOMAGIC KERNELS LIST A maioria das configurações já possuem sua própria explicação no arquivo. Explicarei a seguir como é feito a nomeação dos dispositivos listados.
title -> Nome que aparecerá no menu para escolher entre os kernels. root -> Endereço do diretório raiz. (hd0) significa o primeiro disco rígido.
(hd0,0) significa a primeira partição do primeiro disco rígido. (hd0,1) significa a segunda partição do primeiro disco rígido e assim sucessivamente.
kernel -> Caminho do kernel e opções de início.
initrd -> Initial ramdisk. É um sistema de arquivos temporário, utilizado para fazer preparações antes que o verdadeiro sistema de arquivos raiz possa ser montado.
Para adicionar a entrada do kernel 2.6.27-2-686, que está instalado na segunda partição do primeio hd.
Adicione as seguintes linhas ao kernel em menu.lst e rode o comando update-grub: title Novo Kernel, kernel 2.6.27-2-686 root (hd0,1) kernel /boot/vmlinuz-2.6.27-2-686 root=/dev/sda2 ro vga=791 quiet initrd /boot/initrd.img-2.6.27-2-686
Lição 6 - Gerenciando Bibliotecas Compartilhadas
Bibliotecas Compartilhadas
Bibliotecas são arquivos para compartilhar funções comuns de programas, a
todos os programas que utilizam tais funções. Quando o programa for
compilado, ele vai verificar quais bibliotecas ele necessita e se ligará às
bibliotecas necessárias, que estão em um local determinado, tais como /lib e
/usr/lib (as padrões do sistema).
Caso você deseje adicionar um novo diretório de bibliotecas, basta
simplesmente incluir o caminho completo para o diretório no arquivo
/etc/ld.so.conf.
Após a alteração do arquivo, utilize o seguinte comando para que a mudança
seja efetivada:
#ldconfig
Julgue a seguinte afirmação: Uma biblioteca compartilhada é um conjunto de funções que são comuns a diferentes programas.
Falso.
Verdadeiro.
Lição 7 - Utilizando o Gerenciador de Pacotes do Debian
dpkg
O dpkg é uma ferramenta para instalar, montar, remover e gerenciar pacotes
Debian. O uso principal e mais user-friendly front-end é o aptitude, porém
ele não será abordado aqui. Controlaremos o dpkg via linha de comando.
Sua sintaxe é a seguinte:
dpkg [options] action
O parâmetro action diz ao dpkg o que fazer e as options controlam o
comportamento da ação.
A action -i ou --install, seguida do nome do pacote instala o pacote. Note que
neste caso é necessário já ter o arquivo do pacote salvo no seu computador.
A action -r ou --remove seguida do nome do pacote, desinstala o pacote e
remove tudo, exceto os arquivos de configuração, para o caso de o pacote ser
reinstalado, não ser necessário reconfigurá-lo.
A action -P ou --purge seguida do nome do pacote é semelhante ao --remove,
porém, neste caso, os arquivos de configuração são também excluídos.
Uma desvantagem do dpkg sobre o apt é que todos os pacotes a serem
instalados devem ter sido obtidos de uma outra fonte
APT
O APT é a principal ferramenta de gerenciamento de pacotes do Debian, na
qual se pode obter um poder muito grande no gerenciamento de pacotes,
devido as suas vastas opções.
Para instalar um pacote via apt, não é necessário colocar sua versão,
diferentemente do dpkg, assim como também não é necessário obter o pacote
previamente.
Para instalar um pacote utiliza-se a opção install do apt-get:
# apt-get install NOME DO PACOTE
Caso você não saiba o nome do pacote que você deseja instalar, você
pode buscá-lo através do comando:
apt-cache search BUSCA
Este comando retornará todos os pacotes em que aparecem a palavra BUSCA
e então você pode instalar o pacote desejado. Mais de um pacote pode ser
especificado quando for instalar. Caso o programa seja um programa novo,
possivelmente ele não retornará nenhum resultado quando utilizado o comando
search do apt-cache, porém, utilizando o comando:
# apt-get update.
O apt-get re-sincronizará seu índice de pacotes com o do servidor,
possibilitando assim, a inclusão de novos pacotes para a instalação. Se ainda
assim o pacote desejado não aparecer na listagem, pode-se editar o
arquivo /etc/apt/sources.list, que é onde encontram-se os updates para que
os novos pacotes apareçam na listagem.
Para desinstalar um programa via apt-get, o comando necessário segue o
mesmo padrão da instalação, porém o comando agora é "remove" para
manter os arquivos de configuração e "purge" para excluir os arquivos de
configuração. Assim como era com o dpkg. Novamente, mais de um pacote
pode ser selecionado por vez.
Julgue a seguinte afirmação: É possível adicionar outros repositórios de programas aos já incluídos no sources.list.
Verdadeiro.
Falso.
Informações
Para obter informações variadas sobre os pacotes, utilize o comando dpkg
--status PACOTE, como no exemplo, informações sobre o pacote iceweasel:
Description: lightweight web browser based on Mozilla
Iceweasel is a redesign of the Mozilla browser component, similar to
Galeon, K-Meleon and Camino, but written using the XUL user interface
language and designed to be lightweight and cross-platform.
.
This browser is based on the Firefox source-code, with minor
modifications. Historically, this browser was previously known as
Firebird and Phoenix.
Lição 8 - Gerenciando Pacotes com YUM e RPM
Pacotes com YUM e RPM Utilizando o YUM:
yum list - Lista todos os pacotes disponíveis; yum check-update ou yum list updates - Verifica se há pacotes
disponíveis para um update ; yum update - Faz o update de seu sistema; yum update <package> - Faz o update apenas de <package>; yum install <package(s)> - Instala um pacote específico e suas
dependências; yum info <package> - Apresenta informações básicas de um
determinado pacote.
Utilizando o RPM:
rpm -q <package> - Lista os pacotes disponíveis que se relacionam a <package> (Este comando pode ser utilizado para visualizar o status do pacote no sistema);
rpm -e <package> - Remove o <package>; rpm -i <package> - Instala o pacote <package>; rpm -ql <package> - Mostra quais arquivos estão contidos no pacote.
Julgue a seguinte afirmação: É possível utilizar o grep para refirnar a listagem dos pacotes do yum, como em: yum list | grep <nome do pacote>
Verdadeiro.
Falso.
Lição 9 - Trabalhando com a Linha de Comando
Caracteres Especiais e Coringa
'.' - O ponto, numa linha de comando significa o diretório atual.
'..' - Dois pontos, em uma linha de comando significa o diretório pai.
'/' - Barra significa, em uma linha de comando, a separação entre diretórios, ou o diretório raiz do sistema.
'~' - O til, em uma linha de comando, significa o diretório pessoal do usuário, ou seja, sua pasta "home".
'*' - O asterisco significa todos, ou qualquer um. Todas as opções
disponíveis serão escolhidas. '?' - A interrogação, como o asterisco significa qualquer um, mas de
forma diferente, a interrogação deve ser APENAS um caractere, e ele TEM que existir, diferentemente do asterisco. Veja o exemplo:
pedro-brito@cdtcsun04:~$ touch teste teste1 teste2 teste12 %Criando os
arquivos teste, teste1, teste2 e teste12%
pedro-brito@cdtcsun04:~$ ls teste %Listando os arquivos chamado "teste".
Note que como nenhum caractere coringa foi utilizado, deve aparecer somente
aqueles que o nome é exatamente igual ao pedido%
teste
pedro-brito@cdtcsun04:~$ ls teste* %Listando todos os arquivos que comecem
com teste%
teste teste1 teste12 teste2
pedro-brito@cdtcsun04:~$ ls teste? %Listando todos os arquivos que
comecem com teste e tenham APENAS mais um caractere%
teste1 teste2
pedro-brito@cdtcsun04:~$ ls teste1? %Listando todos os arquivos que
comecem com teste1 e contenham APENAS mais um caractere%
teste12
pedro-brito@cdtcsun04:~$ ls teste1* %Listando todos os arquivos que
comecem com teste1 e tenham um número qualquer de caracteres a
Um diretório tem o seguinte conteúdo: arquivo1 arquivo2 arquivo3 arquivo4 arquivo5 arquivo6 arquivo7 arquivo8 arquivo9 arquivo10 arquivo11 arquivo12 arquivo13 arquivo14 arquivo15 Pasta1 Pasta2 Pasta3 Pasta4 Pasta5 Qual o seguinte comando que listaria corretamente todos os arquivos, excluindo as pastas?
ls
ls | grep arquivo
ls arquivo??
ls arquivo?
Bash Bash é um Shell escrito em 1987 para o projeto GNU. Ele foi baseado no Bourne Shell (sh) criado por Stephen Bourne, daí seu nome Bash, que é um acrônimo para Bourne Again Shell(Do inglês, Born significa nascer, então é também uma piadinha para "Shell renascido"). Na maioria das distribuições Linux, este é o shell padrão.
A seguir, alguns atalhos para facilitar a operação no bash:
Tab : Autocompleta CTRL + a: Move o cursor para o início da linha CTRL + e: Move o cursor para o final da linha CTRL + p: Chama o comando utilizado anteriormente CTRL + n: Chama o próximo comando CTRL + l: Limpa a tela CTRL + u: Limpa o conteúdo antes do cursor e o passa pra área de
transferência CTRL + k: Limpa o conteúdo após o cursor e o passa pra área de
transferência ALT + f: Move o cursor uma palavra adiante ALT + b: Move o cursor uma palavra atrás ALT + d: Apaga a palavra na frente do cursor
Variáveis O Shell utiliza algumas variáveis para facilitar seu uso, e para prover outras informações. É possível exportar uma variável, tornando-a disponível para as sessões do bash criadas apartir da sessão em que a variável foi exportada. Você pode verificar a lista das variáveis locais e de ambiente com o comando set: pedro-brito@cdtcsun04:~/Desktop$ set BASH=/bin/bash BASH_ARGC=() BASH_ARGV=() BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="3" [1]="2" [2]="39" [3]="1" [4]="release" [5]="i486-pc-linux-gnu") BASH_VERSION='3.2.39(1)-release' COLORTERM=gnome-terminal COLUMNS=176 DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-E9L3yd4s9B,guid=da5097e45bef5b15a4c61b474b4c944b DESKTOP_SESSION=default DESKTOP_STARTUP_ID= DIRSTACK=() DISPLAY=:0.0 EUID=1019 GDMSESSION=default GDM_LANG=pt_BR.UTF-8 GDM_XSERVER_LOCATION=local GNOME_DESKTOP_SESSION_ID=Default GNOME_KEYRING_PID=31533
Se utilizado com a opção -g, o renice ajusta as prioridades de todos os
processos do grupo especificado(renice -5 -g programadores). Caso utilizado
com a opção -u, os processos do usuário corrente serão alterados.
Apenas o root pode definir uma prioridade mais alta do que zero (número
nice negativo).
Julgue a seguinte afirmação: Apenas o superusuário poderá setar uma prioridade negativa(maior prioridade).
Verdadeiro.
Falso.
Lição 15 - Realizando Buscas em Arquivos de Textos com Expressões Regulares
Expressões Regulares Expressões regulares são elementos de texto, palavras-chave e modificadores que são usados para formar um padrão, utilizados para encontrar um padrão com um comando. Podem ser utilizados para formar estas expressões os seguintes caracteres:
^ : Significa início de linha.
$ : Significa final de linha.
. : Significa qualquer caractere(substitui a interrogação).
* : Significa qualquer número de quais quer caracteres(assim como dito
anteriormente). [ ] : Qualquer caractere que esteja presente nos colchetes.
A família grep Você já deve ter visto por aí muitos grep em pipelines, e utilizava-o apenas de maneira básica. Agora veremos como explorar mais este comando. Opções do grep:
-c : conta quantas linhas contêm o padrão. -i : não diferencia maiúsculas de minúsculas. -f : utiliza a expressão regular contida no arquivo indicado após -f. -n : procura somente na linha indicada por -n. -v : inverte a expressão regular(mostra todas as linhas que NÃO
correspondem ao padrão).
Por exemplo, uma utilização corriqueira do grep para excluir as linhas de
comentário de um arquivo de configuração, utilizando a opção -v, depois
contando quantas linhas são comentadas, e quantas não são comentadas:
vai buscar todas as ocorrências de invenção ou de invenções. egrep
corresponde à opção -E do grep.
Fgrep:
O fgrep quer dizer FAST grep, e ele realiza buscas mais simples do que o
grep, por não aceitar expressões regulares como argumento. Se algum
caracter especial for passado como argumento, o fgrep as interpretará
literalmente. Devido a isso, o FAST grep é bem mais rápido que seus
irmãos.
Escolha a opção que busca o comando da família grep mais completo.
fgrep
egrep
grep
Lição 16 - Edições Básicas Utilizando VI
Modos de Execução do VI O VI possui três modos de execução, onde em cada um, o teclado funciona de maneira diferenciada. São eles:
Modo de navegação:
É o modo corrente quando se inicia o VI. Neste modo de execução, o teclado se funciona principalmente para navegação e alteração de blocos de texto. Os comandos são em maioria letras únicas. Caso alguma dessa letra seja precedida por um número, este comando será repetido o número de vezes que o número indicar.
Modo de comando:
Quando se aperta a tecla : (dois pontos) apartir do modo de navegação, o VI muda para o modo de comando. Neste modo de execução é permitido fazer buscas, salvar, sair, executar comandos no shell, configurar o VI, etc. Para voltar ao modo de navegação, utiliza-se a instrução visual ou a tecla ENTER com a linha vazia.
Modo de inserção:
Neste modo, o VI se comporta como um editor de texto comum. O que você
digita aparecerá na tela, um backspace apaga um caracter e assim
sucessivamente. Para entrar no modo de inserção, aperta-se a tecla i ou
A(os modos mais comumente utilizados). Para sair do modo de inserção,
basta pressionar a tecla ESC.
Teclas de Navegação As teclas de navegação do VI: Comando / Resultado
Julgue a seguinte afirmação: A tecla i, no modo de navegação, entra no modo de edição ao final da linha atual.
Falso.
Verdadeiro.
0, $ Início e fim de linha.
1G, G Início e fim de documento.
(, ) Início e fim de sentença.
{, } Início e fim de parágrafo.
w, W Pular palavra e pular palavra contando com a pontuação.
h, j, k, l Esquerda, abaixo, acima, direita.
/, ? Busca para frente e para trás.
i Entra no modo de inserção na posição atual do cursor.
a, A Entra no modo de inserção depois do cursor ou no fim da linha.
o, O Adiciona uma linha e entra no modo de inserção depois ou antes do cursor.
s, S Apaga item ou linha e entra no modo de inserção.
c Modifica um item com a inserção de texto.
r Substitui um único caractere.
x Apaga um único caractere.
y, yy Copia um item ou toda linha.
p, P Cola o conteúdo, copiado depois ou antes do cursor.
u Desfazer.
ZZ Fecha e salva, se necessário.
ZQ Fecha e não salva.
Comandos do VI Os comandos do VI: Comando / Resultado
Lição 17 - Criando Partições e Sistemas de Arquivos
Fdisk O programa padrão do linux para manipular partições é o fdisk. O fdisk pode ser utilizado com a opção -l para listar os dispositivos e partições, ou para manipular partições de um dispositivo, ele deve ser iniciado com o dispositivo como argumento. Ao especificar um dispositivo para que seja feita a manipulação de suas partições, o fidsk aceitará letras que funcionarão como comandos, dizendo-o assim o que fazer com quais partições. Comando / Resposta
Após realizar alterações com o fdisk, é necessário que seja dado o
comando w para salvar as alterações. Caso contrário, tudo que foi feito não
será salvo e não modificará em nada as partições.
:! Permite executar um comando do shell.
:quit ou :q Fecha.
:quit! ou :q! Fecha sem salvar.
:wq Salva e fecha.
:exit ou :x ou :e Fecha e salva, se necessário.
:visual Volta para o modo de comando.
p Lista as partições do dispositivo.
n Cria uma nova partição interativamente.
t Muda o código de identificação de uma partição.
d Apaga uma partição
q Sai do fdisk sem salvar as alterações.
w Sai do fdisk salvando as alterações.
m Mostra a ajuda dos comandos.
mkfs
O comando mkfs serve para criar um sistema de arquivos em partições. A
opção -t indica qual é o tipo do sistema de arquivos a ser criado na partição.
Por exemplo, para criar uma partição em /dev/hda2 do tipo ext3, utiliza-se o
comando mkfs -t ext3 /dev/hda2.
Além do comando acima, existem comandos específicos para alguns
sistemas de arquivos, como por exemplo os comandos:
- mkfs.ext2;
- mke2fs;
- mkfs.ext3;
- mkfs.xfs;
- mkreiserfs;
- mkdosfs;
- mkfs.vfat.
Partição swap
Depois de definir uma partição para ser swap, é necessário formatá-la,
através do comando mkswap (mkswap /dev/hda2).
Após ser criada como swap, a partição ainda não está pronta para ser
utilizada, ela deve ainda ser ativada:
swapon /dev/hda2
Caso se deseje utilizar este espaço como swap sempre, apartir do início
do computador, é necessário atualizar o arquivo /etc/fstab com esta entrada,
caso contrário será necessário rodar o comando swapon todas as vezes.
Caso se deseje desativar uma partição swap, utilize o comando swapoff:
swapoff /dev/hda2
Julgue a seguinte afirmação: Além de ser formatada como swap, a partição ainda deve ser ativada como tal junto ao sistema operacional, através do seguinte comando:
swap --status active
Falso.
Verdadeiro.
Lição 18 - Mantendo a Integridade de Sistemas de Arquivos
Checando sistemas de arquivos
Quando há uma falha de hardware ou um desligamento abrupto, podem
ocorrer erros em um sistema, desta forma, é recomendável que de tempos
em tempos se faça uma verificação dos sistemas de arquivos presentes, e,
caso necessário, uma correção.
Para checar o sistema utiliza-se o comando fsck, mas antes disso a
partição deve estar desmontada ou montada como somente leitura, para que a
verificação possa acontecer.
O comando fsck é utilizado de maneira semelhante ao mkfs, onde -t indica o
tipo de sistema de arquivos. Há também um comando específico para cada
tipo de sistema, tal como no mkfs, que são:
- fsck.ext2;
- e2fsck;
- fsck.ext3;
- fsck.xfs;
- reiserfsck;
- dosfsck.
Debugfs:
Quando o sistema de arquivos é corrompido de maneira tão grave que o
comando fsck não conseguiu solucionar, é utilizado um outro comando, o
debufs. Este comando é um depurador interativo, que funciona com sistemas
ext2 e ext3.
Pode-se mudar propriedades de diretórios, examinar dados de inodes, apagar
arquivos, criar links, mostrar log de journalling, dentre outros.
Dois comandos que são também importantes para inspecionar e alterar
os sistemas de arquivos ext2 e ext3 são:
- dumpe2fs: Mostra informações de grupo de blocos e de superblocos;
- tune2fs: Configura os parâmetros ajustáveis em sistemas de arquivos ext2,
como rótulo e limites de montagem, antes de checar estes sistemas,
automaticamente.
Para sistemas do tipo xfs, existem dois comandos semelhantes ao dumpe2fs
e tune2fs, que são xfs_metadump e xfs_info. Estes comandos extraem todos
os dados referentes ao sistema de arquivos e exibem as características e
outras informações estatísticas sobre o sistema de arquivos xfs,
respectivamente.
Para sistemas de arquivos do tipo xfs, existem dois comandos
Analisando o Espaço em Disco. Para analisar o espaço do disco ocupado, disponível, etc. utiliza-se os comandos df e du.
df:
Este comando mostra o espaço ocupado e o espaço disponível em cada dispositivo. O espaço é mostrado em unidades de 1KB, por padrão, porém, esta unidade pode ser alterada através da opção -h, que usará unidades como MB ou GB, dependendo da necesscidade. A opção -T exibe o também o tipo do sistema de arquivo.
du:
Este comando mostra o espaço ocupado por arquivos e/ou diretórios. Sem
nenhum argumento, ele mostrará o uso de cada diretório no sistema. Um
diretório específico pode ser indicado pela opção -s. Tal como o df, com a
opção -h unidades de medida apropriada serão utilizadas para mostrar as
informações.
Escolha a resposta que produz a saída abaixo:
Sist. Arq. Tipo Tam Usad Disp Uso% Montado em /dev/sda1 ext3 134G 3,3G 124G 3% /
df -hT
df
df -T /dev/sda1
df -hT /dev/sda1
Lição 19 - Controlando a Montagem de Sistemas de Arquivos
/etc/fstab No arquivo fstab estão todas as informações sobre cada sistema de arquivos. Este arquivo é lido cada vez que o sistema é iniciado, e os sistemas de arquivos são montados ou não, de acordo com a configuração. Neste arquivo estão informações sobre as partições, o tipo do sistema de arquivos, o ponto de montagem e outras opções. Cada uma das linhas corresponde a um ponto de montagem, segue minha fstab como exemplo: pedro-brito@cdtcsun04:~$ cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro 0 1 /dev/sda5 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 # NFS - CDTC 192.168.0.10:/home /home nfs rw,async,hard,intr,nodev,nosuid 0 0 192.168.0.11:/VirtualBox /VirtualBox nfs rw,async,hard,intr,nodev,nosuid 0 0 pedro-brito@cdtcsun04:~$ As opções de montagem são as seguintes: Opção / Descrição
rw Read-write. Dados poderão ser lidos e escritos na partição.
Para montagens manual de sistemas de arquivo, o comando utilizado é o
mount. Para desmontar, o comando utilizado é o umount. Deve-se então
especificar o ponto de montagem e as opções. Caso haja mais de uma opção,
separar por vírgula. As opções são as mesmas que para fstab.
Qual é o arquivo responsável pelas informações dos sistemas de arquivos?
/var/fstab
/proc/fstab
/sys/fstab
/etc/fstab
Lição 20 - Gerenciando Quotas em Disco
ro Read-only. Dados poderão ser apenas lidos.
noauto Não montar automaticamente.
users Este dispositivo poderá ser montado ou desmontado por usuários comuns.
user Apenas o usuário que montou o sistema poderá desmontá-lo.
owner As permissões do dispositivo montado se adequarão ao usuário que o montou.
usrquota Ativa o uso de cotas de disco para usuários.
grpquota Ativa o uso de cotas de disco para grupos.
remount Remonta um dispositivo já montado, podendo utilizar opções adicionais.
dump(0 ou 1) Determina se o dispositivo deverá ser considerado pelo comando dump. Se não for especificado, é assumido como 0.
fsck(1 ou 2) Determina a ordem de checagem do sistema feita pelo fsck durante o boot. A partição raiz deve ter este valor como 1. Se não for especificado, é assumido como 0.
Quota
Quando um sistema conta com muitos usuários, é recomendável que se
utilize o recurso de cotas de disco, de forma a limitar a quantidade de espaço
que cada usuário(ou grupo de usuários) pode utilizarde forma a não prejudicar
nenhum outro usuário por falta de espaço.
Para ativar o controle de quotas, é necessário que o kernel tenha suporte e
que a(s) opção(ões) esteja(m) acionada(s): grpquota e/ou usrquota no arquivo
/etc/fstab. (Caso faça alguma mudança neste arquivo, elas só terão efeitos
após o sistema ser remontado)
O comando quotacheck -a gera uma tabela de estatísticas de uso de todos os
sistemas de arquivos montados(isso normalmente é feito pelos scripts de
inicialização).
O comando edquota nos permite criar as configurações de quota para
usuários (-u) e para grupos(-g) utilizando o editor padrão do sistema (vi).
As configurações de quota ficam armazenadas no ponto de montagem da
partição, nos arquivos aquota.user e aquota.group.
Para monitorar e controlar as cotas, deve-se utilizar o comando quota -a.
Para estabelecer um período no qual o usuário deve ser avisado de que
seu limite foi ou está sendo alcançado, utiliza-se o comando edquota -ta.
Para cada usuário verificar como está o andamento de sua quota, ele deve
simplesmente executar o comando quota, sem nenhum argumento.
O superusuário pode gerar relatórios de uso de espaço e quotas através do
comando repquota -a.
Julgue a seguinte afirmação: Para configurar as cotas, utilizamos o comando quotacheck.
Falso.
Verdadeiro.
Lição 21 - Gerenciando Donos e Permissões de Arquivos
Permissões
pedro-brito@cdtcsun04:~$ ls -l /boot/
total 15548
-rw-r--r-- 1 root root 91640 Mar 26 2009 config-2.6.26-2-686
drwxr-xr-x 2 root root 4096 Out 6 14:38 grub
-rw-r--r-- 1 root root 7174620 Jun 18 2009 initrd.img-2.6.26-2-686
-rw-r--r-- 1 root root 6169352 Jun 18 2009 initrd.img-2.6.26-2-686.bak
-rw-r--r-- 1 root root 927984 Mar 26 2009 System.map-2.6.26-2-686
-rw-r--r-- 1 root root 1505680 Mar 26 2009 vmlinuz-2.6.26-2-686
pedro-brito@cdtcsun04:~$
O primeiro caracter representa o tipo do arquivo, que pode ser diretório(d),
link simbólico(l), dispositivo especial de caracteres(c), canal fifo(p)(first in first
out), socket(s) ou arquivo convencional(-).
Nesta listagem aparecem apenas diretórios e arquivos.
As demais letras, a cada três representam as permissões do ítem, para dono,
grupo e outros, respectivamente.
A permissão r significa leitura, a w significa escrita e a x significa execução.
Umask O umask é o filtro padrão de permissões para criação de arquivo. Novos arquivos criados terão seu sistema de permissão baseado neste filtro. Para verificar qual é o seu umask atual, basta digitar umask no terminal sem argumentos. Para modificá-lo, basta dizer o número da permissão octal que deseja colocar:
Dígito Leitura(4) Escrita(2) Execução(1)
0
1 SIM
2 SIM
3 SIM SIM
4 SIM
5 SIM SIM
O umask calculará as novas permissões dos arquivos criados subtraindo o
seu valor do valor das permissões padrão do sistema(0666 para arquivos e
0777 para diretórios).
pedro-brito@cdtcsun04:~$ umask
0022
pedro-brito@cdtcsun04:~$ umask 0033
pedro-brito@cdtcsun04:~$ umask
0033
pedro-brito@cdtcsun04:~$ umask 0012
pedro-brito@cdtcsun04:~$ umask
0012
pedro-brito@cdtcsun04:~$
Alterando permissões
Para alterar permissões de um arquivo, utiliza-se o comando chmod.
Este comando possui vários tipos de sintaxe, como por exemplo, para adicionar
uma permissão, sem modificar as outras:
chmod g+w arquivoexemplo.txt
(dá permissão de escrita aos usuários do grupo do arquivo, sem alterar as
outras)
Para subtrair uma permissão sem alterar as outras:
chmod o-x scriptexemplo.sh
(tira a permissão de execução do script de outros usuários)
Para colocar a permissão sem alterar as outras:
chmod u=rw arquivoexemplo.txt
(define a permissão do arquivo como leitura e escrita para o dono)
Mais de um ítem (dono, grupo, outros) pode ser alterado por vez.
Para mais detalhes, consulte man chmod
6 SIM SIM
7 SIM SIM SIM
Julgue a seguinte afirmaçao: É possível modificar as permissões separadamente para grupo, dono e outros, assim como também é possível modificar todos de uma vez.
Falso.
Verdadeiro.
Permissões especiais
Além das permissões citadas anteriormente, existem também as permissões
suid, sgid e sticky.
Na permissão suid, os usuários executarão os arquivos com as permissões
de quem os criou, e não as suas próprias.
A permissão sgid é semelhante, porém, atua em diretórios. Em um diretório
com a permissão sgid, todos os arquivos criados pertencerão ao grupo do
diretório.
Já a permissão sticky permite que apenas o usuário que criou um
determinado arquivo possa apagá-lo, como no caso do diretório /tmp:
pedro-brito@cdtcsun04:~$ ls -ld /tmp/
drwxrwxrwt 55 root root 4096 Jan 22 17:27 /tmp/
pedro-brito@cdtcsun04:~$
Para incluir o modo suid em um arquivo executável, utilize:
chmod u+s script.sh
Para incluir o modo sgid em um diretório, utilize:
chmod g+s minhaPasta
Alterando donos e grupos de arquivos
Para alterar o dono de um arquivo, utilize:
# chown pedro-brito texto.txt
(agora o usuário pedro-brito é dono do arquivo texto.txt)
Para alterar o grupo de um arquivo, utilize:
$ chgrp grupo texto.txt
(agora o arquivo pertence ao grupo grupo)
Para alterar simultaneamente o grupo e o dono, pode-se utilizar de uma
das duas formas:
# chown pedro-brito.grupo texto.txt
ou
# chown pedro-brito:grupo texto.txt
Os dois comandos possuem a opção -R que modifica os conteúdos de
diretórios recursivamente.
Lição 22 - Criando e Modificando links
Criando Hard Links
Um hard link é um ou mais nomes que um inode do sistema de arquivos pode
possuir. Todo arquivo criado é um hardlink para seu inode correspondentes.
Um hard link é criado com o comando ln:
ln arquivo1 arquivo2
Utilizando ls com a opção -i para listar os inodes dos arquivos:
pedro-brito@cdtcsun04:~$ ln arquivo1 arquivo2
pedro-brito@cdtcsun04:~$ ls -i arquivo?
5219466 arquivo1 5219466 arquivo2
pedro-brito@cdtcsun04:~$
Os dois arquivos são hardlinks para o mesmo inode 5219466. Ambos possuem
a mesma permissão, donos, tamanho e data pois estes são atributos que ficam
armazenado diretamente nos inodes.
pedro-brito@cdtcsun04:~$ ls -l arquivo1
-rw-r--r-- 2 pedro-brito pedro-brito 0 Jan 22 17:55 arquivo1
pedro-brito@cdtcsun04:~$
Na segunda coluna, o número 2 indica que há dois hardlinks para o inode
correspondente ao arquivo1. O arquivo só será de fato apagado do sistema
quando todos os hardlinks que apontam para ele forem removidos.
Soft Links
Um link simbólico pode apontar para qualquer coisa, em qualquer sistema de
arquivos conectado. Para criá-lo, utilizamos a opção -s do comando ln:
O link é indicado pela letra l nas permissões, na primeira posição. As
permissões de um softlink serão sempre rwxrwxrwx, e seu tamanho será
exatamente a quantidade de bytes (caracteres) do caminho. A seta indica o
caminho até o alvo (considerando que estão na mesma pasta, o caminho é
apenas o nome do arquivo).
Um link simbólico para um caminho relativo será quebrado se o alvo ou o
próprio link for movido. Um link simbólico para um caminho absoluto só será
quebrado se o alvo for movido ou apagado.
Julgue a seguinte afirmação: O comando ln permite criar tanto links simbólicos como hardlinks.
Verdadeiro.
Falso.
Lição 23 - Encontrando Arquivos
O FHS O FHS (Filesystem Hierarchy Standard) é o padrão de localização de arquivos adotado por grande parte dos sistemas Linux. Cada diretório tem um propósito, e são divididos entre os que DEVEM ser colocados na partição raiz e os que podem ser pontos de montagem de outras partições: Dos diretórios que DEVEM ser colocados na partição raiz:
/bin e /sbin: Estes diretóprios contêm os programas necessários para carregar o sistema e comandos especiais.
/etc: Este diretório contém arquivos de configuração escpecíficos da máquina.
/lib: Este diretório contém as bibliotecas compartilhadas pelos programas que estão em /bin e /sbin e os módulos do kernel.
/mnt e /media: Estes diretórios contêm os pontos de montagem para outras partições ou dispositivos.
/proc e /sys: Estes são diretórios especiais que contêm as informações de processos e hardware.
/dev: Estão contidos neste diretório os arquivos de acesso a dispositivos e outros arquivos especiais.
Diretórios que podem ser pontos de montagem:
/boot: Ele contém o kernel e mapas do sistema e os bootloaders de segundo estágio.
/home: Contém os diretórios pessoais dos usuários. /root: Contém os arquivos do usuário root. /tmp: Arquivos temporários. /usr/local e /opt: Estes diretórios contêm programas adicionais.
Também podem conter as bibliotecas necessárias para os programas adicionais.
/var: Este diretório contém os dados de programas e arquivos relacionados, arquivos de logs, bancos de dados, arquivos de sites. Pode ou não conter diretórios compartilhados.
Localizando arquivos
Foi visto na terceira lição da terceira semana o comando find. Neste tópico
mostraremos outro importante comando de localização, o comando locate.
Sua utilização é bastante simples, todo os caminhos de arquivos ou diretórios
contendo a expressão fornecida como argumento serão mostrados.
Para utilizar este comando, é necessário porém ter um banco de dados com
informações de todos os arquivos. Este banco de dados pode ser criado com o
comando updatedb, que só pode ser utilizado pelo root. Geralmente esta
atualização do banco de dados é feita através de agendamento, com o cron,
mas também pode ser executada manualmente.
Julgue a seguinte afirmação: O comando locate é mais rápido que o comando find.
Falso.
Verdadeiro.
1 Notas: 1
Como se verifica os módulos que estão atualmente carregados?
Escolher uma resposta.
a. Através do arquivo /etc/modprobe.conf
b. Através do comando uname --modules
c. Através do comando lsmod Correto!
d. Através do comando showmodules
Correto
Notas relativas a este envio: 1/1.
Question2 Notas: 1
Qual nível de execução é o de reinício do sistema?
Escolher uma resposta.
a. 6
b. 0
c. 1
d. 3 Errado.
Errado
Notas relativas a este envio: 0/1.
Question3 Notas: 1
Associe cada caractere com a sua função em uma expressão regular.
Fim de linha
$
Início de linha
^
UM caractere qualquer.
.
Correto
Notas relativas a este envio: 1/1.
Question4 Notas: 1
Julgue a seguinte afirmação: Uma variável exportada estará disponível em todas as sessões do bash.
Resposta:
Verdadeiro Falso
Correto!
Correto
Notas relativas a este envio: 1/1.
Question5 Notas: 1
Quais dos seguintes comandos(desconsidere os argumentos) podem ser utilizados para reiniciar o computador?
Escolha pelo menos uma resposta.
a. shutdown Correto!
b. telinit
c. sysreboot
d. powerdown
Parcialmente correta
Notas relativas a este envio: 0.5/1.
Question6 Notas: 1
Para listar as partições do dispositivo localizado em /dev/sdb, qual o comando utilizado?
Escolher uma resposta.
a. fdisk -p /dev/sdb Errado.
b. ls -l /dev/sdb
c. cat /dev/sdb
d. fdisk -l /dev/sdb
Errado
Notas relativas a este envio: 0/1.
Question7 Notas: 1
Selecione as opções que informam os status de processos.
Escolha pelo menos uma resposta.
a. process
b. lsprocess
c. top
d. info.process
e. ps Correto!
Parcialmente correta
Notas relativas a este envio: 0.5/1.
Question8 Notas: 1
Escolha as opções que podem ser pontos de montagem num sistema FHS.
Escolha pelo menos uma resposta.
a. /boot Correto!
b. /etc
c. /sys
d. /root Correto!
e. /proc
Correto
Notas relativas a este envio: 1/1.
Question9 Notas: 1
Julgue a seguinte afirmação: Após os seguintes comandos, o conteúdo de arquivotexto será perdido: pedro-brito@cdtcsun04:~$ ln arquivotexto copiaarquivotexto pedro-brito@cdtcsun04:~$ ls -l *arquivotexto
Qual o comando que mostra as informações sobre a memória RAM?
Escolher uma resposta.
a. sysram
b. ls --ram
c. free Correto!
d. df
Correto
Notas relativas a este envio: 1/1.
2º tentativa
1 Notas: 1
Selecione as opções que contém as pastas que DEVEM estar presentes na partição raiz, em um sistema FHS.
Escolha pelo menos uma resposta.
a. /bin Correto!
b. /proc Correto!
c. /boot
d. /root
e. /home
Correto
Notas relativas a este envio: 1/1.
Question2 Notas: 1
Selecione as opções que informam os status de processos.
Escolha pelo menos uma resposta.
a. lsprocess
b. info.process
c. ps Correto!
d. process
e. top Correto!
Correto
Notas relativas a este envio: 1/1.
Question3 Notas: 1
Para listar as partições do dispositivo localizado em /dev/sdb, qual o comando utilizado?
Escolher uma resposta.
a. ls -l /dev/sdb
b. fdisk -l /dev/sdb Correto!
c. cat /dev/sdb
d. fdisk -p /dev/sdb
Correto
Notas relativas a este envio: 1/1.
Question4 Notas: 1
Escolha a(s) opção(ões) que mata(m) o seguinte processo iceweasel: pedro-brito@cdtcsun04:~$ ps aux | egrep 'iceweasel|PID' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 1019 12511 8.6 6.7 368092 173188 ? Sl 07:22 6:48 /usr/lib/iceweasel/firefox-bin -a iceweasel 1019 12969 0.0 0.0 3136 796 pts/1 S+ 08:41 0:00 egrep iceweasel|PID pedro-brito@cdtcsun04:~$
Escolha pelo menos uma resposta.
a. killall -9 iceweasel
b. killall iceweasel
c. kill -9 12511 Correto!
d. killall -SIGTERM iceweasel
e. kill 12511
Parcialmente correta
Notas relativas a este envio: 0.5/1.
Question5 Notas: 1
Como definir corretamente uma variável no BASH?
Escolher uma resposta.
a. $VARIAVEL="Valor da Variavel"
b. VARIAVEL=Valor da Variavel
c. $VARIAVEL=Valor da Variavel
d. VARIAVEL="Valor da Variavel" Correto!
Correto
Notas relativas a este envio: 1/1.
Question6 Notas: 1
Julgue a seguinte afirmação: Após executar os seguintes comandos, o conteúdo de arquivo texto ainda estará acessível via copiaarquivotexto: pedro-brito@cdtcsun04:~$ ln -s /home/pedro-brito/arquivotexto copiaarquivotexto pedro-brito@cdtcsun04:~$ ls -l *arquivotexto -rw-r--r-- 1 pedro-brito pedro-brito 0 Jan 29 08:51 arquivotexto lrwxrwxrwx 1 pedro-brito pedro-brito 30 Jan 29 08:56 copiaarquivotexto -> /home/pedro-brito/arquivotexto pedro-brito@cdtcsun04:~$ mv copiaarquivotexto ~/Desktop/
Resposta:
Verdadeiro Falso
Correto!
Correto
Notas relativas a este envio: 1/1.
Question7 Notas: 1
Associe cada caractere com a sua função em uma expressão regular.
Fim de linha
$
Início de linha
^
UM caractere qualquer.
.
Correto
Notas relativas a este envio: 1/1.
Question8 Notas: 1
Julgue a seguinte afirmação: Após os seguintes comandos, não será possível acessar o conteúdo de arquivotexto, via copiaarquivotexto: pedro-brito@cdtcsun04:~$ ln -s arquivotexto copiaarquivotexto pedro-brito@cdtcsun04:~$ ls -l *arquivotexto -rw-r--r-- 1 pedro-brito pedro-brito 0 Jan 29 08:51 arquivotexto lrwxrwxrwx 1 pedro-brito pedro-brito 12 Jan 29 08:52 copiaarquivotexto -> arquivotexto pedro-brito@cdtcsun04:~$ mv copiaarquivotexto ~/Desktop/
Resposta:
Verdadeiro Falso
Errado! Como o caminho ao setar o softlink era relativo, ao mover o link ele se tornará quebrado.
Errado
Notas relativas a este envio: 0/1.
Question9 Notas: 1
Escolha as opções que podem ser pontos de montagem num sistema FHS.
Escolha pelo menos uma resposta.
a. /boot Correto!
b. /etc
c. /proc
d. /sys
e. /root Correto!
Correto
Notas relativas a este envio: 1/1.
Question10 Notas: 1
Julgue a seguinte afirmação: Após os seguintes comandos, o conteúdo de arquivotexto será perdido: pedro-brito@cdtcsun04:~$ ln arquivotexto copiaarquivotexto pedro-brito@cdtcsun04:~$ ls -l *arquivotexto -rw-r--r-- 2 pedro-brito pedro-brito 0 Jan 29 08:47 arquivotexto -rw-r--r-- 2 pedro-brito pedro-brito 0 Jan 29 08:47 copiaarquivotexto pedro-brito@cdtcsun04:~$ rm -f arquivotexto pedro-brito@cdtcsun04:~$