© Casa do Código
Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998.
Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem auto-
rização prévia por escrito da editora, sejam quais forem os meios: fotográficos,
eletrônicos, mecânicos, gravação ou quaisquer outros.
Casa do Código
Livros para o programador
Rua Vergueiro, 3185 - 8º andar
04101-300 Vila Mariana São Paulo SP Brasil
Casa do Código
Agradecimentos
Dedico este trabalho à minha esposa Mychelle, obrigado por compreender a minha
ausência quando necessário e pelo apoio em todos os momentos. Aos meus pais pelo
constante apoio e incentivo.
Agradeço a Casa do Código pela oportunidade de escrever esse livro, especial-
mente ao Paulo Silveira pelos ensinamentos e opiniões de muito valor sobre o con-
teúdo e organização do mesmo.
Agradecimentos especiais aos amigos Francieric Alves por mostrar o caminho
das pedras e Fred Portela por ajudar a trilhar esse caminho. Agradeço também a
todos os amigos que me ajudaram direta ou indiretamente na construção do livro.
Por fim, agradeço a Deus por mais esta oportunidade.
i
Casa do Código
Sumário
Sumário
1
Introdução
1
1.1
Para quem é este livro . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
O que é Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Por que o Ubuntu? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.4
Instalação do Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.5
Navegando no novo sistema operacional . . . . . . . . . . . . . . . . .
12
2
Mão na massa: conhecendo o Shell
17
2.1
O que é o Shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2
Primeiro contato com o Shell . . . . . . . . . . . . . . . . . . . . . . . .
17
2.3
Trabalhando com diretórios . . . . . . . . . . . . . . . . . . . . . . . .
19
2.4
Trabalhando com arquivos . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.5
Pedindo ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.6
Localizando arquivos no sistema . . . . . . . . . . . . . . . . . . . . . .
30
2.7
Um passeio fora do ambiente gráfico . . . . . . . . . . . . . . . . . . .
32
3
Manipulando arquivos
33
3.1
O editor Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.2
O editor Nano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3
Trabalhando com o Cat . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.4
Exibindo o início e o fim de arquivos . . . . . . . . . . . . . . . . . . . 44
4
Compactação e descompactação de arquivos
47
4.1
Conhecendo o tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4.2
Conhecendo o gzip/gunzip . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.3
Conhecendo o zip/unzip . . . . . . . . . . . . . . . . . . . . . . . . . .
51
iii
Sumário
Casa do Código
5
Entendendo a estrutura de diretórios
53
5.1
A estrutura de diretórios . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.2
Os diretórios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
5.3
Os diretórios /proc e /sys . . . . . . . . . . . . . . . . . . . . . . . . . .
55
6
Administração de usuários
57
6.1
Gerenciando usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
6.2
Permissões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
6.3
Atribuindo permissões . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
6.4
Criando grupos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
6.5
Criando usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.6
Alterando grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
7
Instalando pacotes e aplicativos
71
7.1
Gerenciador de pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
7.2
Gerenciando pacotes com APT . . . . . . . . . . . . . . . . . . . . . .
76
8
Prática, instalando Apache, PHP e MySQL
81
8.1
Instalando o Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
8.2
Linkando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
8.3
Instalando e configurando o MySQL . . . . . . . . . . . . . . . . . . .
85
8.4
Instalando e configurando o PHP . . . . . . . . . . . . . . . . . . . . .
88
9
Entendendo processos
91
9.1
O que são processos? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
9.2
O processo init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
9.3
A identificação de processos . . . . . . . . . . . . . . . . . . . . . . . .
92
9.4
Verificando processos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
9.5
O que são sinais de processos? . . . . . . . . . . . . . . . . . . . . . . .
98
9.6
Processos e suas prioridades . . . . . . . . . . . . . . . . . . . . . . . . 101
10 Introdução a Shell Script
103
10.1
O primeiro script