Linux4all#2 é o segundo minicurso da série Linux4all sobre Gnu/Linux, realizado na Uncisal (Universidade Estadual de Ciências Médicas de Alagoas). Abordando conceitos teóricos/praticos a nível intermediário de uma forma simples e dinâmica, onde fui o instrutor.
3. Como tudo começou...
Richard Stallman funda a FSF (Free
Software Foundation)
FSF cria a licença GPL (GNU Public
Licence)
Qualquer programa que pode ser
usado, copiado, estudado e
redestribuído sem restrinções
Softwarelivre
4. 4 liberdades
A liberdade para executar o programa,
para qualquer propósito
A liberdade de estudar como o programa
funciona, e adaptá-lo para as suas
necessidades
A liberdade de redistribuir, inclusive
vender, cópias de modo que você possa
ajudar ao seu próximo
A liberdade de modificar o programa, e
liberar estas modificações, de modo que
toda a comunidade se beneficie
Softwarelivre
6. A revolução
1984, Richard Stallman cria o
Projeto GNU
1991, Linus Torvalds cria o Kernel
O Compilador gcc da GNU foi usado
para compilar o kernel
Vários softwares GNU funcionavam
desde o 1º dia no Kernel Linux
Gnu/Linux
8. Por dentro da fera...
Árvore de diretórios
/
/bin /boot /dev /etc /home ...
/ - Diretório raiz do sistema
Hierarquia
9. Por dentro da fera...
/bin - Arquivos binários de comandos
essenciais do sistema
/boot - Arquivos de boot
(inicialização; Linux Loader; Grub);
kernel do Linux
/dev - Dispositivos (devices) de
entrada/saída: floppy, hardisk,
cdrom, modem, dentre outros
/etc - Arquivos de configuração
(scripts) e inicialização.
Hierarquia
10. Por dentro da fera...
/home - Diretório local (home) de
usuários
/lib - Bibliotecas e módulos(drives):
compartilhadas com freqüência
/mnt - Diretório de montagem de
dispositivos, sistemas de arquivos e
partições
/opt - Para instalação de programas
não oficiais da distribuição
Hierarquia
11. Por dentro da fera...
/proc - Diretório virtual (RAM)
onde rodam os processos ativos
/root - Diretório local do
superusuário (root)
/sbin - Arquivos de sistema
essenciais (binários do
superusuário)
/tmp - Arquivos temporários gerados
por alguns utilitários
Hierarquia
12. Por dentro da fera
/usr - Arquivos de usuários nativos
da distribuição
/usr/local - Para instalação de
programas não oficiais da
distribuição
/usr/src - Arquivos fontes do
sistema necessários para compilar o
kernel
/var - Arquivos de log e outros
Hierarquia
15. Shells
Existem vários Shells, cada um com
suas configurações e funções
especificas
S.R. Bourne cria o Bourne Shell
Surge o C Shell criado por Bill Joy
e o Korn Shell desenvolvido por
David Korn
Bash (Bourne Again Shell) é criado
pela GNU
Shell
16. Símbolos
O sinal “$” significa o usuário
normal
O sinal “#” significa o super-
usuário, root
Root é o administrador do sistema
O super-usuário pode fazer qualquer
coisa no sistema
Shell
17. Variáveis...
Variáveis de ambientes PS1 e PS2
(Prompt String)
PS1 guarda o conteúdo do prompt do
bash
PS2 guarda o conteúdo do prompt para
várias linhas (“”)
Variável PATH
Visualizar PS1, PS2 e PATH usando o
comando echo
Shell
18. Variáveis
Segue uma ordem para achar e
executar os comandos
Visualizar todas variáveis do shell
com o comando set
Criar uma nova variável do shell
usando o comando export:
slack=”slackware_linux”
export slack
Uma variável exportada é global
Shell
19. Sintaxe
Palavras reservadas: case, do, done,
elif, else, esac, fi, for, function,
if, in, select, then, until, while e
time
Alguns comandos requerem parâmetros
especiais, usando “-” ou “--”
Para obter uma ajuda use --help
Vários comandos devem ser separado
por “;”
Shell
20. Argumentos
Nem todos os comandos aceitam
argumentos usando o “-” ou “--”,
como por exemplo: dd if=/dev/sda1
of=/dev/sdb1
Se o comando não estiver na variável
PATH, teremos que explicitar o
caminho completo
“~” significa diretório home do
usuário
Shell
21. Atalhos...
O bash escreve os comando digitados
em um arquivo chamado .bash_history
!! - executa o último comando
!n – executa o comando na linha n no
arquivo .bash_history
!linux – executa o comando linux
!?linux – executa o comando que
contém o texto linux
Shell
22. Atalhos
Ctrl rlinux- procura o comando linux
do último para o primeiro
Alt m< – vai para o início do
arquivo .bash_history
Alt m> – vai para o final do arquivo
.bash_history
Variável ambiente $SHELL
Shell
26. Projetando o sistema
Partição Swap
Planejar as partições de acordo com
o sistema a ser instalado
Escolher uma distribuição linux
Instalação
27. Lilo
Lilo é o mais antigo gerenciador de
boot do linux
Dividido em 2 partes, uma fica na
MBR e a outra em uma partição. Onde
é oferecido uma linha de comando
(prompt), para escolher qual imagem
do kernel carregar ou qual sistema
operacional
Seu arquivo de configuração fica
em /etc/lilo.conf
Instalação
28. Grub
Grub é uma alternativa como
gerenciador de boot do linux
Não há dinstinção entre dispositivos
IDE e SCSI, todos são hd(x,y)
Seus arquivo de configuração fica em
/boot/grub/menu.lst
Grub oferece algumas funcionalidades
a mais que o lilo
Instalação
30. Comandos...
ls – lista diretório
clear – limpa a tela
cd – muda de diretório
pwd – mostra o caminho corrente
cat – concatena e visualiza arquivo
less – visualiza arquivo
find – procura arquivo
Comandosbásicos
31. Comandos...
free – mostra a memória livre
shutdown – desliga o computador
reboot – reinicia o computador
startx – inicia um ambiente X
lspci – lista dispositivos pci
lsusb – lista dispositivos usb
lsmod – lista módulos do kernel
Comandosbásicos
33. Comandos...
useradd – adiciona um usuário
userdel – remove um usuário
groupadd – adiciona um grupo
groupdel – remove um grupo
passwd – modifica a senha do usuário
cal – visualiza calendário
date – visualiza data e hora
Comandosbásicos
34. Comandos...
lynx – navegador web via shell
who – mostra quem está logado
w – informações de quem está logado
uname – informações do computador
vim – editor de texto
emacs – editor de texto
Comandosbásicos
35. Comandos
su – transforma em root
ps – relata processos
top – processos em hierarquia
kill – encerra processos
history – comandos já digitados
df – informações sobre partições
du – informações sobre arquivos
man – manuais on-line
Comandosbásicos
37. Boot...
No boot, a BIOS
(Basic Input Output
System) realiza
vários teste usando
o POST (Power-On
Self Test)
No setor de boot é
gravado o software
para a carga dos
sistemas
operacionais
Booterunlevels
38. Boot
Podemos passar parâmetro no boot ou
no arquivo de configuração
As informações são passadas para o
kernel
O gerenciador de boot permite várias
opções
Ao carregar o Kernel no boot, são
exibidas várias informações úteis
como cpu, memória, hardwares,
serviços, dentre ouros
Booterunlevels
39. Runlevels...
Runlevels é a execução de processos
em ordem programada
Há 7 Runlevels, de 0 a 6
Runlevel 0 é a sequência de
desligamento (shutdown) e runlevel 6
reinicialização (reboot)
Runlevel 3 a 5 para carga normal do
sistema
Booterunlevels
40. Runlevels...
Runlevel 1 (single user) é usado
para manutenção do sistema
Runlevel 2 é o modo multi-usuário
sem o compartilhamento de arquivo
NFS
Runlevel 3 é o modo multi-usuário
sem interface gráfica
Runlevel 4 não é ultilizado
Runlevel 5 é o modo multi-usuário
com interface gráfica
Booterunlevels
41. Runlevels...
Podemos alterar o runlevel usando o
comando init
O boot segue a seguência
/etc/rc.d/rc.sysinit →
/etc/rc.d/rc.local /etc/rc.d/rc→
/etc/init.d,→ variando de
distribuição para distribuição o
nome e local dos arquivos
Em /etc/inittab podemos definir o
runlevel padrão entre ouros
Booterunlevels
43. Estrutura do sistema
Sistema de arquivos
robusto e flexível, que
posibilita manter
arquivos em diferente
partições, discos,
dispositivos e até em
computadores remoto
Suporta diversos
dispositivos e sistema
de arquivos
Sistemade
arquivos
44. Partições
As partições servem como um
contêiner
Cada disco podem ter 4 partição
primária, de 1 a 4, e 1 estendida
Pelo menos 1 primária deve ser
criada como ativa (boot)
A partição estendida serve como
contêiner para as partições lógicas,
suportando até 12
Sistemade
arquivos
46. Ultilitarios
Partição Swap (troca de arquivo)
Os programas fdisk e cfdisk são
responsáveis por criar as partições
O fdisk e cfdisk são particionadores
em modo texto, sendo o último mais
amigável
Sistemade
arquivos
47. Montagem do sistema
Pontos de montagens
mount e umount
Sistema de arquivos suportados:
ext3, ext4, reiserfs, vfat, iso9660
O arquivo /etc/fstab
Sistemade
arquivos
50. Definições
| dono | grupo | outros
d | r w x | r – x | r - -
d = tipo de arquivo: diretório (d),
arquivo (-), link (l), dispositivo
de bloco (b), dispositivo de
caractere
Permissões hierarquica
Permissões
51. Bits especiais...
Bit de SUID afeta arquivo
executáveis. Geralmente usado para
dar a um programa permissão de root
Bit de SGID funciona como o SUID
mas executa a permissão do grupo do
dono do arquivo
Bit Sicky permanece na memória mesmo
depois de terminado
Permissões
53. Ultilitários...
O comando umask mostra a máscara das
permissões, aceitando número inteiro
de 3 dígitos
As permissões padrão para os
usuários são 666 (rw-rw-rw-) e 777
(rwxrwxrwx)
Com o comando umask as permissões
são alteradas tendo como base a
permissão padrão
Permissões
54. Ultilitários...
O comando chmod modifica as
permissões dos arquivos, usando a
letra u (user), g (group), o
(others) e a (all), + (adicionar), -
(retirar), = (igualdade para as
operações), r (read), w (write), x
(execute), X (execute for all) s
(SUID/SGID) e t (Sticky)
Permissões
55. Ultilitários
O comando chown e chgrp altera o
dono ou grupo de arquivo ou
diretório
O comando chattr modifica os
atributos de arquivo ou diretório
O comando lsattr visualiza os
atributos de arquivo ou diretório
Link simbólico e hard links, o
comando ln cria os links
Permissões
57. Formato
Os arquivos de extensão .tar.gz
ou .gz, bz2 e tbz2 são uma estrutura
de arquivos e diretórios compactados
denominado tarball
Descompactando um arquivo .tar.gz
com o comando tar
Descomapcatando um arquivo .tar.bz2
com bzip
Instalaçãoe
compilação
58. Compilação
Depois de extrair é necessário
compilar e instalar
Um compilador é um programa que
processa instruções escrita em uma
linguagem de programação de alto
nivel, e gera código de máquina, ou
executável
Compilador GCC, compila códigos em
C, C++, Java, Fortran e etc
Make e configure
Instalaçãoe
compilação
60. Referência
Howtos – documentos que detalham os
procedimentos detalhadamente
Man – manuais on-line do sistema
Info – documentação fornecida pela
Gnu
Faq – informações fornecidas por
perguntas e respostas
Mailing list – lista de discusão
Documentação