Você está na página 1de 363

Linux ONE

www.linuxforce.com.br
Contedo
1 Conhecendo um novo mundo 1
1.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Distribuies GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Instalao Desktop Debian e CentOS 7
2.1 Instalao do Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Instalao CentOS: . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Primeiros Passos 30
3.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Terminal Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Logon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4 Introduo ao Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Conguraes de Teclado no Console . . . . . . . . . . . . . . . . . . . 38
3.5.1 Alterando o Layout do teclado: . . . . . . . . . . . . . . . . . . . 38
3.5.2 CentOS: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.6 Conguraes do mouse no Console . . . . . . . . . . . . . . . . . . . 40
3.7 Histrico de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.8 FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.9 Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.10 Desligando o Computador . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.11 Reiniciando o Computador . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.12 LAB1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4 Obtendo ajuda 52
4.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Linux Force www.linuxforce.com.br Contedo
4.2 Formas de Documentao . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.1 How-tos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.2 Manuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.3 Documentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3 Comandos de ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3.1 Comando help . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3.2 Comando apropos . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3.3 Comando whatis . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.4 Comando man . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3.5 Comando info . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4 Comando whereis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.5 Comando which . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.6 lab2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5 Aprendendo comandos do GNU/Linux 69
5.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2 O comando ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3 Criao, movimentao, cpia e remoo de arquivos e diretrios . . . 74
5.3.1 Criar arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.2 Curingas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.3 Criando diretrios . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.4 Removendo arquivos/diretrios . . . . . . . . . . . . . . . . . . 78
5.3.5 Copiar arquivos/diretrios . . . . . . . . . . . . . . . . . . . . . . 80
5.3.6 Mover ou renomear arquivos/diretrios . . . . . . . . . . . . . . 81
5.4 LAB3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6 FHS, Hierarquia dos Diretrios 83
6.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2 Estrutura de Diretrios GNU/Linux . . . . . . . . . . . . . . . . . . . . . 85
6.2.1 Diretrio / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.2 DIRETRIO /bin . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.3 Diretrio /boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.4 Diretrio /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.5 Diretrio /etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.6 Diretrio /lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2.7 Diretrio /media . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Linux ONE Pgina ii
Linux Force www.linuxforce.com.br Contedo
6.2.8 Diretrio /mnt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.9 Diretrio /opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.10 Diretrio /sbin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.2.11 Diretrio /srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.2.12 Diretrio /tmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.2.13 Diretrio /usr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2.14 Diretrio /var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2.15 Diretrio /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.2.16 Diretrio /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.17 Diretrios /home e /root . . . . . . . . . . . . . . . . . . . . . . . 101
6.2.18 Localizao no sistema: nd . . . . . . . . . . . . . . . . . . . . 102
6.2.19 xargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.3 Lab4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7 Editores de texto 109
7.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.2 Editor Nano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3 Editor Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4 Praticando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.4.1 Outras funcionalidades do vim . . . . . . . . . . . . . . . . . . . 115
7.5 Deixando o vim com sua cara: . . . . . . . . . . . . . . . . . . . . . . . 120
7.6 LAB5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8 Administrao da Shell 122
8.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.2 O que uma shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3 Variveis em Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3.1 Variveis Locais e de Ambiente (globais) . . . . . . . . . . . . . 127
8.4 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.4.1 Arquivos de Login . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.2 Arquivos /etc/issue e /etc/motd . . . . . . . . . . . . . . . . . . . 134
8.5 Tipos de shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.6 LAB6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9 Introduo a Redes 138
9.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Linux ONE Pgina iii
Linux Force www.linuxforce.com.br Contedo
9.2 Entendendo o IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.3 Entendendo o gateway da rede . . . . . . . . . . . . . . . . . . . . . . 142
9.4 O servidor DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.5 Arp e RARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
9.6 Congurando a Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.6.1 Congurando IP e Mscara . . . . . . . . . . . . . . . . . . . . . 145
9.6.2 Congurando o gateway . . . . . . . . . . . . . . . . . . . . . . 147
9.6.3 Congurao dos DNS Servers . . . . . . . . . . . . . . . . . . 148
9.6.4 Congurao esttica de rede . . . . . . . . . . . . . . . . . . . 149
9.7 Congurando hosts e hostname DEBIAN . . . . . . . . . . . . . . . . . 152
9.8 Congurando hosts e hostname CentOS: . . . . . . . . . . . . . . . . . 154
9.9 LAB7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
10 Servidor SSH 157
10.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10.2 Chaves de Criptograa Assimtricas . . . . . . . . . . . . . . . . . . . . 159
10.3 Formas de Utilizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
10.3.1 Acesso SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
10.3.2 Copiando Arquivos Remotos . . . . . . . . . . . . . . . . . . . . 161
10.3.3 Cpia maq_LOCAL para maq_REMOTA . . . . . . . . . . . . . 161
10.3.4 Cpia maq_REMOTA para maq_LOCAL . . . . . . . . . . . . . 162
10.3.5 SSH com Chaves Assimtricas . . . . . . . . . . . . . . . . . . . 163
10.3.6 Acesso por SSH sem senha com ssh-agent . . . . . . . . . . . . 165
10.3.7 Congurando o servidor SSH (CentOS): . . . . . . . . . . . . . . 166
10.3.8 Cpia remota com porta diferente: . . . . . . . . . . . . . . . . . 171
10.3.9 Tunelamento SSH . . . . . . . . . . . . . . . . . . . . . . . . . . 172
10.3.10Mensagem em broadcast: wall . . . . . . . . . . . . . . . . . . . 173
10.4 LAB8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11 TCP Wrappers 176
11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
11.2 Entendendo o TCP Wrappers . . . . . . . . . . . . . . . . . . . . . . . . 178
11.3 Suporte a TCP/Wrappers . . . . . . . . . . . . . . . . . . . . . . . . . . 180
12 Comandos avanados 182
12.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Linux ONE Pgina iv
Linux Force www.linuxforce.com.br Contedo
12.2 Trabalhando com entrada e sada de dados . . . . . . . . . . . . . . . . 184
12.3 Alterando os redirecionamentos . . . . . . . . . . . . . . . . . . . . . . 185
12.3.1 O direcionador > . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
12.3.2 O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
12.3.3 O direcionador < . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
12.3.4 O direcionador 2> . . . . . . . . . . . . . . . . . . . . . . . . . . 189
12.3.5 O direcionador 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 190
12.3.6 O direcionador 2>&1 . . . . . . . . . . . . . . . . . . . . . . . . . 190
12.3.7 O direcionador &> . . . . . . . . . . . . . . . . . . . . . . . . . . 192
12.3.8 O direcionador & . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.3.9 O direcionador | . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
12.3.10O direcionador tee . . . . . . . . . . . . . . . . . . . . . . . . . . 194
12.3.11O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
12.4 dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12.4.1 Sintaxe: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12.5 Contagem: wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
12.6 split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
12.7 Determinando o tipo de arquivo: le . . . . . . . . . . . . . . . . . . . . 201
12.8 who . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
12.9 w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
12.10ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
12.11Inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
12.12stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
12.13Link simblico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
12.13.1Hard links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
12.13.2nl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12.13.3Classicao: sort . . . . . . . . . . . . . . . . . . . . . . . . . . 212
12.13.4Eliminando linhas repetidas: uniq . . . . . . . . . . . . . . . . . . 213
12.14Filtragem : grep e egrep e fgrep . . . . . . . . . . . . . . . . . . . . . . 214
12.14.1grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
12.14.2egrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
12.14.3fgrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
12.14.4sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
12.14.5Filtrar colunas: cut e awk . . . . . . . . . . . . . . . . . . . . . . 218
Linux ONE Pgina v
Linux Force www.linuxforce.com.br Contedo
12.15Juntando dois arquivos em um: join e paste . . . . . . . . . . . . . . . . 220
12.15.1join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
12.15.2paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
12.16lab9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
13 Manipulando Hardware e Dispositivos 223
13.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
13.2 Explorando o /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
13.3 Dispositivos de armazenamento . . . . . . . . . . . . . . . . . . . . . . 229
13.4 O que uma partio? . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
13.4.1 Tipos de parties . . . . . . . . . . . . . . . . . . . . . . . . . . 232
13.5 Criando Parties no HD . . . . . . . . . . . . . . . . . . . . . . . . . . 236
13.6 Particionamento com FDISK . . . . . . . . . . . . . . . . . . . . . . . . 237
13.6.1 Particionamento com CFDISK . . . . . . . . . . . . . . . . . . . 239
13.7 Aplicando um Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . 242
13.7.1 O que JOURNALING? . . . . . . . . . . . . . . . . . . . . . . 243
13.7.2 Aplicando um FileSystem . . . . . . . . . . . . . . . . . . . . . . 244
13.7.3 Espao em Disco: df . . . . . . . . . . . . . . . . . . . . . . . . . 245
13.7.4 Denindo tamanho dos objetos: du . . . . . . . . . . . . . . . . . 245
13.8 Devices, UUID e Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
13.8.1 Rotulando uma partio: . . . . . . . . . . . . . . . . . . . . . . 250
13.8.2 Usando os dispositivos de armazenamento . . . . . . . . . . . 251
13.9 Migrando de Filesystem ext sem perder dados: . . . . . . . . . . . . . . 258
13.10SWAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
13.11Montagem automtica de Filesystem no boot . . . . . . . . . . . . . . . 264
13.11.1Mostrar o uso de memria RAM: free . . . . . . . . . . . . . . . 265
13.12LAB10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
14 Instalando, removendo e atualizando programas 268
14.1 O que um pacote? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
14.2 Mas o que um gerenciador de pacotes? . . . . . . . . . . . . . . . . 270
14.3 Gerenciando pacotes no Debian: . . . . . . . . . . . . . . . . . . . . . . 271
14.4 Instalao, Remoo e Atualizao . . . . . . . . . . . . . . . . . . . . 272
14.5 Removendo pacotes que no sero mais usados . . . . . . . . . . . . . 278
14.6 Atualizar pacotes instalados: . . . . . . . . . . . . . . . . . . . . . . . . 279
14.7 Atualizao da distro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Linux ONE Pgina vi
Linux Force www.linuxforce.com.br Contedo
14.8 Gerenciamento de pacotes em distros baseadas em rpm. . . . . . . . 281
14.8.1 Instalando pacotes: . . . . . . . . . . . . . . . . . . . . . . . . . 283
14.8.2 Removendo pacotes: . . . . . . . . . . . . . . . . . . . . . . . . 283
14.8.3 Atualizando pacotes . . . . . . . . . . . . . . . . . . . . . . . . . 284
15 Compilando Programas 285
15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
15.2 Congure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
15.3 Makele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
15.4 LAB11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
16 Bibliotecas 293
16.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
16.2 Tipos fundamentais de programas executveis . . . . . . . . . . . . . . 295
16.3 Modo Esttico e Compartilhado . . . . . . . . . . . . . . . . . . . . . . . 297
16.4 Listando Bibliotecas disponveis . . . . . . . . . . . . . . . . . . . . . . 299
16.5 Localizao das bibliotecas? . . . . . . . . . . . . . . . . . . . . . . . . 300
16.6 Adicionando novas bibliotecas ao sistema . . . . . . . . . . . . . . . . 301
16.7 lab12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
17 Instalao de Programas com DPKG e RPM 306
17.1 Pacotes Debian - DPKG . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
17.2 Pacotes RPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
17.2.1 Base de dados RPM . . . . . . . . . . . . . . . . . . . . . . . . . 309
17.3 Prtica Dirigida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
17.3.1 Convertendo extenses de arquivos . . . . . . . . . . . . . . . . 313
17.3.2 Gerenciando Pacotes em Formato RPM . . . . . . . . . . . . . . 315
18 Gerenciamento de Processos 319
18.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
18.2 E como fazemos para gerenciar os processos? . . . . . . . . . . . . . . 325
18.3 Denido prioridades dos processos . . . . . . . . . . . . . . . . . . . . . 336
18.4 LAB14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
19 Inicializao 339
19.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
19.2 System V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Linux ONE Pgina vii
Linux Force www.linuxforce.com.br Contedo
19.3 Nveis de Execuo - System V . . . . . . . . . . . . . . . . . . . . . . . 342
19.4 O que faz um script de inicializao? . . . . . . . . . . . . . . . . . . . . 345
19.5 Removendo um script da inicializao: . . . . . . . . . . . . . . . . . . . 348
19.6 Gerenciando servios: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
19.7 LAB15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Linux ONE Pgina viii
Captulo 1
Conhecendo um novo mundo
Linux Force www.linuxforce.com.br Conhecendo um novo mundo
1.1 Introduo terica
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 conhece-
mos 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 uma
losoa de Mundo Livre e colaborativo, no qual as pessoas podem utilizar esses
softwares irrestritamete, 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;
Linux ONE Pgina 2
Linux Force www.linuxforce.com.br Conhecendo um novo mundo
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 melho-
rias 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
Como usar as licenas GPL: 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: 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
Linux ONE Pgina 3
Linux Force www.linuxforce.com.br Conhecendo um novo mundo
1.2 Distribuies GNU/Linux
Voc j deve ter ouvido falar em Debian, RedHat, Slackware, Suse, Mandriva, Ubuntu
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 comuni-
dades 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 iden-
tica 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 aplicati-
vos 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.
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:
Livres
Corporativas
Distribuies Livres - Mantidas por comunidades de colaboradores sem ns lucra-
Linux ONE Pgina 4
Linux Force www.linuxforce.com.br Conhecendo um novo mundo
tivos. Exemplos so: Debian, Slackware, Gentoo, Knoppix e CentOS, entre outras
de menor importncia.
Distribuies Corporativas - Mantidas por empresas que vendem o suporte ao seu
sistema. Exemplos: RedHat, Ubuntu, Suse e Mandriva.
Neste ponto vale ressaltar o fato de que o produto vendido pelas empresas que
comercializam sistemas GNU/Linux, so na verdade, os servios relacionados ao
sistema operacional, como suporte tcnico, garantias e treinamentos, ou seja, o ex-
pertise do sistema. Ento, de fato, no h produto algum sendo vendido, apenas os
servios relacionados aos softwares agregados na distribuio GNU/Linux.
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 utilizar mecanismos pouco
ticos para fazer o seu prprio 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 Livres, podemos dividi-las novamente em duas
outras categorias:
Convencionais
Live
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 funcio-
nal, de forma fcil e sem colocar em risco o sistema operacional original da mquina.
Linux ONE Pgina 5
Linux Force www.linuxforce.com.br Conhecendo um novo mundo
O fator que favoreceu essa abordagem que, em uma distribuio Live pratica-
mente todos os componentes j vm congurados, funcionando e com interfaces
agradveis aos usurios nais. Exemplos desse tipo de distribuio so o Knop-
pix, do qual se originaram diversas outras como o Kurumin ou Kalango, que so
verses traduzidas e adaptadas realidade brasileira.
Para entender umpouco mais sobre distribuies, necessrio lembrar de mais duas
caractersticas:
From scratch
Provenientes (Baseadas)
Distribuies From Scratch - So desenvolvidas do zero, ou seja, utilizam um ker-
nel Linux, alguns programas GNU e a grande maioria das suas particularidades
desenvolvida especicamente para ela. Exemplos:
Debian ;
RedHat;
Gentoo;
Slackware;
Distribuies Provenientes (Baseadas) - Aproveitam ferramentas e bases j de-
senvolvidas por outras distribuies. Distribuies baseadas usamdistribuies From
Scratch para alcanar seus objetivos mais rpido, dando maior ateno ao propsito
da distribuio. Exemplos: Ubuntu, DreamLinux, Kubuntu, Kurumin, Slax e BrDesk-
top, dentre outras.
Linux ONE Pgina 6
Captulo 2
Instalao Desktop Debian e CentOS
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
2.1 Instalao do Debian
Escolha do idioma:
Linux ONE Pgina 8
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha o pas de sua localidade:
Escolha o layout de teclado:
Escolha o nome da mquina (hostname):
Linux ONE Pgina 9
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha o domnio ao qual a mquina pertencer:
Escolha uma senha para o administrador (usurio root):
Conrme a senha do administrador:
Linux ONE Pgina 10
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Crie um usurio comum:
Escolha o login do usurio criado:
Escolha a senha do novo usurio:
Linux ONE Pgina 11
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Conrme a senha do usurio:
Escolha o fuso horrio de sua regio:
Escolha o tipo de particionamento:
Linux ONE Pgina 12
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha o esquema de particionamento:
Finalize o particionamento:
Linux ONE Pgina 13
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Tenha certeza que seu particionamento est correto, as alteraes sero gravadas
no disco e seus dados sero perdidos a partir daqui:
Caso tenha mais de um CD ou DVD, retire o atual e insira o prxima na sequncia
conrmando sua leitura, caso contrrio responda no.
Caso tenha um repositrio de pacotes (espelho de rede) digite sim, caso contrrio
no:
Linux ONE Pgina 14
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Caso o repositrio externo no possa ser acessado devido a falta de conexo com a
internet, prossiga com a instalao:
Escolha se quer enviar relatrios de pacotes utilizados:
Escolha os softwares a serem instalados:
Instale o carregador do sistema operacional:
Linux ONE Pgina 15
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
2.1.1 Instalao CentOS:
Escolha o tipo de instalao:
O sistema de ser carregado para instalao:
Linux ONE Pgina 16
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha se quer testar a mdia:
Continuar com a instalao:
Linux ONE Pgina 17
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha o idioma:
Linux ONE Pgina 18
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha o layout do teclado:
Linux ONE Pgina 19
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha o tipo de particionamento de disco:
Linux ONE Pgina 20
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Tenha certeza de que deseja remover todos os dados antes de continuar:
Congurar rede:
Linux ONE Pgina 21
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha sua regio para congurao do fuso horrio:
Dena a senha do administrador (root):
Linux ONE Pgina 22
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha quais aplicaes disponveis quer instalar e quais repositrios de pacotes
utilizar:
Linux ONE Pgina 23
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Continue a instalao do sistema:
O sistema ser formatado e instalado:
Linux ONE Pgina 24
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Reinicialize o sistema, aps a instalao:
Concluir a instalao:
Linux ONE Pgina 25
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Congurando o sistema:
Escolha os servios que sero habilitados pelo Firewall:
Linux ONE Pgina 26
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Escolha se quer habilitar o SELinux:
Congure a hora correta:
Linux ONE Pgina 27
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Crie um usurio:
Congure a placa de som:
Linux ONE Pgina 28
Linux Force www.linuxforce.com.br Instalao Desktop Debian e CentOS
Caso tenha CD ou DVD adicional adicione-os:
Linux ONE Pgina 29
Captulo 3
Primeiros Passos
Linux Force www.linuxforce.com.br Primeiros Passos
3.1 Introduo terica
A gura abaixo procura demonstrar como o sistema operacional GNU/Linux se orga-
niza em layers - camadas. Verique
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;
Kernel - O ncleo do sistema operacional, essa layer quem faz todas as intera-
es 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 congu-
raes. As ttys interpretam os comandos dados por um humano e convertem os
Linux ONE Pgina 31
Linux Force www.linuxforce.com.br Primeiros Passos
mesmos para uma linguagem que a mquina entenda;
DM - A layer de Display Manager responsvel por gerenciar os logins - va-
lidao de usurios - na interface grca e escolher o tipo de ambiente grco que
deve ser executado;
Desktop Environment - Mais conhecido como Ambiente de Trabalho, respon-
svel por abrigar todos os programas que necessitam de um ambiente grco para
funcionar.
Linux ONE Pgina 32
Linux Force www.linuxforce.com.br Primeiros Passos
3.2 Terminal Virtual
Terminal ou console, so o teclado e o monitor conectados em seu computador.
O GNU/Linux faz uso de sua caracterstica multi-usurio, ou seja, suporta vrios
usurios conectados ao mesmo tempo, usando os terminais virtuais. Um terminal
virtual uma segunda seo de trabalho completamente independente de outras e
que pode ser acessado no computador local ou remotamente, utilizando os progra-
mas telnet, rsh, rlogin, rdesktop, vnc, ssh, etc. Nos dias de hoje, o acesso
remoto muito importante. A qualquer distncia que se esteja do cliente, possvel
atend-lo.
No GNU/Linux possvel, em modo texto, acessar outros terminais virtuais, segu-
rando a tecla ALT e pressionando uma das teclas de F1 at F6. Cada tecla tem
funo correspondente a um nmero de terminal do 1 ao 6. Esse o comporta-
mento padro - default, 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 dis-
ponveis, 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.
Linux ONE Pgina 33
Linux Force www.linuxforce.com.br Primeiros Passos
3.3 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.
Linux ONE Pgina 34
Linux Force www.linuxforce.com.br Primeiros Passos
3.4 Introduo ao Shell
No Mundo GNU/Linux, utilizamos o Shell, que funciona como interpretador de co-
mandos. Ele a interface entre o usurio e o kernel do sistema e por meio dele,
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.
Olocal onde o comando ser digitado marcado por umtrao piscante na tela, cha-
mado 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 dire-
trios 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 diret-
rio 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
Linux ONE Pgina 35
Linux Force www.linuxforce.com.br Primeiros Passos
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 pos-
samos ir para cima ou para baixo, parecido com o scroll Para rolarmos a tela para
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 administra-
dor. Uma vez que o nvel tenha sido mudado ser possvel executar qualquer
comado com poderes de root.
Aps se logar com usurio aluno, utilize o comando su:
1 $ 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 # whoami
2 # who am i
Linux ONE Pgina 36
Linux Force www.linuxforce.com.br Primeiros Passos
O comando whoami indica quem voc no momento root. Se voc utilizou o co-
mando "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.
Ele tambm pode ser utilizado para trocar de usurio, ele no pedir a senha se voc
for usurio root:
1 # su - aluno
Com a opo - alm de trocar de usurio, tambm carregar as variveis locais do
usurio:
1 $ su -
Linux ONE Pgina 37
Linux Force www.linuxforce.com.br Primeiros Passos
3.5 Conguraes de Teclado no Console
Imagine que voc instalou uma mquina na sua casa e o seu teclado um teclado
padro brasileiro ABNT2 e voc chegou ao cliente e ele s possui teclados com
layout americano. Como resolver o problema?
3.5.1 Alterando o Layout do teclado:
DEBIAN
Altere o layout de teclado padro do sistema para car permanente: De-
bian:
1 # dpkg -reconfigure keyboard -configuration
E em seguida reinicie o servio:
1 # /etc/init.d/keyboard -setup restart
3.5.2 CentOS:
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.
1) Altere o layout de teclado para utilizar o padro brasileiro:
Linux ONE Pgina 38
Linux Force www.linuxforce.com.br Primeiros Passos
1 # loadkeys -d br -abnt2
2) Restaure o layout de teclado para o padro americano:
1 # loadkeys -d us -acentos
Alterando o layout permanentemente:
1 # vim /etc/sysconfig/keyboard
2 KEYBOARDTYPE="pc"
3 KEYTABLE="us -acentos"
Linux ONE Pgina 39
Linux Force www.linuxforce.com.br Primeiros Passos
3.6 Conguraes do mouse no Console
Para se utilizar o mouse em modo texto, basta instalar o software gpm.
Debian:
1 # apt -get install gpm
CentOS
1 # yum install gpm
Linux ONE Pgina 40
Linux Force www.linuxforce.com.br Primeiros Passos
3.7 Histrico de comandos
O terminal do GNU/Linux permite que voc guarde 500 comandos por padro no
Debian e 1000 comandos no CentOS.
1 # history
Linux ONE Pgina 41
Linux Force www.linuxforce.com.br Primeiros Passos
3.8 FC
FC signica Find Command ou Fix Command pois ele executa as duas tare-
fas, encontrar e corrigir comandos. Para listar os comandos j digitados, guardados
no history, digite:
1 # fc -l
Por padro mostra os ltimos 16 comandos. Para visualizar uma lista de comandos
do 2 ao 6 faa:
1 # fc -l 2 6
Para visualizar os ltimos 20 comandos:
1 # fc -l -2
Para visualizar todos os comandos desde o ltimo comeando com h:
1 # fc -l h
Linux ONE Pgina 42
Linux Force www.linuxforce.com.br Primeiros Passos
3.9 Logout
Logout a sada do sistema. Ela feita por um dos comandos abaixo:
1 \$ logout
2 \$ exit
3 \$ <CTRL >+D
Ou quando o sistema reiniciado ou desligado.
Linux ONE Pgina 43
Linux Force www.linuxforce.com.br Primeiros Passos
3.10 Desligando o Computador
Para desligar o computador, pode-se utilizar um dos comandos abaixo, sempre que
se esteja com o nvel de usurio root:
1 # shutdown -h now
2 # halt
3 # poweroff
A palavra halt vem do comando em assembly chamado HTL, que quer dizer pa-
rada de processamento. Assim, o GNU/Linux nalizar os programas e gravar os
dados remanescentes na memria no disco rgido. Quando for mostrada a mensa-
gem 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 ocor-
rer 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 com-
putador, 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:
1 # shutdown <ao> <tempo >
Onde: ao - o que voc quer fazer, cujas opes so:
Linux ONE Pgina 44
Linux Force www.linuxforce.com.br Primeiros Passos
h -> para desligar
r -> para reiniciar. tempo - tempo em minutos que voc deseja para comear a
executar a ao.
Exemplo, desligar agora:
1 # shutdown -h now
Ou
1 # shutdown -h
Desligar daqui a 12 minutos:
1 # shutdown -h 12 esta minha mensagem de aviso
Para cancelar o shutdown:
1 # shutdown -c
Linux ONE Pgina 45
Linux Force www.linuxforce.com.br Primeiros Passos
3.11 Reiniciando o Computador
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 simultane-
amente as teclas Ctrl + Alt + Del para reiniciar o sistema de forma segura. Obser-
vaes:
Salve seus trabalhos.
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.
Reiniciar agora:
1 # shutdown -r now
Ou
1 # shutdown -r
Reiniciar daqui a 5 minutos com mensagem:
1 # shutdown -r 5 esta minha mensagem de aviso
Acessando os diretrios
Linux ONE Pgina 46
Linux Force www.linuxforce.com.br Primeiros Passos
Vamos aprender agora alguns comandos essenciais para a nossa movimentao
dentro do sistema.
O comando pwd exibe o diretrio corrente. Ele muito til quando estamos nave-
gando pelo sistema e no lembramos qual o diretrio atual.
1 # pwd
O comando cd utilizado para mudar o diretrio atual de onde o usurio est. Ir
para o diretrio home do usurio logado:
1 # cd
2 # cd ~
Ir para o incio da rvore de diretrios, ou seja, o diretrio /:
1 # cd /
Ir para um diretrio especco:
1 # cd /etc
Sobe um nvel na rvore de diretrios:
1 # cd ..
Retorna ao diretrio anterior:
Linux ONE Pgina 47
Linux Force www.linuxforce.com.br Primeiros Passos
1 # cd -
Entra em um diretrio especco:
1 # cd /usr/share/doc
Sobe 2 nveis da rvore de diretrios:
1 # 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 ..
Fique esperto para conhecer as diferenas entre o . e o .. e o que eles repre-
sentam 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.
O comando ls utilizado para listar o contedo dos diretrios. Se no for es-
pecicado nenhum diretrio, ele ir mostrar o contedo daquele onde estamos no
momento. Lista o contedo do diretrio atual:
1 # ls
Linux ONE Pgina 48
Linux Force www.linuxforce.com.br Primeiros Passos
Atalhos do bash A seguir, vamos testar algumas funcionalidades da linha de co-
mando. No necessrio se preocupar em decor-los, com o passar do tempo,
pegamos um pouco mais de prtica:
Pressione a tecla Back Space para apagar um caractere esquerda do cur-
sor;
Pressione a tecla Delete para apagar o caractere direita do cursor;
Pressione a tecla Home para ir ao comeo da linha de comando;
Pressione a tecla End para ir ao nal da linha de comando;
Pressione as teclas Ctrl + A para mover o cursor para o incio da linha de
comandos;
Pressione as teclas Ctrl + E para mover o cursor para o m 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;
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 posi-
o atual do cursor;
Pressione as teclas Ctrl + d para sair do Shell. Este equivalente ao
comando exit;
Linux ONE Pgina 49
Linux Force www.linuxforce.com.br Primeiros Passos
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 ONE Pgina 50
Linux Force www.linuxforce.com.br Primeiros Passos
3.12 LAB1
Execute o script1.sh do Lab1
1- Congure o teclado que est descongurado e deixe permanente para que no
prximo reboot continue funcionando.
2 Foi agendado o desligamento da mquina para daqui a 10 minutos, cancele o
shutdown.
Linux ONE Pgina 51
Captulo 4
Obtendo ajuda
Linux Force www.linuxforce.com.br Obtendo ajuda
4.1 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 docu-
mentao. 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 dispon-
veis.
Essa ajuda provida por meio dos manuais, as famosas Man Pages.
Toda essa documentao que possumos no sistema GNU/Linux est dispo-
nvel 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.
Linux ONE Pgina 53
Linux Force www.linuxforce.com.br Obtendo ajuda
Abaixo vamos comear a nos familiarizar com a documentao existente e as formas
nas quais ela apresentada.
Linux ONE Pgina 54
Linux Force www.linuxforce.com.br Obtendo ajuda
4.2 Formas de Documentao
Existem diversas formas de se documentar um projeto, dentre elas temos os How-
tos, os manuais e as documentaes.
4.2.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 servi-
dor web e muitos outros. Normalmente esses documentos so instalados junto com
suas respectivas aplicaes ou podem ter um pacote especco para a documenta-
o 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:
1 # cd /usr/share/doc/iptables/
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 conheci-
mento, 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.
Linux ONE Pgina 55
Linux Force www.linuxforce.com.br Obtendo ajuda
4.2.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.2.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.
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 espe-
cicaes 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.
Linux ONE Pgina 56
Linux Force www.linuxforce.com.br Obtendo ajuda
4.3 Comandos de ajuda
Existem diversos comandos de ajuda no GNU/Linux, vamos abordar cada um deles
logo abaixo:
4.3.1 Comando help
O comando help prov ajuda para comandos internos do interpretador de coman-
dos, ou seja, o comando help fornece ajuda rpida. Ele muito til para saber quais
opes podem ser usadas com os comandos internos do interpretador de comandos
(shell).
Para visualizar uma ajuda rpida para todos os comandos internos do sistema, po-
demos fazer da seguinte forma:
1 # help
Caso desejemos visualizar a ajuda rpida para somente um comando interno, usa-
mos esta outra sintaxe:
1 # help [comando]
O comando help somente mostra a ajuda para comandos internos.
1 # help type
Linux ONE Pgina 57
Linux Force www.linuxforce.com.br Obtendo ajuda
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 de-
nida.
Verique o tipo do comando help que conheceremos a seguir:
1 # help help
Para comandos externos, o help aparece como parmetro. Por exemplo:
1 # [comando] --help
Desse modo, caso desejemos visualizar uma ajuda rpida sobre um comando ex-
terno, devemos fazer da seguinte forma:
1 # 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.
4.3.2 Comando apropos
O comando apropos utilizado quando no se sabe qual documentao acessar
para um determinado assunto, mostrando as man pages que contm a palavra-
chave que foi especicada.
A sintaxe utilizada para usar o apropos a seguinte:
Linux ONE Pgina 58
Linux Force www.linuxforce.com.br Obtendo ajuda
1 # apropos [palavra -chave]
Imagine que voc precise editar um arquivo, mas no sabe qual editor utilizar. Exe-
cute o apropos para procurar algum comando ou manual de um comando para edi-
o:
1 # apropos editor
Uma forma equivalente ao apropos usar o comando man juntamente com a
opo -k:
1 # man -k editor
4.3.3 Comando whatis
O comando whatis tem basicamente a mesma funo do comando apropos,
porm as buscas do comando whatis so mais especcas. O apropos busca as
pginas de manuais e descries de maneira mais genrica. Se digitarmos a palavra
passwd ele nos trar tudo que tiver passwd, seja como nome ou parte do nome do
manual ou na descrio. J o whatis nos trar somente o manual com nome exato
da palavra pesquisada. A sintaxe utilizada no comando whatis a seguinte:
1 # whatis [comando]
Voc sabe que tem um programa chamado vim, mas no sabe o que ele faz?
1 # whatis vim
Linux ONE Pgina 59
Linux Force www.linuxforce.com.br Obtendo ajuda
Uma forma equivalente ao whatis usar o comando man juntamente com a
opo -f:
1 # 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:
1 # catman
CentOS:
1 # makewhatis -v
Os comandos apropos e whatis utilizam a mesma base de dados, impor-
tante perceber isso. catman (Debian) e makewhatis (CentOS)
4.3.4 Comando man
O comando man o responsvel por trazer os manuais mais completos sobre
determinado comando, arquivo de congurao, bibliotecas, entre outros nos quais
estamos trabalhando.
Linux ONE Pgina 60
Linux Force www.linuxforce.com.br Obtendo ajuda
Os manuais do sistema so divididos nos seguintes nveis:
man 1 -> Programas executveis e comandos do Shell;
man 2 -> Chamadas de sistema (funes providas pelo Kernel);
man 3 -> Chamadas de bibliotecas (funes como bibliotecas do sistema);
man 4 -> Arquivos de dispositivo (Localizados normalmente no /dev);
man 5 -> Arquivos de congurao e convenes;
man 6 -> Jogos;
man 7 -> Variados (incluindo pacotes de macros e convenes);
man 8 -> Comandos de administrao do sistema (normalmente usado so-
mente pelo root);
man 9 -> Rotinas de Kernel.
comum o exame cobrar mais dos nveis 1, 5 e 8 dos manuais! Ento lembre-
se de estudar binrios, arquivos de congurao e comandos administrativos.
Sintaxe do comando man:
1 # man [comando]
ou
Linux ONE Pgina 61
Linux Force www.linuxforce.com.br Obtendo ajuda
1 # man [seo] [comando]
Essas informaes sobre as sees do comando man podem ser encontra-
das em seu prprio manual, digitando o comando man man.
Se for necessrio visualizar o manual do comando passwd, podemos fazer da se-
guinte forma:
1 # man passwd
Para navegar pelo manual, o comando man abre um arquivo que est compac-
tado 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).
Veremos agora o manual do arquivo de usurios passwd:
1 # man 5 passwd
Podemos consultar quais manuais esto disponveis dentro do prprio diretrio do
man:
1 # ls /usr/share/man/
Linux ONE Pgina 62
Linux Force www.linuxforce.com.br Obtendo ajuda
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:
1 # man <nvel > intro
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:
1 # man -L pt_BR comando
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:
1 # man 7 undocumented
Podemos ver que para visualizar o manual do arquivo de usurio passwd precisa-
mos 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.
Linux ONE Pgina 63
Linux Force www.linuxforce.com.br Obtendo ajuda
4.3.5 Comando info
As info pages so como as pginas de manuais, porm so utilizadas com na-
vegao entre as pginas. Elas so acessadas pelo comando info. Este til
quando j sabemos o nome do comando e s queremos saber qual sua respectiva
funo.
A navegao nas info pages feita atravs de nomes marcados com um * (hi-
pertextos) que, ao pressionarmos Enter, nos leva at a seo correspondente, e
Backspace volta pgina anterior. Algo parecido com a navegao na Internet.
Podemos tambm navegar pelas pginas com as teclas n (next/prximo); p
(previous/anterior); u (up/sobe um nvel). Para sair do comando info, basta
pressionar a tecla q.
Se for necessrio exibir a lista de todos os manuais de comandos/programas dispo-
nveis, execute o comando abaixo sem nenhum argumento. Assim:
1 # info
Para exibir as informaes somente de um determinado comando, usaremos a se-
guinte sintaxe:
1 # info [comando]
Visualizar informaes do comando vim:
1 # info vim
Alternativas para consulta
Linux ONE Pgina 64
Linux Force www.linuxforce.com.br Obtendo ajuda
Para obter uma melhor visualizao, duas ferramentas de documentao foram de-
senvolvidas:
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)
Linux ONE Pgina 65
Linux Force www.linuxforce.com.br Obtendo ajuda
4.4 Comando whereis
O comando whereis utilizado para mostrar a localizao do binrio do comando,
do arquivo de congurao (caso exista), e a localizao das pginas de manuais do
determinado comando ou arquivo.
Para visualizarmos a localizao destes dados para um determinado comando ou
arquivo, utilizamos a seguinte sintaxe:
1 # whereis <comando >
ou
1 # whereis <arquivo >
Mostrar a localizao do binrio do comando, do arquivo de congurao (caso
exista), e a localizao das pginas de manuais do comando vim:
1 # whereis vim
Linux ONE Pgina 66
Linux Force www.linuxforce.com.br Obtendo ajuda
4.5 Comando which
O comando which bem semelhante ao comando whereis, entretanto este s
mostra a localizao do binrio do comando.
Para visualizar a localizao do binrio do comando, utilizamos a seguinte sintaxe:
1 # which <comando >
Localizao do binrio do comando vi:
1 # which vi
Linux ONE Pgina 67
Linux Force www.linuxforce.com.br Obtendo ajuda
4.6 lab2
1 - Descubra qual o comando que existe no sistema para envio e recebimento de
e-mail com cinco letras.
2 - Envie um e-mail para aula.treinamentolinux@gmail.com Caso tenha diculdades,
seu chefe deixou um arquivo chamado dica.txt, procure-o e leia-o para mais informa-
es.
Linux ONE Pgina 68
Captulo 5
Aprendendo comandos do
GNU/Linux
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
5.1 Introduo terica
Comandos so instrues passadas ao computador para executar uma determinada
tarefa. No mundo *NIX (GNU/Linux,Unix), o conceito de comandos diferente do
padro MS-DOS. Um comando qualquer arquivo executvel, que pode ser ou no
criado pelo usurio.
Uma das tantas vantagens do GNU/Linux a variedade de comandos que ele ofe-
rece, anal, para quem conhece comandos, a administrao do sistema acaba se
tornando um processo mais rpido.
O Shell o responsvel pela interao entre o usurio e o sistema operacional,
interpretando os comandos.
no Shell que os comandos so executados.
Linux ONE Pgina 70
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
5.2 O comando ls
Ocomando 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):
1 # ls -l /
2 drwxr -xr -x4 root root 124 27 -1 -15 23:17 boot
Veja que a sada desse comando bem detalhada. Falando sobre os campos, para
o primeiro caractere temos algumas opes:
1 d => indica que se trata de um diretrio
2 l => indica que se trata de um "link" (como se fosse um atalho -
tambm vamos falar sobre ele depois)
3 - => hfen , indica que se trata de um arquivo regular
4 c => indica que o arquivo um dispositivo de caractere (sem buffer)
5 b => indica que o arquivo um dispositivo de bloco (com buffer)
6 u => "sinnimo para o tipo c" indica que o arquivo um dispositivo
de caractere (sem buffer)
7 s => indica que o arquivo um socket
8 p => indica que o arquivo um fifo , named pipe
FIFO - Sigla para First In, First Out, que em ingls signica primeiro a entrar, pri-
meiro a sair. So amplamente utilizados para implementar las de espera. Os ele-
mentos 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.
Linux ONE Pgina 71
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
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 proto-
colo.
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
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 # ls -a /root
3 .. aptitude.bashrc.profile .rnd.ssh.vmware
4 .. .bash_history .kde .qt root_16126 .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 /:
1 # ls -R /
Linux ONE Pgina 72
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
Como listar os arquivos que terminam com a palavra .conf dentro do diretrio
/etc?
1 # ls /etc/*. conf
Como buscar no diretrio raiz / todos os diretrios que terminem com a letra n?
1 # ls -ld /*n
Linux ONE Pgina 73
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
5.3 Criao, movimentao, cpia e remoo de
arquivos e diretrios
5.3.1 Criar arquivo
Para criar um arquivo, podemos simplesmente abrir um editor de texto e salv-lo.
Mas existem outras formas. Uma das formas mais simples usando o comando
touch:
1 # cd ~
2 # touch arq1
3 # touch arq2 arq3 arq4 arq5
5.3.2 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 * - Utilizado para um nome completo ou restante de um
arquivo/diretrio;
2 ? - Esse curinga pode substituir uma ou mais letras em determinada
posio;
3 ! - exclui da operao
4 [padro] - utilizado para referncia a uma faixa de caracteres de
um arquivo/diretrio.
Linux ONE Pgina 74
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
5 [a-z][-9] - Usado para trabalhar com caracteres de a at z
seguidos de um caractere de at 9.
6 [a,z][1,] - Usado para trabalhar com os caracteres a e z seguidos
de um caractere 1 ou naquela posio.
7 [a-z,1,] - Faz referncia do intervalo de caracteres de a at z ou
1 ou naquela posio.
8 [^abc] - Faz referncia a qualquer caracter exceto a, b e c.
9 {padro} - Expande e gera strings para pesquisa de padres de um
arquivo/diretrio.
10 X{ab ,1} - Faz referncia a sequncia de caracteres Xab ou X1.
11 X{a-e,1} - Faz referncia a sequncia de caracteres Xa Xb Xc Xd Xe
X1
DICA: - A barra invertida serve para escapar um caracter especial, ela co-
nhecida 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 /home/aluno utilizando o mtodo de expanso.
1 # cd ~
2 # touch arq{1,2,3}.txt arq {4 ,5}.new
Podemos list-los assim:
1 # ls
Linux ONE Pgina 75
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
2 arq1 arq1.txt arq2 arq2.txt arq3 arq3.txt arq4 arq4.new arq5
arq5.new
Vamos listar todos os arquivos do diretrio /root. Podemos usar o curinga * para
visualizar todos os arquivos do diretrio:
1 # ls *
2 arq1 arq1.txt arq2 arq2.txt arq3 arq3.txt arq4 arq4.new arq5
arq5.new
Para listarmos todos os arquivos do diretrio /root que tenham new no nome:
1 # ls *new*
2 arq4.new arq5.new
Listar todos os arquivos que comeam com qualquer nome e terminam com .txt:
1 # ls *.txt
2 arq1.txt arq2.txt arq3.txt
Listar todos os arquivos que comeam com o nome arq, tenham qualquer caractere
no lugar do curinga, e terminem com .txt:
1 # ls arq?.txt
2 arq1.txt arq2.txt arq3.txt
Para listar todos os arquivos que comeam com o nome arq, tenham qualquer ca-
ractere entre o nmero 1-3 no lugar da 4 letra e terminem com .txt. Neste caso,
se obtm uma ltragem mais exata, pois o curinga especica qualquer caractere na-
quela posio e [ ] especica um intervalo de nmeros ou letras que ser usado:
Linux ONE Pgina 76
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
1 # ls arq [1 -3]. txt
2 arq1.txt arq2.txt arq3.txt
Para listar todos .txt exceto o arq2.txt:
1 # ls arq [!2]. txt
2 arq1.txt arq3.tx
Para listar os arquivos arq4.new e arq5.new podemos usar os seguintes mto-
dos:
1 # ls *.new
2 # ls *new*
3 # ls arq?.new
4 # ls arq [4 ,5].*
5 # ls arq [4 ,5]. new
Existem muitas outras sintaxes possveis para obter o mesmo resultado. A mais indi-
cada ser sempre aquela que atender necessidade com o menor esforo possvel.
A criatividade nesse momento conta muito. No exemplo anterior, a ltima forma re-
sulta 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.
5.3.3 Criando diretrios
O comando mkdir utilizado para criar um diretrio no sistema. Um diretrio
uma pasta onde voc guarda seus arquivos. Exemplo:
Linux ONE Pgina 77
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
Criar o diretrio aula:
1 # mkdir aula
Criar o diretrio turma e o subdiretrio alunos:
1 # mkdir -p turma/alunos
A opo -p permite a criao de diretrios de forma recursiva. Para que um subdi-
retrio exista, o seu diretrio diretamente superior tem que existir. Portanto a criao
de uma estrutura como notas/abril/bimestre/prova exigiria a execuo de quatro
comandos mkdir.
Algo como:
1 # mkdir notas
2 # mkdir notas/abril
3 # mkdir notas/abril/bimestre
4 # mkdir notas/abril/bimestre/prova
A opo -p permite que toda essa estrutura seja criada em uma nica linha. As-
sim:
1 # mkdir -p notas/maio/bimestre/prova
5.3.4 Removendo arquivos/diretrios
O comando rm utilizado para apagar arquivos, diretrios e subdiretrios estejam
eles vazios ou no.
Linux ONE Pgina 78
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
Exemplos:
Remover os arquivos com extenso txt:
1 # cd ~
2 # ls
3 # rm arq?.txt
4 # ls
Remover o arquivo arq4.new pedindo conrmao:
1 # rm -i arq4.new
2 rm: remover arquivo comum vazio arq.new4 ?
A opo -i fora a conrmao para remover o arquivo arq4.new.
Remover o diretrio notas:
1 # rm -r notas
A opo -r ou -R indica recursividade, ou seja, a remoo dever ser do diretrio
treinamentolinux e de todo o seu contedo.
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:
Linux ONE Pgina 79
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
Remover o diretrio aula:
1 # rmdir aula
5.3.5 Copiar arquivos/diretrios
O comando cp serve para fazer cpias de arquivos e diretrios. Perceba que para
lidar com diretrios a opo -r ou -R tem que ser usada:
1 # cp arquivo -origem arquivo -destino
2
3 # cp arquivo -origem caminho/diretrio -destino/
4
5 # cp -R diretrio -origem nome -destino
6
7 # cp -R diretrio -origem caminho/diretrio -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:
1 # su - aluno
2 $ touch teste
3 $ ls -l
4 $ exit
5 # cd /home/aluno
6 # cp -p teste teste2
7 # cp teste teste3
8 # ls -l teste2 teste3
Linux ONE Pgina 80
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
5.3.6 Mover ou renomear arquivos/diretrios
O comando mv serve tanto para renomear um arquivo quanto para mov-lo:
1 # mv arquivo caminho/diretrio -destino/
2 # mv arquivo novo -nome
3 # mv diretrio novo -nome
4 # mv diretrio caminho/diretrio -destino/
A movimentao de um arquivo uma ao de cpia seguida de uma remoo.
Renomeando arquivo:
1 # mv teste teste4
Movendo arquivo:
1 # mv teste4 /tmp
Renomeando diretrio:
1 # mv turma matematica
Movendo diretrio:
1 # mv matematica /home/aluno/notas /21/ abril/semana3
Linux ONE Pgina 81
Linux Force www.linuxforce.com.br Aprendendo comandos do GNU/Linux
5.4 LAB3
Existe uma pasta /backup no servidor e os backups esto desorganizados, organize-
os:
1- Criar a estrutura de diretrios a partir da raiz: /backup/
2 - Copiar os backups do diretrio /backup de acordo com a data utilizando os carac-
teres curingas e coloc-los em seus novos diretrios, organizados por perodos.
Linux ONE Pgina 82
Captulo 6
FHS, Hierarquia dos Diretrios
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
6.1 Introduo terica
Quem j teve algum contato com o GNU/Linux, mesmo que supercial, deve ter
percebido a presena de vrios diretrios (pastas) no sistema. Entretanto, eles esto
organizados seguindo o padro POSIX, com o qual voc pode no estar muito
familiarizado. Neste captulo, vamos conhecer a organizao, e explorar a estrutura
de diretrios de um sistema GNU/Linux.
Desde que o GNU/Linux foi criado, muito se tem feito para seguir um padro em
relao estrutura de diretrios. O primeiro esforo para padronizao de sistemas
de arquivos para o GNU/Linux foi o FSSTND - Filesystem Standard, lanado no
ano de 1994.
Cada diretrio do sistema tem seus respectivos arquivos que so armazenados con-
forme regras denidas pela FHS - Filesystem Hierarchy Standard ou Hierar-
quia Padro do Sistema de Arquivos, que dene que tipo de arquivo deve ser
guardado em cada diretrio. Isso muito importante, pois o padro ajuda a manter
compatibilidade entre as distribuies existentes no mercado, permitindo que qual-
quer software escrito para o GNU/Linux seja executado em qualquer distribuio de-
senvolvida de acordo com os padres FHS.
Atualmente, o FHS est na sua verso 2.3, e mantido pelo Free Standard Group",
uma organizao sem ns lucrativos formada por grandes empresas como HP, IBM,
RedHat e Dell.
vital entender bem sobre a FHS para prova, atravs dela que ns deve-
mos fazer nossas atividades com o GNU/Linux em nosso dia-a-dia.
Linux ONE Pgina 84
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
6.2 Estrutura de Diretrios GNU/Linux
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 PO-
SIX 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
?
A rvore de diretrios do GNU/Linux tem a seguinte estrutura:
Da estrutura mostrada acima, o FHS determina que um sistema GNU/Linux deve
conter obrigatoriamente 14 diretrios, especicados a seguir:
Linux ONE Pgina 85
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
6.2.1 Diretrio /
1 # ls --color /
A opo color do comando ls serve para deixar colorido a listagem, ex: azul -> dire-
trio 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 /.
6.2.2 DIRETRIO /bin
1 # ls /bin
O diretrio /bin guarda os comandos essenciais para o funcionamento do sis-
tema.
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;
Linux ONE Pgina 86
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
Qualquer usurio pode executar estes comandos:
1 # /bin/ls /boot/grub
2 $ /bin/ls /boot/grub
6.2.3 Diretrio /boot
1 # ls /boot
No diretrio /boot esto os arquivos estticos necessrios inicializao do sis-
tema, e o gerenciador de boot. O gerenciador de boot um programa que permite
escolher e carregar o sistema operacional que ser iniciado.
6.2.4 Diretrio /dev
1 # ls /dev
No diretrio /dev cam todos os arquivos de dispositivos. O GNU/Linux faz a co-
municao 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:
1 # cat /dev/input/mice
Linux ONE Pgina 87
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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:
1 # 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.
1 # od /dev/input/mice
Caso seu mouse no seja usb, execute:
1 # od /dev/psaux
Mova o mouse e observe sua sada.
Observe o contedo do seu HD:
1 # hexdump /dev/sda
O comando hexdump utilizado para visualizar o contedo de um arquivo nos for-
matos: hexadecimal, octal, decimal, ASCII. Este comando pode ser til para um
programador que deseja criar um programa conforme o movimento do mouse.
6.2.5 Diretrio /etc
Linux ONE Pgina 88
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
1 # 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.
1 # cat /etc/passwd
Vamos pegar uma linha de exemplo:
1 aluno:x:1:1: aluno :/home/aluno:/bin/bash
Vamos dividir esta linha em campos, onde cada campo separado por : (dois
pontos), ento:
Vamos conhecer o arquivo /etc/shadow:
1 # more /etc/shadow
Linux ONE Pgina 89
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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 imple-
menta 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.
1 # less /etc/shadow
Vamos pegar uma linha de exemplo:
1 aluno:$1$Tcnt$EisiJ9Wh3fCEsz1 :11983::99999:7:::
Este arquivo possui as senhas criptografadas dos usurios do sistema. Existe uma
entada no arquivo para cada usurio do sistema com os seguintes campos:
Linux ONE Pgina 90
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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:
1 # pwunconv
Verique que no existe mais o arquivo /etc/shadow:
1 # cat /etc/shadow
Verique que as senhas criptografadas esto agora no arquivo /etc/passwd atravs
do comando getent:
1 # getent passwd
Linux ONE Pgina 91
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
O comando getent obtm dados da base administrativa do sistema, seguindo a or-
dem de busca que est no arquivo /etc/nsswitch.conf:
1 # cat /etc/nsswitch.conf
2 # /etc/nsswitch.conf
3 #
4 # Example configuration of GNU Name Service Switch functionality.
5 # If you have the glibc -doc -reference and info packages
installed , try:
6 # info libc "Name Service Switch" for information about this file.
7
8 passwd: compat
9 group: compat
10 shadow: compat
11
12 hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
13 networks: files
14
15 protocols: db files
16 services: db files
17 ethers: db files
18 rpc: db files
19
20 netgroup: 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 armazena-
dos 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 arma-
zenados ele sempre seguir a ordem de busca do arquivo /etc/nsswitch.conf.
Para voltar as senhas criptografadas, execute:
Linux ONE Pgina 92
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
1 # 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.
6.2.6 Diretrio /lib
1 # ls /lib
No diretrio /lib esto as bibliotecas compartilhadas e mdulos do kernel. As bibli-
otecas so funes que podem ser utilizadas por vrios programas.
Cada kernel tm seus prprios mdulos, que cam em: /lib/modules/<verso do ker-
nel>/kernel Separados por tipos em subdiretrios.
Para saber sua verso do kernel execute:
1 # uname -r
Para visualizar os tipos de mdulos:
1 # ls /lib/modules/$(uname -r)/kernel
Linux ONE Pgina 93
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
6.2.7 Diretrio /media
1 # ls /media
Ponto de montagem para dispositivos removveis, tais como:
hd
cd
dvd
disquete
pendrive
cmera digital
6.2.8 Diretrio /mnt
1 # 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.
6.2.9 Diretrio /opt
Linux ONE Pgina 94
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
1 # ls /opt
Normalmente, utilizado por programas proprietrios ou que no fazem parte oci-
almente da distribuio.
6.2.10 Diretrio /sbin
1 # 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 coman-
dos 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 ONE Pgina 95
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
$ /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.
6.2.11 Diretrio /srv
1 # 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)
6.2.12 Diretrio /tmp
1 # 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.
Linux ONE Pgina 96
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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 manti-
dos durante dez dias aps seu ltimo acesso.
Para alterar no Debian:
1 # vim /etc/default/rcS
2 TMPTIME =
3 SULOGIN=no
4 DELAYLOGIN=no
5 UTC=yes
6 VERBOSE=no
7 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 # vim /etc/cron.daily/tmpwatch
2 flags=-umc
3 /usr/sbin/tmpwatch "$flags" -x /tmp/.X11 -unix -x /tmp/.XIM -unix \
4 -x /tmp/.font -unix -x /tmp/.ICE -unix -x /tmp/.Test -unix \
5 -X /tmp/hsperfdata_* 1d /tmp
6 /usr/sbin/tmpwatch "$flags" 3d /var/tmp
7 for d in /var/{ cache/man ,catman }/{cat?,X11R6/cat?,local/cat?}; do
8 if [ -d "$d" ]; then
9 /usr/sbin/tmpwatch "$flags" -f 3d "$d"
10 fi
11 done
Altere de 10 dias, para o total de dias que quiser.
Linux ONE Pgina 97
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
6.2.13 Diretrio /usr
1 # ls /usr
O diretrio /usr contm programas que no so essenciais ao sistema e que se-
guem o padro GNU/Linux, como, por exemplo, navegadores, gerenciadores de ja-
nelas, 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
6.2.14 Diretrio /var
1 # 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
1 # ls /var/spool
Linux ONE Pgina 98
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
arquivos de log
1 # ls /var/log
6.2.15 Diretrio /proc
1 # ls /proc
O /proc um diretrio virtual, mantido pelo kernel, onde encontramos a congu-
rao 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:
1 # more /proc/interrupts
Neste arquivo esto as informaes das IRQs dos dispositivos.
Os endereos de IRQ so interrupes de hardware, canais que os dispositivos po-
dem utilizar para chamar a ateno do processador.
Na maioria das situaes, o sistema operacional simplesmente chaveia entre os apli-
cativos ativos, permitindo que ele utilize o processador durante um determinado es-
pao 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 imedia-
tamente pra qualquer coisa que esteja fazendo e d ateno ao dispositivo, voltando
Linux ONE Pgina 99
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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.
1 # less /proc/dma
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, por-
tas paralelas e drives de disquete) para transferir dados diretamente para a memria
RAM, reduzindo desta forma a utilizao do processador.
1 # more /proc/ioports
Neste arquivo encontramos informaes sobre os endereos das portas I/O (In-
put/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 dispo-
sitivo precisa de umendereo 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.
6.2.16 Diretrio /sys
1 # ls /sys
Linux ONE Pgina 100
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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.
6.2.17 Diretrios /home e /root
1 # ls /home /root
Os diretrios /root e /home podem estar disponveis no sistema, mas no pre-
cisam 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 ONE Pgina 101
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
programa Cavalo de Tria (programa que obtm poderes do super usurio) com-
prometendo a segurana do seu sistema sem que voc saiba.
6.2.18 Localizao no sistema: nd
O comando nd procura por arquivos/diretrios no disco. Ele pode procurar arqui-
vos pela sua data de modicao, tamanho, etc. O nd, ao contrrio de outros
programas, usa opes longas por meio de um -.
Sintaxe do comando nd:
nd [diretrio] [opes/expresso]
-name [expresso] :
Procura pela [expresso] denida nos nomes de arquivos e diretrios processados.
1 # find /etc -name *.conf
-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 subdire-
trio.
1 # find /etc -maxdepth 1 -name *.conf
Linux ONE Pgina 102
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
-amin [num] :
Procura por arquivos que foram acessados [num] minutos atrs. Caso seja antece-
dido por -, procura por arquivos que foram acessados entre [num] minutos atrs e
o momento atual.
1 # 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.
1 # find ~ -atime -1
-uid [num] :
Procura por arquivos que pertenam ao usurio com o uid 1000 [num].
1 # find / -uid 1
-user [nome] :
Procura por arquivos que pertenam ao usurio aluno [nome].
1 # find / -user aluno
-perm [modo] :
Linux ONE Pgina 103
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
Procura por arquivos que possuem os modos de permisso [modo]. Os [modo] de
permisso podem ser numrico (octal) ou literal.
1 # find / -perm 644
-size [num] :
Procura por arquivos que tenhamo tamanho [num]. Otamanho especicado emby-
tes. 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].
1 # find / -size +1M
-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.
1 # find /dev -type b
Outros exemplos:
Procura no diretrio raiz e nos subdiretrios um arquivo/diretrio chamado grep
ignorando caso sensitivo:
1 # find / -iname GREP
Linux ONE Pgina 104
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
-iname - ignora case sensitive;
Procura no diretrio raiz e nos subdiretrios at o 2 nvel, um arquivo/diretrio cha-
mado grep:
1 # find / -maxdepth 2 -name grep
Procura no diretrio atual e nos subdiretrios um arquivo com tamanho maior que
1000 kbytes (1Mbyte).:
1 # find . -size +1k
Procura no diretrio raiz e nos subdiretrios um arquivo que foi modicado h 10
minutos atrs ou menos:
1 # find / -mmin -1
Procura diretrios a partir do diretrio /etc e tambm executa um comando no resul-
tado da busca com a opo exec, no exemplo o comando ls -ld:
1 # find /etc -type d -exec ls -ld {} \;
6.2.19 xargs
Outra forma de procurar por arquivos e/ou diretrios e executar um comando atra-
vs 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:
Linux ONE Pgina 105
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
1 # find /etc -type d | xargs ls -ld
Vamos agora listar diretrios utilizando o xargs:
1 # ls / | xargs -n1
2 # ls / | xargs -n2
3 # ls / | xargs -n3
Outros testes com o xargs:
1 # ls / > teste_xargs.txt
2 # cat teste_xargs.txt
3 # cat teste_xargs.txt | xargs -n 2
4 # 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
Ocomando time permite medir o tempo de execuo de umprograma. Sua sintaxe
: time [programa].
Exemplo:
1 # time find / -name *.conf
Localizao usando base de dados: locate
Linux ONE Pgina 106
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
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:
1 # 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:
1 # locate howto
A sada do comando ser algo parecido com:
1 /usr/share/doc/python2.4-xml/howto.cls
2 /usr/share/doc/python2.4-xml/xml -howto.tex.gz
3 /usr/share/doc/python2.4-xml/xml -howto.txt.gz
/usr/share/vim/vim64/doc/howto.txt
Linux ONE Pgina 107
Linux Force www.linuxforce.com.br FHS, Hierarquia dos Diretrios
6.3 Lab4
1 - Localizar diretrio httpd que est localizado dentro do diretrio que contm os
arquivos de conguraes do sistema, criar o diretrio /backup/confs e copi-lo para
l.
Linux ONE Pgina 108
Captulo 7
Editores de texto
Linux Force www.linuxforce.com.br 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 como 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;
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.
Linux ONE Pgina 110
Linux Force www.linuxforce.com.br Editores de texto
7.2 Editor Nano
O nano o editor padro de textos do Debian e Red Hat, e distribuies baseadas
neles. Esse editor muito fcil de ser usado, e sua interface muito intuitiva e
agradvel. Para abrirmos o editor devemos chamar o seguinte comando:
1 # nano [arquivo]
Ao ser chamado, este editor ir apresentar um tela em branco com um rodap se-
melhante a esse:
Vamos analisar essas funes:
Lembrando que "

G" igual a "Ctrl + G"e assim por diante


G Get Help - Apresenta uma tela de ajuda para os mais diversos comandos e
uma breve explicao sobre o editor;


X Exit - Sai do editor, lembrando que se o arquivo no estiver salvo, essa opo
ir te pedir para salv-lo;
WriteOut - Salva ou sobrescreve um arquivo;


J Justify - Justica o arquivo inteiro;


R Read File - Importa um arquivo;
Linux ONE Pgina 111
Linux Force www.linuxforce.com.br Editores de texto


W Where Is - Procura por uma ocorrncia dentro do arquivo;


Y Prev Page - Move o cursor para pagina anterior;


V Next Page - Move o cursor para prxima pagina;


K Cut Text - Corta a linha em que o cursor est posicionado;
UnCut Text - Cola a linha recortada na posio atual do cursor


C Cur Pos - Mostra informaes sobre a posio do cursor;


T To Spell - Ativa a correo ortogrca. necessrio ter o comando spell
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.
1 # update -alternatives --config editor
Linux ONE Pgina 112
Linux Force www.linuxforce.com.br Editores de texto
7.3 Editor Vim
O Vi o editor bsico do GNU/Linux, e est disponvel em grande parte das distri-
buies 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.
1 $ cp /etc/vim/vimrc ~/. vimrc
Linux ONE Pgina 113
Linux Force www.linuxforce.com.br Editores de texto
7.4 Praticando
1 # vim texto
2 # Para inserir digite: i
3 i => Entra no modo de insero antes do cursor
4
5 # Para sair do modo de insero digite: ESC
6
7 # Para inserir uma linha abaixo do cursor digite: o
8 o => Insere uma linha abaixo do cursor e entra no modo de insero
9
10 # Para sair do modo de insero digite: ESC
11
12 # Para inserir uma linha acima do cursor digite: O
13 O => Insere uma linha acima do cursor e entra no modo de insero
14
15 # Para sair do modo de insero digite: ESC
16
17 # Para desfazer a ltima alterao digite: u
18
19 # Para refazer digite: CTRL+R
20
21 # Para numerar as linhas digite: :set number
22
23 # Para copiar a segunda linha digite: :2y
24
25 # Para colar na linha abaixo do cursor digite: p
26
27 # Para ir para a primeira linha digite: gg
28
29 # Para colar na linha acima do cursor , "3 vezes" digite: 3P
30
31 # Para salvar as alteraes digite: :w
32
33 # Para sair do arquivo sem salvar digite: :q ou Para forar a
sada sem salvar: :q!
Linux ONE Pgina 114
Linux Force www.linuxforce.com.br Editores de texto
1 # vim texto
2 # Para ir para a ltima linha digite: G
3
4 # Para deletar "recortar" a linha atual digite: dd
5
6 # Para salvar e sair do arquivo: x ou Para forar: x!
1 # vim texto
2 # Delete as 5 primeiras linhas digitando: :1,5d ou Com o
cursor na primeira linha digite: 5dd ou d5d
3
4 # Para sair sem salvar digite: q!
1 # vim texto
2 # buscar palavra "inser" dentro do arquivo abaixo do cursor ,
digite: /inser
3 # Para ir para a prxima ocorrncia digite: n
4 # Para ir para a ocorrncia anterior digite: N
5 # Buscar palavra "inser" dentro do arquivo acima do cursor , digite:
?inser
6 # Para grifar todos os resultados da busca , digite: :set hlsearch
7.4.1 Outras funcionalidades do vim
Comandos bsicos de insero de texto:
i - Insere texto antes do cursor;
Linux ONE Pgina 115
Linux Force www.linuxforce.com.br Editores de texto
a - Insere texto depois do cursor;
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;
Linux ONE Pgina 116
Linux Force www.linuxforce.com.br Editores de texto
b - Move o cursor para o incio da palavra anterior;
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;
Linux ONE Pgina 117
Linux Force www.linuxforce.com.br Editores de texto
dd - Deleta a linha atual, e copia o contedo para rea de transferncia;
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;
Linux ONE Pgina 118
Linux Force www.linuxforce.com.br Editores de texto
:q - Sai do editor;
:q! - Sai do editor sem salvar as alteraes realizadas.
1 Resumo de "vi" para a LPI:
2
3 :set ic => ignora case sensitive
4 :set number => numera as linhas
5 :syntax on => colore o texto
6 :set hlsearch => grifa o texto
7 :w => Salva o arquivo que est sendo editado no momento.
8 :q => Sai.
9 :wq => Salva e sai.
10 :x => Salva e sai.
11 ZZ => Salva e sai.
12 :w! => Salva forado.
13 :q! => Sai forado.
14 :wq! => Salva e sai forado.
Linux ONE Pgina 119
Linux Force www.linuxforce.com.br Editores de texto
7.5 Deixando o vim com sua cara:
No Debian o arquivo /etc/vim/vimrc e no CentOS /etc/vimrc. Adicione ao nal
do arquivo as opes para deixar o texto com a as linhas numeradas, texto colorido
e grifar as buscas encontradas:
1 # vim /etc/vim/vimrc
2 set number
3 syntax on
4 set hlsearch
Linux ONE Pgina 120
Linux Force www.linuxforce.com.br Editores de texto
7.6 LAB5
1- Habilite permantemente a numerao das linhas no servidor CentOS.
2-Pratique o vim: Acesse o ip da mquina Dexter pelo navegador da mquina Debian.
Cadastre-se como cliente e edite o arquivo na mquina Dexter: /var/www/dexter/cli-
entes.php Copie da linhas 41 at a linha 47 e cole na linha 48, cadastre seu nome e
um telefone ctcio, recarregue o site da aula.
Linux ONE Pgina 121
Captulo 8
Administrao da Shell
Linux Force www.linuxforce.com.br Administrao da Shell
8.1 Introduo terica
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.
Linux ONE Pgina 123
Linux Force www.linuxforce.com.br Administrao da Shell
8.2 O que uma shell?
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. Pode-
se denir um idioma padro, personalizar e automatizar processos. Nos tpicos a
seguir, veremos como fazer essa personalizao.
A gura abaixo ilustra como podemos posicionar a shell dentro do sistema.
Linux ONE Pgina 124
Linux Force www.linuxforce.com.br Administrao da Shell
8.3 Variveis em Shell
As variveis da shell tm o mesmo objetivo das variveis que conhecemos na rea
da computao, ou seja, so reas de memria que podem conter dados que sero
utilizados por diversos programas. Quando estamos falando de variveis em shell
no precisamos nos preocupar em declar-las nem mesmo denir o seu tipo. Em
shell, uma varivel denida simplesmente atribuindo-se um valor a ela. Vejamos
um exemplo: Se denirmos que ANSWER=42, estaremos armazenando o valor
42 em um determinado endereo de memria que podemos acessar utilizando o
nome que atribumos a ele, ou seja, ANSWER.
1 # 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 dese-
jarmos mostrar na tela o valor da varivel ANSWER devemos imprimir o contedo
armazenado no endereo de memria $ANSWER:
1 # 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 ins-
pecionar variveis de ambiente, que so parmetros guardados em memria e que
denem o ambiente em uso.
Para imprimir algo na tela:
1 # echo algo
Linux ONE Pgina 125
Linux Force www.linuxforce.com.br Administrao da Shell
Vamos denir a varivel comando com o valor igual a ls:
1 # comando=ls
Para vericarmos o valor da varivel podemos digitar:
1 # echo $comando
Ou
1 # echo "$comando"
Para escrevermos na tela: $comando, digite:
1 # echo $comando
Para executarmos o valor da varivel comando, digite:
1 # echo $comando
Ou
1 # echo $($comando)
Linux ONE Pgina 126
Linux Force www.linuxforce.com.br Administrao da Shell
8.3.1 Variveis Locais e de Ambiente (globais)
Quando falamos em variveis em shell temos que ter em mente a diviso entre va-
riveis locais e de ambiente (ou globais). A diferena entre elas que uma varivel
local tem visibilidade restrita, apenas ao escopo ao qual ela foi denida, e uma vari-
vel de ambiente tem visibilidade no s no escopo em que foi denida mas tambm
em ambientes derivados.
A nica diferena tcnica entre variveis locais e de ambiente a forma de sua
denio. Para denir uma varivel local, basta atribuir um valor a um nome de
varivel. Para denir uma varivel de ambiente o procedimento adiciona o comando
exportantes da denio. Abaixo mostramos exemplos de denio de varivel
local e de ambiente:
1 # LOCAL="sem export na frente"
2 # 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.
Visualizando:
1 # magica =" abracadabra"
2 # echo $magica
3 # set
4 # clear
5 # env
6 Abra um terminal filho:
7 # bash
8 No h nada na varivel , pois ela no foi exportada:
Linux ONE Pgina 127
Linux Force www.linuxforce.com.br Administrao da Shell
9 # echo $magica
10 # exit
Exporte a varivel:
1 # export magica
2 # set
3 # clear
4 # env
Abra um terminal lho:
1 # bash
Agora existe um valor para a varivel:
1 # echo $magica
Para desabilitar utilize o comando: unset que apaga a varivel:
1 # unset magica
2 # echo $magica
Para car permanente para todos e funcionar em qualquer terminal deve-se colocar
em um dos arquivos:
1 /etc/profile
2 /etc/environment
Linux ONE Pgina 128
Linux Force www.linuxforce.com.br Administrao da Shell
Para car permanente para o usurio e funcionar em qualquer terminal deve-se co-
locar em um dos arquivos:
1 ~/. bashrc
2 ~/. bash_profile
3 ~/. bash_login
4 ~/. profile
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 # echo $PS1
2 # PS1="C:\> "
Algumas variveis importantes: EDITOR -> dene o editor que abrir um programa
que chama o editor padro. No debian, conseguimos fazer a alterao do editor atra-
vs do comando update-alternatives cong editor, que veremos ainda no curso.
1 # echo $EDITOR
2 # export EDITOR=nano
3 # vipw
4 # export EDITOR=vim
5 # vipw
TMOUT -> tempo em segundos de inatividade para deslogar automaticamente:
1 # TMOUT =3
HOME -> home do usurio atual:
Linux ONE Pgina 129
Linux Force www.linuxforce.com.br Administrao da Shell
1 # echo $HOME
HISTSIZE -> tamanho do histrico de comandos:
1 # echo $HISTSIZE
2 # history
PATH -> dene quais diretrios pesquisar e a ordem na qual eles so pesquisados
para encontrar um determinado comando:
1 # su - aluno
2 $ echo $PATH
Vamos tentar executar um comando de rede:
1 $ ifconfig
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:
1 $ 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 adicion-
lo:
Linux ONE Pgina 130
Linux Force www.linuxforce.com.br Administrao da Shell
1 # PATH="$PATH :/sbin"
Vamos tentar executar o comando agora:
1 $ ifconfig
Isso no signica que voc tem a permisso de root para executar os comandos de
root. Tente derrubar sua placa de rede:
1 $ ifconfig eth down
Saber o contedo de algumas variveis muito importante: HISTSIZE HOME
PS1 PATH EDITOR
Linux ONE Pgina 131
Linux Force www.linuxforce.com.br Administrao da Shell
8.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:
1 # alias ls=ls --color -h -l
Dessa forma ca fcil criar seu prprio comando. Por exemplo, um que limpe a tela:
1 # 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:
1 # c
Para visualizar todos os alias, digite:
1 # alias
Para desabilitar um alias, digite:
Linux ONE Pgina 132
Linux Force www.linuxforce.com.br Administrao da Shell
1 # unalias c
Tente limpar a tela novamente:
1 # c
8.4.1 Arquivos de Login
Quando uma bash executada como uma shell de login interativo ela l e exe-
cuta o arquivo /etc/prole, se ele existir. Esse arquivo deve conter as congura-
es gerais que se aplicam a todos os usurios do sistema. Aps ler o /etc/prole,
ela ir procurar por um dos arquivos:
1 ~/. bash_profile
2 ~/. bash_login
3 ~/. profile
Esses arquivos esto na home do usurio, executando o primeiro que estiver dispo-
nvel 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.
Linux ONE Pgina 133
Linux Force www.linuxforce.com.br Administrao da Shell
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 # vim ~/. bashrc
2 export TMOUT =3
3 alias ls=ls --color
8.4.2 Arquivos /etc/issue e /etc/motd
Os arquivos /etc/issue e /etc/motd so usados para mostrar mensagens para
os usurios e no interferem na parte operacional do sistema. A diferena entre
os arquivos /etc/issue e /etc/motd, que o primeiro exibe uma mensagem para
o usurio antes que o mesmo faa login no sistema, enquanto o segundo exibe
uma mensagem aps o usurio se logar no sistema. H ainda o arquivo /etc/is-
sue.net, que contm a mensagem exibida em logins remotos.
Veja um exemplo de /etc/motd do Debian:
1 # cat /etc/motd
2
3 Linux aula 2.6.32 -5 -486 #1 Wed May 9 22:23:4 UTC 211 i686
4
5 The programs included with the Debian GNU/Linux system are free
software;
6 the exact distribution terms for each program are described in the
7 individual files in /usr/share/doc/*/ copyright.
8
Linux ONE Pgina 134
Linux Force www.linuxforce.com.br Administrao da Shell
9 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY , to the extent
10 permitted by applicable law.
Veja um exemplo de /etc/issue no Debian:
1 # cat /etc/issue
2 Debian GNU/Linux 6. \n \l
Os caracteres "(n)"e "(l)"no arquivo "/etc/issue"representam respectivamente o nome
do servidor e do terminal em que o usurio est logado.
Linux ONE Pgina 135
Linux Force www.linuxforce.com.br Administrao da Shell
8.5 Tipos de shell
Para saber quais shells so vlidos para login, basta visualizar o contedo do ar-
quivo /etc/shells. A maioria das distribuies GNU/Linux traz a bash como
shell padro. Esta uma evoluo do Bourne Shell - /bin/sh, que tem bem
poucos recursos.
Para sabermos a shell atual basta olhar a varivel SHELL:
1 echo $SHELL
Para alterar o shell atual, utilizamos o comando chsh. Exemplo:
1 # chsh -s $(which rbash) aluno
A opo $(which rbash) substituda pelo resultado do comando which rbash. Se
logue como aluno e tente trocar de diretrio.
1 # su - aluno
Volte ao SHELL bash:
1 $ chsh -s which bash
A opo which bash substituda pelo seu resultado /bin/bash. No prximo login
o aluno estar no shell bash novamente.
Linux ONE Pgina 136
Linux Force www.linuxforce.com.br Administrao da Shell
8.6 LAB6
Existem alguns comandos para gerar letras grandes ou desenhos, exemplo: banner,
glet.
1- Altere os arquivos /etc/motd, /etc/issue, /etc/issue.net do servidor. Utilize o co-
mando banner para gerar um aviso, copie sua sada para o arquivo /etc/issue. ex de
uso:
1 # banner Dexter Courier
2- Altere a varivel TMOUT, que est com um tempo muito baixo, coloque um valor
razovel ex: 3, 5, 10 minutos de inatividade.
3- Verique a shell do usurio root, altere para a shell bash.
Linux ONE Pgina 137
Captulo 9
Introduo a Redes
Linux Force www.linuxforce.com.br Introduo a Redes
9.1 Introduo terica
Neste captulo, iremos aprender alguns conceitos de redes que so muito impor-
tantes 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 congura-
o 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 comunica-
o de redes de computadores. Inclusive da Internet.
O protocolo TCP - Transmission Control Protocol, orientado a conexes, trans-
porta 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 proto-
colo 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
idia. O modelo OSI ser estudado com detalhes no treinamento Linux Reloaded.
Acompanhe um pouco mais desse assunto no treinamento Linux Reloaded
da Formao Linux Force. O treinamento Linux Servers, mostra a congurao dos
principais servios.
Linux ONE Pgina 139
Linux Force www.linuxforce.com.br Introduo a Redes
9.2 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 en-
dereos 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 lo-
opback (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
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 ser-
vidor de pginas Web, am de realizar testes antes de coloc-los em produo.
Linux ONE Pgina 140
Linux Force www.linuxforce.com.br Introduo a Redes
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 ser-
vio 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, con-
gurar 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.
Host - Um endereo disponibilizado para computadores poderem acessar a
rede;
Network - Normalmente o primeiro endereo da rede;
BroadCast - Normalmente o ltimo endereo da rede, utilizado para que uma
mquina possa falar com todas as outras.
Linux ONE Pgina 141
Linux Force www.linuxforce.com.br Introduo a Redes
9.3 Entendendo o gateway da rede
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.
Linux ONE Pgina 142
Linux Force www.linuxforce.com.br Introduo a Redes
9.4 O servidor DNS
Nesse ponto muito importante frisar que o servidor de DNS no faz parte da
congurao essencial de rede, pois para estarmos na Internet, basta termos um
gateway, que a conhea, devidamente congurado. Lembre-se: a Internet feita
de nmeros.
Usurio - Suporte?
Suporte - Sim, em que posso ajudar?
Usurio - A Internet est fora do ar ... (O cara no consegue acessar o host
orkut.com)
Para resolver esse probleminha basta digitar o comando:
1 $ ping 8.8.8.8
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 ONE Pgina 143
Linux Force www.linuxforce.com.br Introduo a Redes
9.5 Arp e RARP
Vamos nos aprofundar um pouco mais nas teorias de redes e vamos vericar os
protocolos ARP e RARP. O protocolo ARP utilizado para converter os ende-
reos de rede (IPs), para os endereos fsicos das interfaces - MAC. Um exemplo
clssico de usabilidade identicar placas com o mesmo MAC Address na rede.
Podemos conhecer todas as mquinas da rede e depois utilizar o comando arp
para descobrir quais endereos IP tem o mesmo MAC Address. J o Rarp faz
exatamente o oposto, transforma endereos fsicos em endereos de rede.
Linux ONE Pgina 144
Linux Force www.linuxforce.com.br Introduo a Redes
9.6 Congurando a Rede
A congurao de rede em um sistema GNU/Linux muito importante pois esses
sistemas so, intrinsecamente, sistemas de rede. Ou seja, mesmo que no haja
nenhum tipo de interface de rede, moldem ou qualquer outro dispositivo de conexo,
ainda assim uma mquina GNU/Linux ser um sistema de rede.
A congurao da rede baseia-se em trs etapas:
Congurao do nmero IP e sua mscara de rede;
Congurao do Gateway;
Congurao dos servidores DNS.
9.6.1 Congurando IP e Mscara
Alm da interface lo loopback, podemos congurar outras interfaces, basta que
elas estejam presentes sicamente e sejam suportadas pelo kernel. Na maior parte
dos casos, a interface mais comum acaba sendo a interface eth0 de ethernet n-
mero 0, por ser a primeira. Para congurar e depois visualizar essas conguraes
em nossas interfaces de redes, utilizamos o comando ifcong.
1 # 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.
1 # ifconfig -a
Linux ONE Pgina 145
Linux Force www.linuxforce.com.br Introduo a Redes
Para atribuir um endereo IP para uma placa de rede utilizamos esta sintaxe:
1 # ifconfig <interface > <IP >
Exemplo:
1 # 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:
1 # ifconfig eth
O comando ifcong calcula automaticamente a mscara, mas se voc precisar con-
gurar uma mscara diferenciada, voc deve usar o parmetro netmask, assim:
1 # ifconfig eth 172.16..1 netmask 255.255..
Visualize o endereo da interface:
1 # ifconfig eth
Caso voc queira participar de uma outra rede, utilizando uma nica placa de rede,
crie uma interface virtual:
1 # ifconfig eth: 1...1
Linux ONE Pgina 146
Linux Force www.linuxforce.com.br Introduo a Redes
Onde: :0 o nome da placa de rede virtual, poderia ser tambm :local, :net, ou
qualquer nome. Visualize a congurao da placa:
1 # ifconfig eth:
9.6.2 Congurando o gateway
Para que nossos pacotes saibam para onde ir eles precisam conhecer o IP do ga-
teway da rede. O papel do gateway da rede simples: ele funciona como uma
sada para todos os pacotes daquela rede, para outras redes.
Para congurar o gateway da nossa rede utilizamos o comando route com os
seguinte parmetros:
1 # route add default gw IP
Adicionando uma rota padro:
1 # route add default gw 172.16..1
Com esse comando possvel congurar a rota padro de sada da nossa rede. Para
listar todas as rotas traadas, podemos utilizar o comando abaixo:
1 # route -n
A opo -n serve para o comando no tentar resolver os nomes, trazendo apenas os
IPs.
Linux ONE Pgina 147
Linux Force www.linuxforce.com.br Introduo a Redes
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:
1 # route del default
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:
1 # ping 172.16..1
OK, congurao est correta. Agora tente pingar um site:
1 # ping www.linuxforce.com.br
No foi possvel, porque? Para poder pingarmos um domnio necessrio congu-
rarmos o DNS responsvel pela resoluo de nomes.
9.6.3 Congurao dos DNS Servers
Para no ter que memorizar todos os endereos IP que precisamos acessar, foi cri-
ado um servio de rede chamado DNS. Este faz a traduo de nomes para endere-
os IP e vice-versa. Este servio de rede ser melhor detalhado no curso Linux Ser-
vers da Formao Linux Force. Para congurar os servidores de DNS na mquina
local, precisamos editar o arquivo de conguraes de DNS, chamado resolv.conf
localizado em /etc.
Linux ONE Pgina 148
Linux Force www.linuxforce.com.br Introduo a Redes
1 # vim /etc/resolv.conf
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:
1 # ping www.linuxforce.com.br
Traceroute uma ferramenta que permite descobrir o caminho feito pelos pacotes
desde a sua origem at o seu destino.
1 # traceroute www.linuxforce.com.br
O comando traceroute pode ajudar os administradores a descobrir em que
ponto da rede podemos ter um possvel problema.
9.6.4 Congurao esttica de rede
Tudo que vimos at agora, so conguraes que podem ser atribudas atravs de
linha de comando (conguraes dinmicas). Porm nosso host deve estar devida-
mente congurado para que, por exemplo, aps um boot, a mquina mantenha as
conguraes certas.
Linux ONE Pgina 149
Linux Force www.linuxforce.com.br Introduo a Redes
Para que isso acontea temos que congurar o arquivo /etc/network/interfaces no
Debian, assim:
1 # vim /etc/network/interfaces
2
3 auto lo
4 iface lo inet loopback
5
6 auto eth
7 iface eth inet static
8 address 192.168..1
9 netmask 255.255.255.
10 broadcast 192.168..255
11 network 192.168..
12 gateway 192.168..1
Reinicie o servio:
1 # invoke -rc.d networking stop
2 # invoke -rc.d networking start
No CentOS:
Os arquivos de congurao das interfaces de rede no CentOS esto localiza-
dos 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 co-
municar:
Linux ONE Pgina 150
Linux Force www.linuxforce.com.br Introduo a Redes
1 # vim /etc/sysconfig/network -scripts/ifcfg -eth
2
3 DEVICE=eth
4 BOOTPROTO=static
5 ONBOOT=yes
6 IPADDR =192.168..1
7 NETMASK =255.255.255.
8 BROADCAST =192.168..255
9 NETWORK =192.168..
Reinicie o servio:
1 # service network restart
Para ativar ou desabilitar uma placa de rede podemos usar a sintaxe, tanto no Debian
quanto no CentOS:
1 # ifconfig eth up
2 # ifconfig eth 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 # ifup eth
2 # ifdown eth
Linux ONE Pgina 151
Linux Force www.linuxforce.com.br Introduo a Redes
9.7 Congurando hosts e hostname DEBIAN
Podemos tambm congurar alguns atalhos para alguns endereos de rede. Esses
atalhos so congurados dentro do arquivo /etc/hosts.
A sintaxe dele :
1 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
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 utili-
zado da seguinte maneira:
1 # hostname aula
Deslogue e logue para alterar o prompt. Para testar a resoluo de nomes pelo
arquivo hosts:
1 # hostname -i
A sada dever ser igual ao seu ip: 192.168.0.100
Linux ONE Pgina 152
Linux Force www.linuxforce.com.br Introduo a Redes
1 # hostname -f
A sada dever ser igual ao seu FQDN: aula.teste.com.br
1 # hostname -d
A sada dever ser igual ao seu domnio: teste.com.br
1 # hostname -v
A sada dever ser igual ao seu hostname: aula
Para alterar o hostname de maneira esttica, devemos editar o arquivo /etc/host-
name:
1 # vim /etc/hostname
2 aula
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. <host-
name>.<domainname>
Linux ONE Pgina 153
Linux Force www.linuxforce.com.br Introduo a Redes
9.8 Congurando hosts e hostname CentOS:
Podemos tambm congurar atalhos para endereos de rede no CentOS, usamos a
mesma sintaxe que o Debian:
1 IP FQDN HOSTNAME ALIAS
Acrescente uma linha para o hosts:
1 # vim /etc/hosts
2 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:
1 # vim /etc/sysconfig/network
2 HOSTNAME=aula
Teste na mquina Debian:
Pingue o servidor CentOS:
1 # ping 192.168..1
Agora que j estamos com a rede congurada vamos tentar acessar a Internet.
Pingue o dns do google:
1 # ping 8.8.8.8
Linux ONE Pgina 154
Linux Force www.linuxforce.com.br Introduo a Redes
Agora pingue um site a sua escolha:
1 # ping www.linuxforce.com.br
Linux ONE Pgina 155
Linux Force www.linuxforce.com.br Introduo a Redes
9.9 LAB7
1 - Criar interface virtual eth0:0 no servidor e no cliente, colocar automtico no boot,
fazer o ping entre os ips da nova placa.
Servidor: 10.0.0.1
Cliente: 10.0.0.100
Linux ONE Pgina 156
Captulo 10
Servidor SSH
Linux Force www.linuxforce.com.br Servidor SSH
10.1 Introduo Terica
Secure Shell ou SSH o conjunto de padres e o protocolo associado que per-
mite estabelecer um canal seguro entre dois computadores. Ele utiliza o sistema de
chave criptogrca pblica para autenticar um computador remoto, podendo utilizar
esse sistema de chaves, tambm para autenticar usurios. A idia do SSH prover
condencialidade e integridade dos dados trocados entre dois computadores usando
criptograa e mensagens de autenticao codicadas (MACs).
Esse protocolo tipicamente utilizado para conectar-se mquinas remotas e exe-
cutar comandos, entretanto, h inmeras outras funcionalidades como realizar tu-
nelamentos, redirecionamento de portas, conexes X11 (interface grca) alm de
transferncia de arquivos.
Em geral, o SSH utiliza a porta 22/tcp e a alternativa segura ao TELNET e FTP
uma vez que eles no utilizam criptograa.
Linux ONE Pgina 158
Linux Force www.linuxforce.com.br Servidor SSH
10.2 Chaves de Criptograa Assimtricas
Criar um par de chaves assimtricas tem basicamente duas funes:
Aumentar o nvel de segurana - denindo uma frase senha;
Facilitar a execuo de scripts remotamente - no denir uma frase senha.
A criao de chaves assimtricas consiste na gerao de dois arquivos que contm
seqncias de caracteres aleatrios (pseudo) e que s tm funcionalidade se os dois
trabalharem em conjunto. Ou seja, quando criamos um par de chaves ser criada
uma chave pblica e uma chave privada. A chave privada sua e absolutamente
ningum deve ter acesso a ela; a sua chave pblica voc coloca no servidor remoto.
Quando voc tentar estabelecer uma conexo ela s ser possvel se a chave privada
se encaixar na chave pblica. Com esse sistema, existe apenas uma nica chave
privada que se encaixa em uma nica chave pblica.
Como s h um par que se completa, apenas quem possuir a chave privada poder
estabelecer uma conexo utilizando a respectiva chave pblica. Uma ilustrao do
par de chaves assimtricas pode ser vista na gura: Quando criamos um par de cha-
ves assimtricas devemos tomar o cuidado com a chave privada para que ningum
tenha acesso a ela.
Linux ONE Pgina 159
Linux Force www.linuxforce.com.br Servidor SSH
10.3 Formas de Utilizao
10.3.1 Acesso SSH
1) Acessando uma mquina remota:
O SSH possui diversas formas de utilizao; a mais bsica de todas serve para
estabelecer uma simples shell remota:
1 # ssh nome_usuario_remoto@ip_servidor
Ou com a opo -l de login:
1 # ssh -l nome_usuario_remoto ip_servidor
Outra opo se logar no servidor remoto com o mesmo nome de usurio que voc
est logado, desde que este mesmo usurio exista remotamente:
1 # ssh ip_servidor
Acessar o servidor por ssh:
1 # ssh aluno@192 .168..1
Ou:
1 # ssh -l aluno 192.168..1
Linux ONE Pgina 160
Linux Force www.linuxforce.com.br Servidor SSH
Desconecte e conecte-se novamente sem colocar o nome do usurio:
1 # ssh 192.168..1
Determine qual a porta utilizada pelo SSH:
1 # nmap localhost
A porta padro do ssh a porta 22.
2) Execute um comando na mquina remota:
1 # ssh aluno@192 .168..1 ls -l /etc/yum/yum.repos.d
10.3.2 Copiando Arquivos Remotos
10.3.3 Cpia maq_LOCAL para maq_REMOTA
Para copiar arquivo:
1 # scp arquivo usuario@ip_de_destino :/ destino
Para copiar diretrio:
1 # scp -r diretrio usuario@ip_de_destino :/ destino
Linux ONE Pgina 161
Linux Force www.linuxforce.com.br Servidor SSH
Copiando arquivo:
1 # scp /home/aluno/arquivo aluno@192 .168..1:/ home/aluno
Copiando diretrio:
1 # scp -r /home/aluno/diretorio aluno@192 .168..1:/ home/aluno
10.3.4 Cpia maq_REMOTA para maq_LOCAL
Para copiar arquivo:
1 # scp usuario@ip_de_origem(remoto):/ arquivo /destino
Para copiar diretrio:
1 # scp -r usuario@ip_de_origem(remoto):/diretrio /destino
Copiando arquivo:
1 # scp aluno@192 .168..1:/ home/aluno/arquivo /tmp
Visualize o arquivo copiado:
1 # ls /tmp
Linux ONE Pgina 162
Linux Force www.linuxforce.com.br Servidor SSH
Copiando diretrio:
1 # scp -r aluno@192 .168..1:/ home/aluno/diretorio /tmp
Visualize o diretrio copiado:
1 # ls /tmp
10.3.5 SSH com Chaves Assimtricas
Quando criarmos o par de chaves assimtricas, ser criado um diretrio /.ssh na
home do usurio.
Em nossa mquina local, sem ser via ssh, vamos criar o par de chaves:
Digite uma senha na passphrase, no exemplo colocamos 123456.
1 # ssh -keygen -t rsa
2 Generating public/private rsa key pair.
3 Enter file in which to save the key (/root/.ssh/id_rsa):
4 Enter passphrase (empty for no passphrase): 123456
5 Enter same passphrase again: 123456
6 Your identification has been saved in /root/.ssh/id_rsa.
7 Your public key has been saved in /root/.ssh/id_rsa.pub.
8 The key fingerprint is:
9 c6:51:3e:75:e:1:b7 :98:5d:6d:81:5f:8a:8f:38:2a root@aula#
10 The key s randomart image is:
11 +--[ RSA 248]----+
12 | ... Eo+ |
13 | . . o . o . |
14 | . . . o |
Linux ONE Pgina 163
Linux Force www.linuxforce.com.br Servidor SSH
15 | . . + |
16 |. + o S |
17 | * . |
18 |. ooo |
19 | .o+o |
20 | .=+ |
21 +-----------------+
Obs.: A passphrase pode ser desde uma senha "normal", com 6 ou 12 carac-
teres, at uma frase complexa, sem limite de tamanho; o importante que no seja
algo fcil de adivinhar. Caso a passphrase no seja denida o acesso remoto ser
sem senha.
A partir da, ao invs de pedir sua senha, o servidor envia um "desao"encriptado
usando a chave pblica. Para respond-lo, o cliente SSH na sua mquina precisa
usar a chave privada, que por sua vez precisa ser destravada usando a passphrase.
Mesmo que algum consiga roubar sua chave privada, no conseguir conectar sem
saber a passphrase e vice-versa.
O comando gerar os arquivos ".ssh/id_rsa"e ".ssh/id_rsa.pub"dentro do seu dire-
trio home, que so, respectivamente, sua chave privada e sua chave pblica. O
".ssh/id_rsa" um arquivo secreto, que deve usar obrigatoriamente o modo de acesso
"600", para evitar que outros usurios da mquina possam l-lo. Muitos servidores
recusam a conexo caso os arquivos estejam com as permisses abertas.
1) Verique que as chaves foram criadas:
1 # ls /root/.ssh
2 id_rsa id_rsa.pub known_hosts
Depois de gerar seu par de chaves, falta o comando nal, que instala a chave pblica
no servidor, permitindo que ela seja usada para autenticao:
Linux ONE Pgina 164
Linux Force www.linuxforce.com.br Servidor SSH
1 # ssh -copy -id -i ~/. ssh/id_rsa.pub usuario@ip_do_servidor
Copiando a chave:
1 # ssh -copy -id -i ~/. ssh/id_rsa.pub root@192 .168..1
Em resumo, o que o ssh-copy-id faz nada mais do que copiar o contedo do ar-
quivo ".ssh/id_rsa.pub", dentro do seu diretrio home, para o arquivo ".ssh/autho-
rized_keys"dentro do diretrio home do servidor remoto, uma operao que tambm
pode ser realizada manualmente em caso de problemas.
Tente acessar o servidor:
1 # ssh root@192 .168..1
2
3 Enter passphrase for key /root/.ssh/id_rsa : 123456
4 Last login: Tue Jun 14 8:54:15 211 from 192.168..1
10.3.6 Acesso por SSH sem senha com ssh-agent
O comando ssh-agent usado para salvar as passphrases na memria, sem com
isso abrir mo da segurana. Ele funciona como uma espcie de "cache", onde voc
digita a passphrase apenas uma vez e ela ca gravada na memria at que a sesso
seja encerrada. A segurana no prejudicada, pois a passphrase no salva em
lugar algum, ca apenas armazenada (de forma encriptada) em uma rea protegida
de memria, acessvel apenas ao ssh-agent. Ao desligar o micro, tudo perdido.
1 # ssh -agent
Linux ONE Pgina 165
Linux Force www.linuxforce.com.br Servidor SSH
2 SSH_AUTH_SOCK =/tmp/ssh -dSVLR17117/agent .17117; export SSH_AUTH_SOCK;
3 SSH_AGENT_PID =17118; export SSH_AGENT_PID;
4 echo Agent pid 17118;
Execute os comandos que exportam as variveis criadas pelo comando ssh-agent:
1 # SSH_AUTH_SOCK =/tmp/ssh -dSVLR17117/agent .17117; export
SSH_AUTH_SOCK;
2 # SSH_AGENT_PID =17118; export SSH_AGENT_PID;
Adicione a chave:
1 # ssh -add
2 Enter passphrase for /root/.ssh/id_rsa: 123456
3 Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
Tente acessar o servidor sem colocar a passphrase:
1 # ssh root@192 .168..1
10.3.7 Congurando o servidor SSH (CentOS):
H diversos parmetros de congurao que podem ser alterados de forma a ajustar
seus parmetros de funcionamento.
Vamos entender alguns desses parmetros editando o arquivo de congurao do
servidor de SSH. Edite o arquivo /etc/ssh/sshd_cong:
Alguns parmetros:
Linux ONE Pgina 166
Linux Force www.linuxforce.com.br Servidor SSH
Keyword Description Default AllowGroups Habilita acesso apenas para grupos espe-
cicados * AllowUsers Habilita acesso apenas para usurios especicados * Deny-
Groups Nega acesso apenas para grupos especicados none DenyUsers Nega acesso
apenas para usurios especicados none
Port - porta de acesso ao ssh
PermitRootLogin - habilita/nega acesso do usurio root por ssh
X11Forwading - habilita/nega acesso ao X
Banner /etc/issue.net - habilita banner do issue.net
LoginGraceTime - tempo para se logar no servidor
Alterando o arquivo:
1 # vim /etc/ssh/sshd_config
2 # $OpenBSD: sshd_config ,v 1.73 25/12/6 22:38:28 reyk Exp $
3
4 # This is the sshd server system -wide configuration file. See
5 # sshd_config (5) for more information.
6
7 # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
8
9 # The strategy used for options in the default sshd_config shipped
with
10 # OpenSSH is to specify options with their default value where
11 # possible , but leave them commented. Uncommented options change a
12 # default value.
13
14 AllowUsers suporte
15 Port 2222
16 #Protocol 2,1
17 Protocol 2
18 #AddressFamily any
Linux ONE Pgina 167
Linux Force www.linuxforce.com.br Servidor SSH
19 #ListenAddress ...
20 #ListenAddress ::
21
22 # HostKey for protocol version 1
23 #HostKey /etc/ssh/ssh_host_key
24 # HostKeys for protocol version 2
25 #HostKey /etc/ssh/ssh_host_rsa_key
26 #HostKey /etc/ssh/ssh_host_dsa_key
27 # Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
28 #ServerKeyBits 768
29 # Logging
30 # obsoletes QuietMode and FascistLogging
31 #SyslogFacility AUTH
32 SyslogFacility AUTHPRIV
33 #LogLevel INFO
34 # Authentication:
35 LoginGraceTime 15
36 PermitRootLogin no
37 #StrictModes yes
38 #MaxAuthTries 6
39
40 #RSAAuthentication yes
41 #PubkeyAuthentication yes
42 #AuthorizedKeysFile .ssh/authorized_keys
43
44 # For this to work you will also need host keys in
/etc/ssh/ssh_known_hosts
45 #RhostsRSAAuthentication no
46 # similar for protocol version 2
47 #HostbasedAuthentication no
48 # Change to yes if you don t trust ~/. ssh/known_hosts for
49 # RhostsRSAAuthentication and HostbasedAuthentication
50 #IgnoreUserKnownHosts no
51 # Don t read the user s ~/. rhosts and ~/. shosts files
52 #IgnoreRhosts yes
53
Linux ONE Pgina 168
Linux Force www.linuxforce.com.br Servidor SSH
54 # To disable tunneled clear text passwords , change to no here!
55 #PasswordAuthentication yes
56 #PermitEmptyPasswords no
57 PasswordAuthentication yes
58 # Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
59 ChallengeResponseAuthentication no
60 # Kerberos options
61 #KerberosAuthentication no
62 #KerberosOrLocalPasswd yes
63 #KerberosTicketCleanup yes
64 #KerberosGetAFSToken no
65 # GSSAPI options
66 #GSSAPIAuthentication no
67 GSSAPIAuthentication yes
68 #GSSAPICleanupCredentials yes
69 GSSAPICleanupCredentials yes
70 # Set this to yes to enable PAM authentication , account
processing ,
71 # and session processing. If this is enabled , PAM authentication
will
72 # be allowed through the ChallengeResponseAuthentication mechanism.
73 # Depending on your PAM configuration , this may bypass the setting
of
74 # PasswordAuthentication , PermitEmptyPasswords , and
75 # "PermitRootLogin without -password ". If you just want the PAM
account and
76 # session checks to run without PAM authentication , then enable
this but set
77 # ChallengeResponseAuthentication=no
78 #UsePAM no
79 UsePAM yes
80
81 # Accept locale -related environment variables
82 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY
LC_MESSAGES
83 AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
Linux ONE Pgina 169
Linux Force www.linuxforce.com.br Servidor SSH
84 AcceptEnv LC_IDENTIFICATION LC_ALL
85 #AllowTcpForwarding yes
86 #GatewayPorts no
87 #X11Forwarding no
88 X11Forwarding yes
89 #X11DisplayOffset 1
90 #X11UseLocalhost yes
91 #PrintMotd yes
92 #PrintLastLog yes
93 #TCPKeepAlive yes
94 #UseLogin no
95 #UsePrivilegeSeparation yes
96 #PermitUserEnvironment no
97 #Compression delayed
98 #ClientAliveInterval
99 #ClientAliveCountMax 3
100 #ShowPatchLevel no
101 #UseDNS yes
102 #PidFile /var/run/sshd.pid
103 #MaxStartups 1
104 #PermitTunnel no
105 #ChrootDirectory none
106 # no default banner path
107 Banner /etc/issue.net
108
109 # override default of no subsystems
110 Subsystem sftp /usr/libexec/openssh/sftp -server
Reinicie o servio:
1 # service sshd restart
Agora para fazer o acesso da mquina remota ao servidor:
Linux ONE Pgina 170
Linux Force www.linuxforce.com.br Servidor SSH
1 # ssh -P 2222 suporte@192 .168..1
Onde: -P identica a porta
Como usurio suporte, determine qual a porta utilizada pelo SSH:
1 $ nmap -sV localhost
Agora ele no consegue identicar a porta do ssh, pois voc alterou a porta padro,
mas ainda existem parmetros do nmap que conseguem identicar:
1 $ nmap -p -65535 -sV localhost
A opo -p serve para passar um range de portas ou uma porta especca a ser
escaneada.
Ele ainda no identicou qual o servio est sendo executado na porta, ento colo-
que a opo -sV para escanear a verso do programa:
1 # nmap -sV -p -65535 localhost
-s - escaneia -V - banner(mostra programa e verso)
10.3.8 Cpia remota com porta diferente:
1 # scp -P 2222 arquivo suporte@192 .168..1:
Linux ONE Pgina 171
Linux Force www.linuxforce.com.br Servidor SSH
-P - porta
Ao no se denir um destino aps os dois pontos : o arquivo ou diretrio ser
copiado para o diretrio home do usurio remoto.
10.3.9 Tunelamento SSH
Uma forma simples de encriptografar protocolos que em condies normais no su-
portam encriptao usar o SSH para criar tneis seguros, ligando uma das portas
da sua mquina porta do servidor onde o servio em questo est ativo.
Por exemplo, se algum se encontra dentro de uma instituio cuja conexo Inter-
net protegida por um rewall que bloqueia determinadas portas de conexo, no
ser possvel, por exemplo, acessar e-mails via POP3, o qual utiliza a porta 110, nem
envi-los via SMTP, pela porta 25.
As duas portas essenciais so a 80, para HTTP e a 443, para HTTPS, as quais
garantem uma navegao em pginas da Web sem restries.
No h necessidade do administrador da rede deixar vrias portas abertas, uma vez
que conexes indesejadas e que comprometam a segurana da instituio possam
ser estabelecidas atravs das mesmas.
Contudo, isso compromete a dinamicidade de aplicaes na Internet. Um funcionrio
ou aluno que queira acessar painis de controle de sites, arquivos via FTP ou amigos
via Instant Messengers, por exemplo, no ter a capacidade de faz-lo, uma vez que
as respectivas portas para seus funcionamentos esto bloqueadas.
Para quebrar essa imposio rgida, porm necessria, o SSH oferece o recurso do
Tnel.
Acesse em seu navegador o ip do servidor:
Linux ONE Pgina 172
Linux Force www.linuxforce.com.br Servidor SSH
http://192.168.0.1
Voc ver o site da dexter.com.br.
Por ssh vamos criar um tnel com esse servidor e mapear a porta 80 para a porta
12345 na nossa mquina local:
1 # ssh -Lporta_local:servidor_remoto:porta_remota
usurio@servidor_remoto
Lembre-se que estamos utilizando uma porta diferente da padro, e que o nico
usurio que pode se conectar o aluno:
1 # ssh -p 2222 -L12345 :192.168..1:8 aluno@IP_DO_SERVIDOR_DEXTER
Acesse o site no navegador localmente: http://localhost:12345
Para desconectar, deslogue do servidor.
Outras opes:
-f - O parmetro -f"dentro do comando faz com que ele seja executado em back-
ground, liberando o terminal depois que a conexo estabelecida.
-N - O parmetro -N"faz com que o SSH apenas crie o redirecionamento da porta,
sem abrir um terminal do servidor remoto.
10.3.10 Mensagem em broadcast: wall
O comando wall envia uma mensagem a todos os usurios logados no sistema.
Este comando faz a leitura de um arquivo ou entrada padro e escreve o resultado
Linux ONE Pgina 173
Linux Force www.linuxforce.com.br Servidor SSH
em todos os terminais onde existem usurios conectados. Somente o usurio root
pode utilizar este comando.
No confundam o comando wall com o antigo netsend da Microsoft. A mensa-
gem broadcast enviada pelo wall, para todos os terminais conectados naquele
determinado servidor, enquanto o netsend faz broadcast para todos os endereos
ativos na rede.
Enviando sua mensagem:
1 # wall
2 minha mensagem
3 <ctrl+d><enter >
Linux ONE Pgina 174
Linux Force www.linuxforce.com.br Servidor SSH
10.4 LAB8
1- Acesse o servidor por ssh
2- Acesse o diretrio onde cam as imagens do site da aula: /var/www/intranet/-
menu
3- Renomeie o arquivo home.png para home.original.png
4- copie uma imagem do cliente para o servidor e substitua a imagem do home: ar-
quivo a ser copiado: /usr/share/images/desktop-base/gnome-foot.png salve o arquivo
com o nome de home.png
5- Acesse o site e verique se o cone para ir para o home mudou.
Linux ONE Pgina 175
Captulo 11
TCP Wrappers
Linux Force www.linuxforce.com.br TCP Wrappers
11.1 Introduo Terica
Os TCP Wrappers so usados para aplicar regras de acesso a diversos servios em
seu servidor, podendo permitir ou negar conexes a eles. Eles so controlados por
dois arquivos: /etc/hosts.allow - congurao de acessos permitidos para determi-
nados IPs e /etc/hosts.deny - congurao de acessos negados para determinados
IPs. TCP - Sigla para "Transmission Control Protocol".
Linux ONE Pgina 177
Linux Force www.linuxforce.com.br TCP Wrappers
11.2 Entendendo o TCP Wrappers
Existemdezenas de possibilidades de congurao para o tcp_wrappers e voc pode
estud-las emextenso atravs das pginas de manual hosts_access e hosts_options.
Portanto, sero ilustrados apenas alguns casos interessantes do uso desta ferra-
menta.
As regras de controle de acesso, existentes nestes dois arquivos, tm o seguinte
formato:
1 lista_de_daemons: lista_de_clientes [: comando]
lista_de_daemons: Lista de um ou mais nomes de daemons (como especicados
no /etc/inetd.conf), ou curingas.
lista_de_clientes: Lista de um ou mais endereos ou nomes de mquinas, padres
ou curingas utilizados para especicar quais clientes podeme quais no podemaces-
sar o servio.
comando (opcional): possvel executar um comando sempre que uma regra casa
com um padro e utilizada.
Veja exemplos a seguir:
Como citado anteriormente, curingas podem ser utilizados tanto na lista de daemons
quanto na lista de clientes. Entre os existentes, pode-se destacar os seguintes:
ALL - Signica todos os servios ou todos os clientes, dependendo apenas do campo
em que se encontra.
LOCAL - Este curinga casa com qualquer nome de mquina que no contenha um
caractere ponto ., isto , uma mquina local.
Linux ONE Pgina 178
Linux Force www.linuxforce.com.br TCP Wrappers
PARANOID - Casa comqualquer nome de mquina que no case comseu endereo.
Isto geralmente ocorre quando algum servidor DNS est mal congurado ou quando
alguma mquina est tentando se passar por outra.
Na lista de clientes podem ser utilizados nomes ou endereos de mquinas, ou ento
padres que especicam um conjunto de mquinas. Se a cadeia de caracteres que
identica um cliente inicia com um ponto ., um nome de mquina ir casar com
este padro sempre que o nal desse nome casar com o padro especicado. Por
exemplo, se fosse utilizada a cadeia de caracteres .minhaorganizao, o nome de
mquina server.minhaorganizao casaria com o padro.
Similarmente, se a cadeia de caracteres termina com um ponto ., um endereo de
mquina ir casar com o padro quando seus campos numricos iniciais casarem
com a cadeia de caracteres especicada. Para exemplicar, se fosse utilizada a
cadeia de caracteres 192.168.220., todas as mquinas que tenham um endereo IP
que inicie comestes 3 conjuntos de nmeros iro casar como padro (192.168.220.0
ao 192.168.220.255).
Alm destes mtodos, possvel identicar um cliente atravs do IP/mscara de
rede. Voc pode especicar, por exemplo, 192.168.220.0/255.255.255.128, e qual-
quer mquina com endereo IP entre 192.168.220.0 e 192.168.220.127 casaria com
o padro.
Linux ONE Pgina 179
Linux Force www.linuxforce.com.br TCP Wrappers
11.3 Suporte a TCP/Wrappers
Para saber se umservio temsuporte a TCP/Wrappers verique suas bibliotecas:
1 # which sshd
2 # ldd /usr/sbin/sshd
A existncia da libwrap conrma o suporte a TCP/Wrappers:
1 libwrap.so. => /lib/libwrap.so. ( xb7ef7)
Bloqueie todos os acessos ao seu servidor por ssh:
1 # vim /etc/hosts.deny
2 sshd: ALL
Tente acessar seu servidor CentOS por ssh a partir da mquina Debian:
1 # ssh -p 2222 192.168..1
No possvel devido a regra do TCP/Wrappers. Libere o acesso ssh ao seu servidor
CentOS apenas para seu cliente Debian:
1 # vim /etc/hosts.allow
2 sshd: 192.168..1
Acesse seu servidor CentOS por ssh a partir da mquina Debian:
Linux ONE Pgina 180
Linux Force www.linuxforce.com.br TCP Wrappers
1 # ssh -p 2222 192.168..1
Linux ONE Pgina 181
Captulo 12
Comandos avanados
Linux Force www.linuxforce.com.br Comandos avanados
12.1 Introduo terica
No mundo GNU/Linux, a maioria das operaes so realizadas por meio de coman-
dos escritos. Emgeral, eles permitemummaior controle e exibilidade de operaes,
alm de poderem ser includos em scripts. Neste captulo iremos aprender alguns
comandos avanados.
Linux ONE Pgina 183
Linux Force www.linuxforce.com.br Comandos avanados
12.2 Trabalhando com entrada e sada de dados
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);
Linux ONE Pgina 184
Linux Force www.linuxforce.com.br Comandos avanados
12.3 Alterando os redirecionamentos
Formas de redirecionar o uxo de dados:
> (maior): Direciona a sada do comando para um arquivo, substituindo o seu con-
tedo, 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;
< (menor): Passa o contedo do arquivo como argumento para o comando;
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, subs-
tituindo 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 ONE Pgina 185
Linux Force www.linuxforce.com.br Comandos avanados
12.3.1 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 # ls /
2 boot lost+found mnt repo srv var cdrom etc
lib media opt root sys home sbin
tmp bin dev lib64 proc selinux usr
Para gravar essa lista em um arquivo chamado raiz, utilizamos o direcionador, da
seguinte forma:
1 # ls / > raiz
No aparece nada na tela porque o comando foi executado sem erros e sua sada
redirecionada para o arquivo raiz, conra:
1 # 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:
1 # cat raiz
Linux ONE Pgina 186
Linux Force www.linuxforce.com.br Comandos avanados
2 - envie a sada do cat para o arquivo raiz:
1 # cat raiz > raiz
Ao realizar o comando acima, a primeira interpretao do bash executar o co-
mando: > 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 re-
direcionando nada.
Para evitar este problema execute o comando:
1 # set -o noclobber
aps o comando faca o exemplo:
1 cat /etc/fstab > hoje
1 cat hoje > hoje
Verique que o arquivo nao foi sobrescrito.
e para voltar:
1 # set +o noclobber
Linux ONE Pgina 187
Linux Force www.linuxforce.com.br Comandos avanados
12.3.2 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.
1 # ls / >> hoje
Verique que a sada do comando ls foi adicionada ao nal do arquivo hoje.
12.3.3 O direcionador <
O direcionador < utilizado para passar um stdin para um comando, ele geralmente
utilizado para passar o contedo de arquivos como parmetros de comandos.
Alguns comandos precisam que seja passado o stdin para eles serem executados,
vamos ver o exemplo do comando tr, que traduz ou deleta caracteres:
Para converter letras minsculas por maisculas faa:
1 # tr "a-z" "A-Z" /etc/passwd
Verique que sem o redirecionador < o comando no executado com sucesso,
agora faa corretamente:
1 # tr "a-z" "A-Z" < /etc/passwd
Voc tambm pode utilizar o comando tr para deletar caracteres, vamos deletar as
vogais do arquivo:
Linux ONE Pgina 188
Linux Force www.linuxforce.com.br Comandos avanados
1 # tr -d aeiou < /etc/passwd
Para que as mudanas sejam efetuadas de fato necessrio encaminhar a sada
para outro arquivo.
12.3.4 O direcionador 2>
Quando utilizamos o direcionador > ele no redireciona as sada de erro, apenas a
sada sem erros, caso o arquivo no exista ser criado e caso j exista ser sobres-
crito. Por exemplo, vamos usar o comando ls usando como parmetro um diretrio
que no existe e redirecionar sua sada para um novo arquivo:
1 # ls nao_existe > ls_naoexiste
2
3 ls: impossvel acessar nao_existe: Arquivo ou diretrio no
encontrado
Verique que mesmo no redirecionando a sada com erro o arquivo ls_naoexiste
criado:
1 # cat ls_naoexiste
Para gravar as mensagens de erro, devemos utilizar o direcionador 2>:
1 # ls nao_existe 2> ls_naoexiste.err
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 ONE Pgina 189
Linux Force www.linuxforce.com.br Comandos avanados
1 # cat ls_naoexiste.err
2 ls: impossvel acessar nao_existe: Arquivo ou diretrio no
encontrado
12.3.5 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 # cat ls_naoexiste.err
Agora vamos redirecionar outra sada de erro para este arquivo:
1 # cat /nada 2>> ls_naoexiste.err
Verique que a sada de erro foi adicionada ao arquivo ls_naoexiste.err:
1 # cat ls_naoexiste.err
2 ls: impossvel acessar nao_existe: Arquivo ou diretrio no
encontrado
3 cat: /nada: Arquivo ou diretrio no encontrado
12.3.6 O direcionador 2>&1
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:
Linux ONE Pgina 190
Linux Force www.linuxforce.com.br Comandos avanados
1 # 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 # cat /etc/* > msg_correto 2> msg_errado
Visualize o contedo dos arquivos msg_correto e msg_errado:
1 # cat msg_correto
2 # cat msg_errado
Mas, e se for necessrio gravar todas as mensagens em um arquivo apenas?
Podemos redirecionar o stderr para o stdout:
1 # cat /etc/* > msg_total 2>&1
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:
1 # cat msg_total
Linux ONE Pgina 191
Linux Force www.linuxforce.com.br Comandos avanados
12.3.7 O direcionador &>
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:
1 # 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 # cat /etc/* > msg_ok 2> msg_error
Visualize o contedo dos arquivos msg_ok e msg_error:
1 # cat msg_ok
2 # cat msg_error
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:
1 # cat /etc/* &> ls_out
Linux ONE Pgina 192
Linux Force www.linuxforce.com.br Comandos avanados
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:
1 # cat ls_out
12.3.8 O direcionador &
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:
1 # cat ls_out
Agora redirecione a sada stdout e stderr para ele com & :
1 # cat /etc/* &>> 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:
1 # cat ls_out
Observe que a sada foi adicionada ao nal do arquivo.
Linux ONE Pgina 193
Linux Force www.linuxforce.com.br Comandos avanados
12.3.9 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 proces-
sados 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:
1 # cat /etc/passwd
A sada foi o stdout do comando. Vamos agora redirecionar este stdout para o co-
mando tr:
1 # cat /etc/passwd | tr "a-z" "A-Z"
12.3.10 O direcionador tee
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 :
1 # cat /etc/fstab | tee arquivo.tee
Linux ONE Pgina 194
Linux Force www.linuxforce.com.br Comandos avanados
A sada aparece na tela e tambmfoi direcionada para o arquivo arquivo.tee, visualize-
o:
1 # cat arquivo.tee
12.3.11 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 con-
tedo nele, veja:
1 # cat << EOF > arquivo_novo
Onde: EOF - indica que a edio do arquivo terminar quando em uma linha con-
tiver apenas a sequncia EOF.
> arquivo_novo - direciona o que for digitado no arquivo para arquivo_novo. Ex:
1 # cat << EOF > arquivo_novo
2
3 Este
4
5 meu arquivo!
6 EOF
Visualize o arquivo gerado:
Linux ONE Pgina 195
Linux Force www.linuxforce.com.br Comandos avanados
1 # cat arquivo_novo
Linux ONE Pgina 196
Linux Force www.linuxforce.com.br Comandos avanados
12.4 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), disposi-
tivos USB entre outros.
12.4.1 Sintaxe:
1 # dd if=<origem > of=<destino >
Criando um arquivo de 1MB:
1 # dd if=/dev/zero of=teste.txt bs =124 count =1
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
zero", "0", 0x30) forem lidos dele. O uxo de caracteres nulos gerado por este dispo-
sitivo pode, por exemplo, ser utilizado para sobreescrever informaes ou para gerar
um arquivo limpo de certo tamanho.
Linux ONE Pgina 197
Linux Force www.linuxforce.com.br Comandos avanados
12.5 Contagem: 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:
1 # 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:
1 # wc -l /etc/passwd
Apenas contar o nmero de blocos (palavras):
1 # wc -w /etc/passwd
Apenas contar o nmero de caracteres:
1 # wc -l /etc/passwd
Linux ONE Pgina 198
Linux Force www.linuxforce.com.br Comandos avanados
12.6 split
O comando split usado para dividir determinado arquivo em pedaos menores,
muito til quando se tem um arquivo maior do que um espao de armazenamento
como por exemplo um cd, voc pode dividir o arquivo para que ele caiba em dois ou
mais cds, por exemplo.
Vamos dividir o arquivo gerado pelo dd em partes de 300Kb:
1 # split -b 3KB 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 tama-
nho deles:
1 # ls -lh xx*
Podemos dividir o arquivo por nmero de linhas e mudar seu prexo tambm:
1 # split -l 1 /etc/passwd pref
Verique que foram gerados vrios arquivos com o prexo pref, veja tambm o
nmero de linhas de cada um:
1 # wc -l pref*
Linux ONE Pgina 199
Linux Force www.linuxforce.com.br Comandos avanados
Para recuperar o arquivo, concatene todos os pedaos na ordem correta:
1 # cat prefaa prefab prefac prefad > passwd.backup
Visualize o arquivo:
1 # cat passwd.backup
Linux ONE Pgina 200
Linux Force www.linuxforce.com.br Comandos avanados
12.7 Determinando o tipo de arquivo: 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 Linux.jpg para Linux.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 # file /
2 # file /bin/cat
3 # file /dev/sda1
4 # file /etc/passwd
5 # file /usr/sbin/adduser
Linux ONE Pgina 201
Linux Force www.linuxforce.com.br Comandos avanados
12.8 who
Determina quais usurios esto logados.
Verique os usurios que esto logados no sistema:
1 # who
2 fabiano tty7 211 -8 -11 23:1 (:)
3 fabiano pts/ 211 -8 -12 21:32 (:.)
Onde:
fabiano - usurio logado tty7 - terminal em que o usurio est logado 2011-08-11
23:01 - hora e data de login (:0) - Display
Linux ONE Pgina 202
Linux Force www.linuxforce.com.br Comandos avanados
12.9 w
Mostra tempo que o sistema est ligado, mdia de carga do sistema, usurios loga-
dos.
1 # w
2 21:43:12 up 22:42 , 2 users , load average: ,55, ,45, ,37
3 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
4 fabiano tty7 : Thu23 22:41m 6:27 .53s
gnome -session
5 fabiano pts/ :. 21:32 .s .22s .2s w
Linux ONE Pgina 203
Linux Force www.linuxforce.com.br Comandos avanados
12.10 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
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 automa-
ticamente atualizado. Isto possvel porque nos sistemas de arquivos usados pelo
Linux cada arquivo possui umcdigo 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.
Linux ONE Pgina 204
Linux Force www.linuxforce.com.br Comandos avanados
12.11 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 ONE Pgina 205
Linux Force www.linuxforce.com.br Comandos avanados
12.12 stat
Para saber o nmero do inode de um arquivo digite:
1 # ls -i <arquivo >
Ou utilize o comando stat:
1 # stat <arquivo >
Vamos ver o nmero do inode do arquivo /etc/passwd:
1 # stat /etc/passwd
2 1 File: /etc/passwd
3 2 Size: 32 Blocks: 8 IO Block: 496 arquivo comum
4 3 Device: 81h/249d Inode: 4995196 Links: 1
5 4 Access: (644/ -rw-r--r--) Uid: (/ root) Gid: (/ root)
6 5 Access: 211 -8 -13 23:2:1.4679196 -3
7 6 Modify: 211 -8 -13 23:2:.236496119 -3
8 7 Change: 211 -8 -13 23:2:.325887191 -3
Onde:
linha 1 - nome do arquivo.
linha 2 - tamanho, tipo do arquivo.
linha 3 - localizao no dispositivo, nmero do inode.
linha 4 - permisses, dono, grupo.
Linux ONE Pgina 206
Linux Force www.linuxforce.com.br Comandos avanados
linha 5 - ltima vez que o arquivo foi acessado, visualizado.
linha 6 - ltima vez que foi modicado o arquivo.
linha 7 - ltima vez que foi alterada a permisso do arquivo.
Linux ONE Pgina 207
Linux Force www.linuxforce.com.br Comandos avanados
12.13 Link simblico
possvel criar links simblicos de arquivos e/ou diretrios mesmo que estejam em
parties diferentes, j que o nmero de inodes do arquivo original e do link simblico
so diferentes, mas se o arquivo original for apagado o link quebrado, tornando-
se intil. Tambm no possvel determinar a permisso olhando o link simblico,
somente olhando o original.
Vamos criar um arquivo para testarmos:
1 # vim arquivo
2 Este arquivo para teste!
Agora vamos olhar o nmero do inode do arquivo com o comando ls:
1 # ls -i arquivo
2 11927685 arquivo
Onde:
-i - mostra nmero de inode do arquivo/diretrio
Criando o link simblico:
1 # ln -s <arquivo_original > <link_simbolico >
Vamos criar o link do arquivo: arquivo para o arquivo: arq.simbolico.
1 # ln -s arquivo arq.simbolico
Linux ONE Pgina 208
Linux Force www.linuxforce.com.br Comandos avanados
Visualize os nmeros de inodes e a permisso:
1 # ls -1il arq*
2 11927715 lrwxrwxrwx 1 root root 7 211 -8 -11 18:4 arq.simblico ->
arquivo
3 11927685 -rw -r--r-- 1 root root 211 -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:
1 # mkdir diretorio
Agora vamos olhar o nmero do inode do diretrio com o comando ls:
1 # ls -di diretorio
2 11935762 diretorio
Onde:
-d - mostra informaes do diretrio -i - mostra nmero de inode do arquivo/diretrio
Criando o link simblico:
1 # ln -s <diretorio_original > <diretorio_simbolico >
Linux ONE Pgina 209
Linux Force www.linuxforce.com.br Comandos avanados
Vamos criar o link do arquivo: diretrio para o diretrio: dir.simblico.
1 # ln -s diretorio dir.simblico
Visualize os nmeros de inodes:
1 # ls -1dil dir*
2 11935762 drwxr -xr -x 2 root root 496 211 -8 -11 18:12 diretrio
3 11927717 lrwxrwxrwx 1 root root 1 211 -8 -11 18:14 dir.simblico
-> diretrio/
Onde:
-1 - mostra um arquivo/diretorio por linha -d - mostra informaes do diretorio -i -
mostra nmero do inode do arquivo/diretrio -l - modo estendido
12.13.1 Hard links
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:
1 # ln <arquivo_original > <Hard_link >
Vamos criar o link do arquivo: arquivo para o arquivo: arq.hard.
Linux ONE Pgina 210
Linux Force www.linuxforce.com.br Comandos avanados
1 # ln arquivo arq.hard
Visualize os nmeros de inodes:
1 # ls -1 -i arq*
Onde:
-1 - mostra um arquivo por linha -i - mostra nmero do inode do arquivo/diretrio
12.13.2 nl
O comando cat permite numerar as linhas atravs da opo -n:
1 # cat -n /etc/fstab
Existe um outro comando que tambm visualiza arquivo e numera as linhas, este
Comando o nl:
1 # nl /etc/passwd
2 # grep sys /etc/passwd | nl
3 # ls -l /etc | nl
4 # ls -l /etc | tail | nl
Linux ONE Pgina 211
Linux Force www.linuxforce.com.br Comandos avanados
12.13.3 Classicao: sort
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 # vim baguna
2 Gabriela
3 Barbara
4 Bruno
5 Victor
6 Alexandre
7 Bruno
8 Alfredo
9 Bruno
A sada do comando abaixo no segue a ordem alfabtica:
1 # cat baguna
Podemos mostrar a sada classicada em ordem alfabtica, assim:
1 # sort baguna
O comando sort pode ser modicado usando os parmetros:
-f - no considera se as letras esto em caixa alta ou baixa;
Linux ONE Pgina 212
Linux Force www.linuxforce.com.br Comandos avanados
-n - classicao numrica;
-r - classica na ordem invertida.
Para saber mais parmetros:
1 # man sort
12.13.4 Eliminando linhas repetidas: uniq
Remove linhas desnecessrias ou duplicadas, ou seja, ele faz uma espcie de lista-
gem de cada linha nica do arquivo; Somente remove se as linhas repetidas estive-
rem na sequncia, ou seja, uma aps a outra, ento sempre utilize o comando sort
antes para ordenar as linhas.
Eliminando as linhas repetidas:
1 # sort baguna | uniq
Para mostrar apenas as linhas que se repetem:
1 # sort baguna | uniq -d
Linux ONE Pgina 213
Linux Force www.linuxforce.com.br Comandos avanados
12.14 Filtragem : grep e egrep e fgrep
12.14.1 grep
Uma necessidade constante dos administradores encontrar informaes dentro dos
arquivos. Para ilustrar, podemos localizar a palavra root no arquivo /etc/passwd:
1 # grep root /etc/passwd
2 root:x::: root:/root:/bin/bash
Outra situao possvel procurar pelas entradas que no possuem a palavra pro-
curada. Para isso, usamos o parmetro -v (inVerter), que inverte a ltragem do
comando grep:
1 # grep -v bash /etc/passwd
2 daemon:x:1:1: daemon :/usr/sbin:/bin/sh
3 bin:x:2:2: bin:/bin:/bin/sh
4 sys:x:3:3: sys:/dev:/bin/sh
5 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 ig-
norar maisculas e minsculas:
1 # grep -in debian /etc/passwd
2 6:Debian -exim:x:123:132::/ var/spool/exim4:/bin/false
Linux ONE Pgina 214
Linux Force www.linuxforce.com.br Comandos avanados
-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:
1 # grep -i debian /etc/passwd -A 2 -B 1
-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).
A seguir, o grep aplicado para ltrar quem est logado no primeiro terminal
(tty1):
1 # who |grep tty1
2 root tty1 211 -8 -14 22:4
12.14.2 egrep
Para uma busca mais avanada utilize o egrep. Por exemplo quero buscar por uma
linha que contenha a palavra root ou aluno:
1 # egrep "root|aluno" /etc/passwd
Procurar por linhas que contenham a palavra Debian ou debian:
1 # egrep [dD]ebian /etc/passwd
Linux ONE Pgina 215
Linux Force www.linuxforce.com.br Comandos avanados
Procurar por linhas que comeam com a letra b:
1 # egrep ^b /etc/passwd
Procurar por linhas que terminam com a palavra false:
1 # egrep false$ /etc/passwd
12.14.3 fgrep
Ao utilizar o fgrep toda operao de expresso regular ser ignorada, tornando o
processo de localizao muito mais rpido. Visualize o contedo do arquivo /etc/sha-
dow:
1 # cat /etc/shadow
Agora visualize apenas as linhas que contenham o caracter $:
1 # fgrep $ /etc/shadow
12.14.4 sed
O comando sed utilizado para procurar e substituir padres em texto, mostrando o
resultado em stdout.
No sed, a expresso ca circunscrita entre barras(/). Por exemplo: Deletar as linhas
comentadas do arquivo /etc/fstab:
Linux ONE Pgina 216
Linux Force www.linuxforce.com.br Comandos avanados
1 # sed -i /^#/d /etc/fstab
-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:
1 # sed -e s/#/@/ /etc/fstab
Substitua agora os caracteres / por @ :
1 # sed -e s /\//@/ /etc/fstab
Observe que voc tem que escapar o caracter /, pois este o separador dos cam-
pos.
Ou mais fcil, utilize outro separador de campos:
1 # sed -e s|/|@| /etc/fstab
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:
1 # sed -e s|/|@|g /etc/fstab
Linux ONE Pgina 217
Linux Force www.linuxforce.com.br Comandos avanados
Para efetuar a troca em uma linha especca, aponte o nmero da linha, por exemplo
fazer a troca dos caracteres / por @ na primeira linha:
1 # sed -e 1s|/|@|g /etc/fstab
12.14.5 Filtrar colunas: cut e awk
O comando cut pode ser muito til para conseguir listagens a partir de arquivos
com separadores de colunas denidos.
Por exemplo, para conseguir o nome de todos os usurios da mquina, ou seja, a
primeira coluna do arquivo /etc/passwd e tambm seu uid , cujo delimitador de
colunas o sinal :, podemos usar o comando:
1 # cut -f1 ,3 -d: --output -delimiter =" " /etc/passwd > /root/uid
Onde:
-f - coluna 1,3 - coluna 1 e 3 -d - delimitador --output-delimiter- - delimitador da
sada do comando
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 conse-
guir resolver o problema, para elas use awk.
Para o mesmo exemplo acima, agora utilizando o awk:
1 # awk -F: {print $1 ," ",$4} /etc/passwd > /root/gid
Linux ONE Pgina 218
Linux Force www.linuxforce.com.br Comandos avanados
Onde:
-F - delimitador
print - imprime o valor da coluna especicada:
$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:
1 # awk -F: ($3 <= 5) {print $1,$3} /etc/passwd
Onde ($3 <= 5) equivale a:
$3 - coluna3 <= - menor ou igual == - igual >= - maior ou igual 5 - valor de compara-
o
Linux ONE Pgina 219
Linux Force www.linuxforce.com.br Comandos avanados
12.15 Juntando dois arquivos em um: join e paste
12.15.1 join
Vizualize os arquivos /root/uid e /root/gid:
1 # cat /root/uid
e
1 # cat /root/gid
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:
1 # join /root/uid /root/gid
12.15.2 paste
O comando paste, junta os arquivos na sada padro. Diferente do join, ele joga
os dois arquivos lado-a-lado.:
1 # paste /root/uid /root/gid
Linux ONE Pgina 220
Linux Force www.linuxforce.com.br Comandos avanados
Ainda com o paste podemos, usar o parmetro -d, de delimitador:
1 # paste -d@ /root/uid /root/gid
Linux ONE Pgina 221
Linux Force www.linuxforce.com.br Comandos avanados
12.16 lab9
Seu chefe precisa de sua ajuda novamente:
1- Ele precisa do nome de todos os usurios comuns do servidor
2- Ele precisa salvar um arquivo de nome documentao de 1GB e s tem dois cds
de 700MB para armazenamento, ajude-o.
Linux ONE Pgina 222
Captulo 13
Manipulando Hardware e Dispositivos
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.1 Introduo terica
O ncleo do sistema operacional GNU/Linux, o kernel, se comunica com os dispo-
sitivos de uma maneira muito interessante: praticamente todos os dispositivos em
GNU/Linux so representados por um arquivo correspondente dentro do sistema de
arquivos. Exceo a esta regra so as placas de rede.
O local onde so armazenadas estas representaes o diretrio /dev. Uma lista-
gem deste diretrio mostrar uma srie de arquivos, todos eles representando uma
parte do seu computador. A interao com estes arquivos, pelo sistema operacional
GNU/Linux, feito atravs de pedidos e respostas que so enviados e recebido por
esses arquivos especiais.
Linux ONE Pgina 224
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.2 Explorando o /dev
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 efetu-
ado 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.
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 subs-
titudo 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:
Linux ONE Pgina 225
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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 comunica-
o.
/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 correspon-
dem 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
Linux ONE Pgina 226
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
/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).
/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 dis-
cos SCSI mas tambm por dispositivos USB e SATA, uma vez que so acessa-
dos utilizando essa emulao. Onome 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 tra-
duzido como: dispositivo (DEV) de entrada (INPUT) do tipo apontador (MICE
outro termo para rato, em ingls). Um mouse PS/2 segue uma nomenclatura um
Linux ONE Pgina 227
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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:
1 # cat /dev/input/mice
Para mouse PS/2:
1 # cat /dev/psaux
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 ONE Pgina 228
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.3 Dispositivos de armazenamento
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
Linux ONE Pgina 229
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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 comhd. Odisco 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 se-
gundo, 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:
1 # cat /dev/sda
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 or-
ganizao, convenincia, exibilidade ou segurana. Nos sistemas baseados em re-
presentao 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 se-
Linux ONE Pgina 230
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
gunda representada por /dev/sda2. Qualquer partio adicional seguir o mesmo
padro.
Linux ONE Pgina 231
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.4 O que uma partio?
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.
13.4.1 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
/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.
Linux ONE Pgina 232
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
Se houver, por exemplo, trs parties no disco, sendo duas primrias e uma esten-
dida, 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 par-
tio 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 es-
quema seria o seguinte:
/dev/sda1 (Primria)
/dev/sda2 (Primria)
/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 nume-
ros de 1 a 4 so reservados para parties primrias e para a partio estendida.
Linux ONE Pgina 233
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
Assim, para inspecionar o contedo da primeira partio, pode-se usar o comando
abaixo:
1 # cat /dev/sda1
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.
Linux ONE Pgina 234
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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 pro-
cesso 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 armaze-
namento em qualquer diretrio do sistema de arquivos, contudo, existem algumas
convenes:
Dispositivos removveis devemser montados em/media (emoutras pocas em/mnt).
Exemplos:
Umcdromconvencional, 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;
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.
Linux ONE Pgina 235
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.5 Criando Parties no HD
Agora que j sabemos como montar um dispositivo precisamos saber como criar
uma partio manualmente. Para isso, h duas ferramentas importantes, que fazem
a mesma coisa, disponveis em sistemas GNU/Linux, so elas: fdisk e cfdisk.
Conhecer esses particionadores muito importante, anote mais um: gpar-
ted.
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.
Linux ONE Pgina 236
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.6 Particionamento com FDISK
O particionador fdisk o mais completo dos particionadores apesar de sua interface
pouco amigvel.
Sintaxe:
1 # fdisk [dispositivo]
Utilizando:
1 # fdisk /dev/sdb
Fazendo a chamada a esse programa podemos ver a seguinte tela inicial:
1 The number of cylinders for this disk is set to 14593.
2 There is nothing wrong with that , but this is larger than 124,
3 and could in certain setups cause problems with:
4 1) software that runs at boot time (e.g., old versions of LILO)
5 2) booting and partitioning software from other OSs
6 Command (m for help):
Pressionando a tecla m para obtermos um help, veremos a seguinte sada:
1 Command (m for help): m
2 Command action
3 a toggle a bootable flag
4 b edit bsd disklabel
5 c toggle the dos compatibility flag
6 d delete a partition
Linux ONE Pgina 237
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
7 l list known partition types
8 m print this menu
9 n add a new partition
10 o reate a new empty DOS partition table
11 p print the partition table
12 q quit without saving changes
13 s create a new empty Sun disklabel
14 t change a partition s system id
15 u change display/entry units
16 v verify the partition table
17 w write table to disk and exit
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 Comando (m para ajuda): n
2 Comando - ao
3 l lgica (5 ou superior)
4 p partio primria (1-4)
2 Escolha o tipo de partio:
1 l
3 inico da partio:
1 Primeiro cilindro (1-144, padro 144): 1
2 Usando valor padro 1
Linux ONE Pgina 238
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
4 nal da partio: Last cilindro, +cilindros or +sizeK,M,G (1-1044, padro 1044):
1G
13.6.1 Particionamento com CFDISK
A ferramenta cfdisk no to completa quanto o comando fdisk, mas um pouco
mais amigvel, ou como se diz em ingls: "user friendly". Para acess-la basta
executar o comando:
1 # cfdisk /dev/sdb
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
Linux ONE Pgina 239
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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.
Criadas as parties precisamos aplicar um lesystem (sistema de arquivos)
para que ela seja usvel pelo sistema operacional.
Aps salvar, visualize o contedo do arquivo /proc/partitions:
1 # cat /proc/partitions
Observe que a partio criada ainda no aparece, isto porque a tabela de partici-
onamento do seu hd no foi relida, para no ter que reiniciar, instale o programa
parted:
1 # apt -get install parted
Agora execute o partprobe, programa que far a releitura do seu HD:
1 # partprobe
Verique se sua partio foi reconhecida:
Linux ONE Pgina 240
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 # cat /proc/partitions
Linux ONE Pgina 241
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.7 Aplicando um Filesystem
Para que possamos gravar informaes de forma estruturada na partio que aca-
bamos de criar precisamos aplicar um lesystem a ela.
Aplicar um lesystem, no format-la!
Formatar o processo de preparar a mdia magntica, como discos rgidos e disque-
tes, 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 tc-
nicas, os dois processos assemelham-se por apagar todo o contedo da partio.
Portanto cuidado!
Para saber os FileSystem suportados pelo seu kernel:
1 # cat /proc/filesystems
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.
Linux ONE Pgina 242
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
xfs - Usado geralmente em banco de dados, tem suas vantagens com objetos muito
grandes.
iso9660 - O sistema de arquivos padro do CD-ROM.
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 disponibili-
zado 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.
13.7.1 O que JOURNALING?
Um sistema de arquivos com journaling d permisso ao Sistema Operacional de
manter um log (journal), de todas as mudanas no sistema de arquivos antes de
escrever os dados no disco. Normalmente este log um log circular alocado em
uma rea especial do sistema de arquivos.
Este tipo de sistema de arquivos tem a oferecer uma melhor probabilidade de no
Linux ONE Pgina 243
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
sofrer corrupo de dados no caso de o sistema travar ou faltar energia, e uma
recuperao mais rpida, pois no necessita vericar todo o disco, somente aqueles
que pertenciam a um log que no fora fechado devidamente.
Exemplos de sistemas de arquivos que suportam journaling: Ext3, Ext4, JFS, JFFS,
JFFS2, LogFS, NTFS, Reiser4, ReiserFS e XFS.
13.7.2 Aplicando um FileSystem
Para criarmos um FileSystem em uma partio, devemos escolher o seu tipo e
utilizar o comando mkfs com a seguinte sintaxe:
1 # mkfs -t tipo_do_FS <dispositivo >
Leitura sugerida: man mkfs
O FileSystem escolhido para ser utilizado no device deve ser suportado pelo ker-
nel. 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.
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:
Linux ONE Pgina 244
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 # mkfs -t ext2 /dev/sdb1
13.7.3 Espao em Disco: df
O tamanho de cada partio denido no momento de sua criao. Mas parece bas-
tante bvio que depois de algumtempo ser necessrio determinar quanto espao foi
consumido pelos arquivos e diretrios e quanto espao livre existe. O comando que
mostra o espao total e o espao utilizado de todas as parties montadas chama-se
df. Uma de suas caractersticas que o clculo dos espaos sempre uma apro-
ximao para a unidade de medida mais prxima, mais legvel para o ser humano.
1 # df -h <arquivo/diretrio/partio>
Mostra em kilobytes e megabytes:
1 # df -k <arquivo , diretrio ou partio>
2 # df -m <arquivo , diretrio ou partio>
13.7.4 Denindo tamanho dos objetos: du
No incomum precisar determinar o tamanho de um arquivo, de uma partio in-
teira ou de um diretrio com todo o seu contedo. O comando ls -alh capaz de
informar o tamanho de arquivos, mas no de parties inteiras ou de um diretrio
com todo o seu contedo.
O comando que faz esse trabalho o du. Veja a seguir alguns exemplos de seu
uso.
Linux ONE Pgina 245
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 # du -h <arquivo , diretrio ou partio>
Aproxima para a unidade de medida mais prxima, mais legvel para o ser humano.
Mostra em bytes:
1 # du -b <arquivo , diretrio ou partio>
Mostra em kilobytes:
1 # du -k <arquivo , diretrio ou partio>
Mostra em megabytes:
1 # du -m <arquivo , diretrio ou partio>
Mostra a quantidade de links que arquivo/diretrio/partio tem:
1 $ du -l <arquivo , diretrio ou partio>
Modo resumido, ou seja, no mostra subdiretrios:
1 # du -s <arquivo , diretrio ou partio>
Linux ONE Pgina 246
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.8 Devices, UUID e Labels
Quando usamos dispositivos seguindo padres como /dev/hda3 ou /dev/sda5, es-
tamos especicando um dispositivo que pode vir a receber outro nome. Portanto
se houver alguma modicao no disco, o sistema no mais encontrar a partio
especicada pois seu nome foi modicado. Uma alternativa inteligente para evitar
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 # vol_id -u /dev/sda1
2 f541a97e -ef19 -4e47 -b35 -b535a75c932a
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 # blkid
2 /dev/sda1: UUID="f541a97e -ef19 -4e47 -b35 -b535a75c932a" TYPE="ext3"
LABEL="MAIN"
3 /dev/sda3: UUID="7C444A56444A12F6" TYPE="ntfs" LABEL="WIN"
4 /dev/sda5: TYPE="swap"
5 /dev/sda6: UUID="69ff8ed5 -c9b -49b6-b21d -328 e9243efa" TYPE="ext3"
LABEL="HOME"
6 /dev/sda7: UUID="2c7d34 -5c6e -454 -8d4b -9 a8fa91548d" TYPE="ext3"
LABEL="STORAGE"
7 /dev/sda8: UUID="489B-5A22" TYPE="vfat" LABEL="CENTER"
Linux ONE Pgina 247
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
H tambm um outro mtodo de se descobrir essas informaes. Veja o comando
abaixo:
1 # ls -l /dev/disk/by -uuid/
2
3 lrwxrwxrwx 1 root root 1 29 -3 -6 1:41
2c7d34 -5c6e -454 -8d4b -9 a8fa91548d -> ../../ sda7
4 lrwxrwxrwx 1 root root 1 29 -3 -6 1:41 489B-5A22 -> ../../ sda8
5 lrwxrwxrwx 1 root root 1 29 -3 -6 1:41
69ff8ed5 -c9b -49b6 -b21d -328 e9243efa -> ../../ sda6
6 lrwxrwxrwx 1 root root 1 29 -3 -6 1:41 7C444A56444A12F6 ->
../../ sda3
7 lrwxrwxrwx 1 root root 1 29 -3 -6 1:41
f541a97e -ef19 -4e47 -b35 -b535a75c932a -> ../../ sda1
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 # tune2fs -l /dev/sda1
2 tune2fs 1.41.11 (14-Mar -21)
3 # aqui mostrado o nome do label:
4 Filesystem volume name: <none >
5 Last mounted on: /
6 # aqui mostra o UUID da partio
7 Filesystem UUID: 7c56c1d8 -7e8c -4b2 -8a46 -a332355faff
8 Filesystem magic number: xEF53
9 Filesystem revision #: 1 (dynamic)
10 Filesystem features: 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 Filesystem flags: signed_directory_hash
12 Default mount options: (none)
13 Filesystem state: clean
Linux ONE Pgina 248
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
14 Errors behavior: Continue
15 Filesystem OS type: Linux
16 Inode count: 18997248
17 Block count: 75981568
18 Reserved block count: 379978
19 Free blocks: 231633
20 Free inodes: 18593199
21 First block:
22 Block size: 496
23 Fragment size: 496
24 Reserved GDT blocks: 15
25 Blocks per group: 32768
26 Fragments per group: 32768
27 Inodes per group: 8192
28 Inode blocks per group: 512
29 Flex block group size: 16
30 Filesystem created: Sun Mar 27 12:24:11 211
31 Last mount time: Thu Jun 3 21:11:7 211
32 Last write time: Sat Jun 18 18:34:53 211
33 # total de montagem da partio:
34 Mount count: 29
35 # limite mximo de montagens antes de checar o arquivo de sistema:
36 Maximum mount count: 36
37 # data da ltima checagem:
38 Last checked: Sat Jun 18 18:34:53 211
39 # intervalo mximo para checagens:
40 Check interval: 15552 (6 months)
41 Next check after: Thu Dec 15 19:34:53 211
42 Lifetime writes: 468 GB
43 Reserved blocks uid: (user root)
44 Reserved blocks gid: (group root)
45 First inode: 11
46 Inode size: 256
47 Required extra isize: 28
48 Desired extra isize: 28
49 Journal inode: 8
50 First orphan inode: 262883
Linux ONE Pgina 249
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
51 Default directory hash: half_md4
52 Directory Hash Seed: 192bfa52 -e1f -4ef3 -ac2f -a1acbd575b5c
53 Journal backup: inode blocks
13.8.1 Rotulando uma partio:
Para colocar uma LABEL em uma partio ext3:
1 # tune2fs -L nome /dev/sda1
Cheque a alterao:
1 # tune2fs -l /dev/sda1
Parties REISERFS:
1 # reiserfstune -l label dispositivo
Parties EXT2/EXT3/EXT4:
1 # e2label dispositivo label
Parties ext4 no CentOS:
1 # e4label dispositivo label
Linux ONE Pgina 250
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
Parties NTFS:
1 # ntfslabel dispositivo label
Parties Fat16/Fat32:
1 # mlabel -i dispositivo :: label
Parties JFS:
1 # jfs_tune -L label dispositivo
Parties XFS:
1 # xfs_admin -L label dispositivo
Parties SWAP:
1 # mkswap -L label dispositivo
13.8.2 Usando os dispositivos de armazenamento
Para termos acesso a um arquivo armazenado em mdia removvel, necessrio
conectar a mdia removvel ao seu leitor correspondente e montar o dispositivo ade-
quado.
Linux ONE Pgina 251
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
O comando usado para montar dispositivos mount. Sem o uso de nenhum pa-
rmetro, ele mostra os dispositivos de armazenamento que esto montados em seu
computador junto com a congurao usada para mont-los.
1 # mount
Para montar um dispositivo de armazenamento em seu ponto de montagem, o co-
mando mount pode ser usado da seguinte forma:
1 # mount -t <tipo > -o <opes > <dispositivo > <ponto -de-montagem >
Para visualizar as opes de montagem:
1 # man mount
Para que seja possvel acessar o contedo de algum dispositivo precisamos de qua-
tro 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.
Linux ONE Pgina 252
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 # blkid /dev/sdb1
Caso no obtenha resposta porque a partio no tem um arquivo de sistema. -
determine o ponto de montagem:
Se no existir um ponto de montagem, basta criar um diretrio vazio no local apro-
priado, em geral no /media ou /mnt e executar o comando para mont-lo.
Vamos criar uma imagem ISO para simular um arquivo de cdrom:
1 # apt -get install genisoimage
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 MS-
DOS no consiga enxergar estes caracteres, j que ele trabalha com um proto-
colo 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;
Linux ONE Pgina 253
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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:
1 # dd if=/dev/zero of=/ arquivo.iso bs =124 count =1
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:
1 # genisoimage -o /arquivo.iso /arquivo
Montando a partio:
1 # mount -o loop -t iso966 /arquivo /media/cdrom
A opo -o loop utilizada quando se quer montar um arquivo ISO que est locali-
zado 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:
1 # mount
Linux ONE Pgina 254
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
OU visualizando o arquivo /etc/mtab que lista os sistemas de arquivos montados
atualmente no sistema. Sua funo idntica ao /proc/mounts:
1 # cat /etc/mtab
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:
1 # cat /proc/mounts
OU por ltimo o comando df visto anteriormente:
1 # df
Desmontando:
Como usurio aluno abra outro terminale acesse o diretrio /media/cdrom:
Linux ONE Pgina 255
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 $ cd /media/cdrom
Agora tente desmontar como root:
1 # umount /media/cdrom
ou de forma equivalente:
1 # umount /arquivo.iso
Verique que no foi possvel, isto porque existe algum acessando o diretrio, para
descobrir quais os processos que esto utilizando o /media/cdrom faa:
1 # fuser <arquivo/direttio >
-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 # fuser -u /media/cdrom
2 /media/cdrom 135e(aluno)
A letra que aparece logo aps o PID representa o tipo de acesso, onde podemos ter,
por exemplo:
Linux ONE Pgina 256
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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).
Verique que o usurio aluno est acessando o diretrio e por isso no possvel
desmontar o volume, aps descobrir, mate o processo:
1 # fuser -k /media/cdrom
Agora tente desmontar o volume:
1 # umount /media/cdrom
Linux ONE Pgina 257
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.9 Migrando de Filesystem ext sem perder dados:
Criar um ponto de montagem:
1 # mkdir /teste
Montar o dispositivo criado anteriormente:
1 # mount -t ext2 /dev/sdb1 /teste
Copiar dados para a partio:
1 # cp -r /etc/* /teste
Desmontar a partio:
1 # umount /teste
Vamos agora converter para ext3, sem perder os dados:
1 # tune2fs -j /dev/sdb1
Montando a partio:
1 # mount /dev/sdb1 /teste
Visualize o tipo de lesystem com o comando mount:
Linux ONE Pgina 258
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 # mount
Visualizar um arquivo para ver que no corrompeu:
1 # cat /teste/fstab
Desmontar dispositivo:
1 # umount /teste
Vamos agora converter de ext3 para ext4, sem perder os dados:
Debian:
1 tune2fs -O extents ,uninit_bg ,dir_index /dev/sdb1
Checar arquivo do sistema:
1 e2fsck -pf /dev/sdb1
CentOS:
1 tune4fs -O extents ,uninit_bg ,dir_index /dev/sdb1
Checar arquivo do sistema:
Linux ONE Pgina 259
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
1 e4fsck -pf /dev/sdb1
Monte o sistema de arquivo:
1 # mount /dev/sdb1 /teste
Verique o tipo de sistema de arquivos:
1 # mount
Verique se a partio foi montada:
1 # mount
2 # df -h
3 # cat /etc/mtab
4 # cat /proc/mounts
Visualizar um arquivo para ver que no corrompeu:
1 # cat /teste/fstab
Desmontar dispositivo:
1 # umount /teste
Linux ONE Pgina 260
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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
Linux ONE Pgina 261
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.10 SWAP
Este tipo de partio utilizado para fornecer suporte a memria virtual ao GNU/Li-
nux em adio a memria RAM instalada no sistema. Este tipo de partio identi-
cado pelo tipo 82 nos programas de particionamento de disco para Linux. Somente
os dados na memria RAM so processados pelo processador, por ser mais rpida.
Desta maneira quando voc estiver executando um programa e a memria RAM
comear a encher, o GNU/Linux mover automaticamente os dados que no esto
sendo utilizados para a partio Swap e libera a memria RAM para continuar car-
regando 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:
1 # mkswap /dev/sdb2
Ative essa nova partio de swap:
1 # swapon /dev/sdb2
Para visualizar as parties swaps ativas:
1 # cat /proc/swaps
ou
1 # swapon -s
Linux ONE Pgina 262
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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:
1 # swapoff /dev/sdb2
Para visualizar as parties swaps ativas:
1 # cat /proc/swaps
Ou:
1 # swapon -s
D um nome para a partio:
1 # mkswap -L SWAP /dev/sdb2
Linux ONE Pgina 263
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.11 Montagem automtica de Filesystem no boot
Na seo mount voc aprendeu a montar um dispositivo de forma completa e ma-
nual, entretanto, h um arquivo que facilita a nossa vida: /etc/fstab. Nele devem
estar as informaes a respeito da montagem de todos os lesystems do sistema,
veja um exemplo a seguir:
1 <file system > <mount point ><type > <options > <dump > <pass >
2 proc /proc proc defaults
3 /dev/sda1 /boot ext3 defaults 1
4 /dev/sda2 / ext3 defaults ,errors=remount -ro 2
5 /dev/sda5 /usr ext3 defaults 2
6 /dev/sda6 /var ext3 defaults 2
7 /dev/sda7 /tmp ext3 defaults 2
8 /dev/sda8 /home ext3 defaults
9 # exemplo UUID:
10 UUID=be35a79 -c787 -4198 -a93 -d5fdc8ab2f8 /teste defaults 2
11 # exemplo LABEL:
12 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;
Linux ONE Pgina 264
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
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 funcio-
nalidade, 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 aces-
sados, 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
dispositivos esto montados e com quais parmetros.
13.11.1 Mostrar o uso de memria RAM: free
O comando free mostra o consumo de memria RAM e os detalhes sobre uso de
memria virtual (SWAP):
1 # free
Mais detalhes:
1 # free -m
A sada do comando ser alguma coisa parecida com:
1 total used free shared buffers cached
Linux ONE Pgina 265
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
2 Mem: 266856 95944 1115912 3892 342612
3 -/+ buffers/cache: 569412 1497444
4 Swap: 57268 57268
Voc pode olhar os arquivos do /proc tambm: Informaes de memria:
1 # less /proc/meminfo
Informaes de swap:
1 # less /proc/swap
Linux ONE Pgina 266
Linux Force www.linuxforce.com.br Manipulando Hardware e Dispositivos
13.12 LAB10
1- A partio swap no est sendo montada automaticamente na inicializao, crie
um LABEL para ela.
2- Coloque-a para ser montada toda vez que mquina for inicializada.
3- Monte a partio swap agora.
Linux ONE Pgina 267
Captulo 14
Instalando, removendo e atualizando
programas
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.1 O que um pacote?
Os diversos programas para GNU/Linux so distribudos em forma de pacotes espe-
ccos para cada distribuio. Neste captulo aprenderemos um pouco sobre esses
pacotes e como instal-los e remov-los do sistema.
Pacotes so conjuntos de binrios pr-compilados, bibliotecas, arquivos de controle e
arquivos de congurao, que so instalados facilmente no sistema operacional. Eles
podem, eventualmente, conter sistemas de listagem/checagem de dependncias e
scripts para conguraes ps instalao.
Os pacotes nos sistemas baseados em Debian tm uma extenso caracte-
rstica: .deb.
J nas distribuies baseadas em RedHat, temos pacotes com a extenso
caracterstica: .rpm.
Linux ONE Pgina 269
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.2 Mas o que um gerenciador de pacotes?
Um gerenciador de pacotes um sistema para a instalao, atualizao e remoo
de programas em uma distribuio GNU/Linux. Parece muito simples falar em insta-
lao de pacotes, mas temos que lembrar que o gerenciador de pacotes quem faz
toda a parte suja para ns.
Um pacote nem sempre depende apenas dele mesmo, ou seja, quando instalamos
um programa, ele pode depender de bibliotecas de udio, vdeo, imagens, funes e
vrios outros programas que precisam estar instalados antes do pacote. esse elo
entre programas que chamamos de dependncias.
O trabalho feito pelo gerenciador de pacotes interpretar a necessidade de cada um
dos pacotes, para que eles possam ser instalados e/ou removidos. Para os sistemas
baseados em Debian, a ferramenta a ser utilizada o aptitude ou apt-get.
J para sistemas baseados em RedHat temos uma ferramenta anloga chamada
yum.
Linux ONE Pgina 270
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.3 Gerenciando pacotes no Debian:
Para gerenciarmos os pacotes no Debian, primeiramente devemos selecionar os re-
positrios para isso editaremos o arquivo /etc/apt/sources.list.
Oarquivo /etc/apt/sources.list contmos locais onde o APT encontrar os paco-
tes, a verso da distribuio que ser vericada (stable, testing, unstable) e a seo
que ser copiada (main, non-free, contrib, non-US). Essas denies so usadas em
um GNU/Linux Debian.
Segue um exemplo de arquivo de congurao:
1 # vim /etc/apt/sources.list
2 #mirros de segurana
3 deb http :// security.debian.org/ squeeze/updates main contrib
4 deb -src http :// security.debian.org/ squeeze/updates main contrib
5 #mirros oficiais
6 deb ftp:// ftp.br.debian.org/debian/ squeeze main contrib non -free
7 deb http :// linorg.usp.br/debian/ squeeze main contrib non -free
8 #mirror multimidia
9 deb http :// debian -multimedia.org/ squeeze main
Linux ONE Pgina 271
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.4 Instalao, Remoo e Atualizao
Aps fazer as conguraes da lista de repositrios ser necessrio fazer a atualiza-
o da lista:
1 # aptitude update
ou
1 # apt -get update
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.
1 # aptitude install debian -keyring
ou
1 # apt -get install debian -keyring
Atualize novamente o repositrio:
1 # aptitude update
ou
Linux ONE Pgina 272
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
1 # apt -get update
Vamos primeiramente utilizar a ferramenta aptitude em seu modo visual, e logo aps
em seu modo texto, para instalar, remover e procurar pacotes.
1 # aptitude
Para procurarmos por um pacote que desejamos instalar, podemos fazer uma busca
pelo comando abaixo:
1 # aptitude search <argumento >
ou
1 # apt -cache search <argumento >
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
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:
Linux ONE Pgina 273
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
1 # apt -cache search "display manager"
Se zer a busca com o aptitude, talvez voc no encontre o pacote que procura.
1 # aptitude search "display manager"
J no caso de saber o nome do programa que voc busca, voc pode utilizar direta-
mente o aptitude, por exemplo o programa ORCA para decientes visuais:
1 # aptitude search orca
O apt-cache traz mais opes, pois busca no nome do programa e no resumo do que
faz o mesmo.
1 # apt -cache search orca
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.
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, quere-
mos instalar o pacote kdm, um gerenciador de displays. Aps comunicarmos que
queremos instalar esse pacote, o nosso gerenciador de pacotes vericar suas de-
pendncias, recomendaes, conitos e/ou apenas sugestes de tarefas, que devem
ser satisfeitas.
A visualizao de todas essas informaes pode ser feita executando o comando:
Linux ONE Pgina 274
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
1 # aptitude show <pacote >
ou
1 # apt -cache show <pacote >
Vamos conhecer um pouco mais sobre o KDM e sobre o ORCA:
1 # aptitude show kdm
1 # apt -cache show orca
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:
1 # apt -get install samba
ou
1 # aptitude install samba
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.
Linux ONE Pgina 275
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
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 sis-
tema.
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:
1 # aptitude remove samba
ou
1 # apt -get remove samba
Repare que aps a remoo, os arquivos de congurao do samba, ainda conti-
nuam existindo no sistema:
1 # ls /etc/samba
Instale novamente o samba:
1 # apt -get install samba
Linux ONE Pgina 276
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
ou
1 # aptitude install samba
Agora iremos remover o samba e suas dependncias, assim como seus arquivos de
congurao:
1 # aptitude purge samba
Ou:
1 # apt -get autoremove --purge samba
Linux ONE Pgina 277
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.5 Removendo pacotes que no sero mais usados
Quando voc instala um pacote o apt busca das fontes listadas em "/etc/apt/sour-
ces.list" os arquivos necessrios e os guarda em um repositrio local "/var/ca-
che/apt/archives/", e ento faz a instalao Em algum tempo o repositrio local
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 "apt-
get clean" remove tudo exceto os arquivos de lock dos diretrios "/var/cache/apt/ar-
chives/" e "/var/cache/apt/archives/partial/". Assim, se voc precisar reinstalar um
pacote o apt ir busc-lo novamente.
1 # apt -get clean
Linux ONE Pgina 278
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.6 Atualizar pacotes instalados:
Para atualizar os pacotes j instalados, para a ltima verso que est no reposit-
rio:
1 # aptitude upgrade
ou
1 # apt -get upgrade
Linux ONE Pgina 279
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.7 Atualizao da distro
O sistema pode ser atualizado de tempos em tempos ou por questes de segurana.
Para instalar todas as atualizaes disponveis, usa-se o aptitude com a instruo
safe-upgrade. Dependendo da velocidade de conexo, este processo pode levar
bastante tempo.
1 # aptitude safe -upgrade
Linux ONE Pgina 280
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
14.8 Gerenciamento de pacotes em distros baseadas
em rpm.
Nas distros baseadas em RedHat, o gerenciamento de pacotes feito pelo
programa rpm. A RedHat e Fedora disponibilizam tambm a ferramenta yum, si-
milar em funcionalidade ao aptitude. J o SUSE apresenta a ferramenta zypper,
muito embora nesta distro recomenda-se a utilizao da ferramenta Yast para ge-
renciamento 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 desenvol-
vido 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 soluci-
onar conitos automaticamente e pode ser tambm usado para atualizar o sistema.
Essencialmente, o yum e o apt-get/aptitude solucionaram o antigo problema das de-
pendncias (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 auto-
maticamente 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:
Linux ONE Pgina 281
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
1 # vim /etc/yum.repos.d/dag.repo
2 [dag]
3 name=Dag RPM Repository for Red Hat Enterprise Linux
4 baseurl=http :// apt.sw.be/redhat/el$releasever/en/$basearch/dag
5 gpgcheck =1
6 gpgkey=http :// dag.wieers.com/rpm/packages/RPM -GPG -KEY.dag.txt
7 enabled =1
Procurando um programa:
1 # yum search <pacote >
Para buscar pelo software samba, digite:
1 # yum list samba
ou
1 # yum search samba
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 ONE Pgina 282
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
1 # yum info <pacote >
Para obter informaes sobre o pacote do samba:
1 # yum info samba
14.8.1 Instalando pacotes:
Para instalar um pacote diretamente do repositrio:
1 # yum install <pacote >
Para instalar o samba:
1 # yum install samba
14.8.2 Removendo pacotes:
Para remover um pacote do sistema:
1 # yum remove <pacote >
ou:
Linux ONE Pgina 283
Linux Force www.linuxforce.com.br Instalando, removendo e atualizando programas
1 # yum erase <pacote >
Remova o samba:
1 # yum remove samba
ou
1 # yum erase samba
Verique que o diretrio do samba, continua existindo no sistema:
1 # 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.
14.8.3 Atualizando pacotes
Para atualizar os pacotes instalados, digite:
1 # yum update
Linux ONE Pgina 284
Captulo 15
Compilando Programas
Linux Force www.linuxforce.com.br Compilando Programas
15.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 te-
nhamos 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 ne-
cessitamos 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 deseja-
mos.
Linux ONE Pgina 286
Linux Force www.linuxforce.com.br Compilando Programas
15.2 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 cer-
tos 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 ou-
tras.
Linux ONE Pgina 287
Linux Force www.linuxforce.com.br Compilando Programas
15.3 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 espec-
ca. 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 de-
senvolvedor ache relevante. Por isso devemos sempre ler a documentao do pro-
grama.
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:
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 aces-
sando a pgina do desenvolvedor do programa. Neste captulo vamos realizar a com-
pilao 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 consul-
tar o arquivo INSTALL ou o README que est sempre presente junto com o cdigo
fonte.
Vamos instalar os pacotes necessrios:
1 # aptitude install make gcc g++ bzip2 gzip unzip
Descomprima e desempacote o cdigo fonte do nmap no diretrio apropriado
Linux ONE Pgina 288
Linux Force www.linuxforce.com.br Compilando Programas
entre nele:
1 # wget http :// nmap.org/dist/nmap -5.51. tar.bz2
2 # tar xvjf nmap -5.51. tar.bz2 -C /usr/local
3 # cd /usr/local/nmap -versao
Qual o primeiro passo para compilar um programa?? Ler os arquivos RE-
ADME e INSTALL:
1 # vim README
2 # vim INSTALL
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
fazer uma verso comprimida de um arquivo tar como gzip. Para a prova voc deve
dominar o TAR e o GZIP, que estudamos no Linux One, 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:
1 # ./ configure --help
Como no estamos interessados na interface grca do nmap, podemos infor-
mar ao congure que no queremos que o nmap a utilize:
1 # ./ configure --without -zenmap
Linux ONE Pgina 289
Linux Force www.linuxforce.com.br Compilando Programas
Dica LPI: muito comum, quando compilamos um programa a partir de seu c-
digo 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 compila-
o, mas antes vamos conhecer o arquivo Makele criado pelo congure:
1 # vim Makefile
Agora sim vamos compilar o programa:
1 # make
Se no der nenhum erro de compilao, podemos prosseguir com a instala-
o:
1 # make install
Se tudo ocorreu bem, j possvel utilizar o novo aplicativo:
1 # nmap 192.168.2.254
Aps compilarmos o programa, podemos remover os arquivos binrios e de
objetos que foram criados durante a compilao:
Linux ONE Pgina 290
Linux Force www.linuxforce.com.br Compilando Programas
1 # make clean
Para desinstalar:
1 # make uninstall
Linux ONE Pgina 291
Linux Force www.linuxforce.com.br Compilando Programas
15.4 LAB11
1 - Executar script.
2 - Faa o download do pacote iptraf no servidor:
1 # wget ftp :// iptraf.seul.org/pub/iptraf/iptraf -3... bin.i386.tar.gz
3 - Descompacte-o:
1 # tar zxvf iptraf -3... bin.i386.tar.gz
4 - Acesse seu diretrio e descubra como instal-lo:
1 # cd iptraf -3... bin.i386
Linux ONE Pgina 292
Captulo 16
Bibliotecas
Linux Force www.linuxforce.com.br Bibliotecas
16.1 Introduo Terica
Hoje em dia muito simples instalar um programa j compilado, com a ajuda de ge-
renciadores 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).
Linux ONE Pgina 294
Linux Force www.linuxforce.com.br Bibliotecas
16.2 Tipos fundamentais de programas executveis
Em sistemas Linux existem dois tipos fundamentais de programas executveis. O
primeiro chamado de esttico. Esse tipo de programa contm todas as funes que
ele precisa para ser executado, em outras palavras, completo. Devido a isso, os
executveis estticos no dependem de nenhuma biblioteca externa para funcionar.
O segundo tipo o executvel dinmico. Mas como descobrir se um executvel
dinmico ou esttico? Para isso, podemos usar o comando ldd, que produz uma lista
de dependncias.
Identicando as bibliotecas compartilhadas:
1 # ldd <caminho_do_executvel >
Obs: Deve ser colocado o caminho completo do executvel, no somente o nome do
comando.
Para facilitar em vez de digitar o caminho completo:
1 # ldd $(which ls)
Exemplo de executvel esttico:
1 # aptitude install module -assistant
2 # ldd /usr/bin/module -assistant
3 not a dynamic executable
Exemplo de executvel compartilhado:
1 # ldd /bin/ln
Linux ONE Pgina 295
Linux Force www.linuxforce.com.br Bibliotecas
2 linux -gate.so.1 => ( xffffe)
3 libc.so.6 => /lib/tls/libc.so.6 ( xb7ded)
4 /lib/ld-linux.so.2 ( xb7f29)
Vericando tamanhos:
1 # du -h /usr/bin/module -assistant /bin/ln
2 64K /usr/bin/module -assistant
3 4K /bin/ln
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.
Linux ONE Pgina 296
Linux Force www.linuxforce.com.br Bibliotecas
16.3 Modo Esttico e Compartilhado
O modo esttico ligeiramente mais rpido, pois no precisa buscar bibliotecas em
diretrios, mas consome mais espao (dado que cada programa teria uma cpia da
biblioteca dentro de si).
O modo compartilhado ligeiramente mais lento, pois precisa sempre abrir o arquivo
da biblioteca, mas ocupa menos espao (dado que s se tem uma cpia da biblio-
teca) e facilita, centralizando a manuteno (se voc precisar mudar a verso de uma
biblioteca, no tem de recompilar o programa, basta trocar o arquivo da biblioteca).
O padro usar bibliotecas compartilhadas, e geralmente a deciso mais s-
bia, mas precisa que todas as bibliotecas necessrias estejam presentes no sistema
para executar.
No Linux, bibliotecas estticas tm nomes como libname.a, enquanto bibliotecas
compartilhadas so chamadas libname.so.x.y.z onde x.y.z alguma forma de n-
mero de verso.
A ltima fase do desenvolvimento de um software a biblioteca, ou seja, reunir
todas as partes fundamentais para haver execuo. Existem tarefas que a maioria
dos softwares iram querer realizar como abrir arquivos, por exemplo, e esse tipo
de tarefa realizada atravs de bibliotecas. No Linux, as bibliotecas podem ser
encontradas em /lib e /usr/lib/ ou em outros diretrios.
Um exemplo real a linguagem C, que rica em poder de expresso, mas rela-
tivamente pobre em funcionalidades. Para construir aplicaes que fazem uso de
funcionalidades especcas, como interfaces grcas, comunicao via rede, frmu-
las matemticas complexas, etc, devem ser usadas bibliotecas.
As bibliotecas mais comuns, utilizadas por todas as aplicaes e utilitrios do sis-
tema, so:
libc: na verdade um grande "pacote"de bibliotecas que prov funcionalidades bsi-
cas de entrada/sada, de acesso a servios do sistema, rede, etc.
Linux ONE Pgina 297
Linux Force www.linuxforce.com.br Bibliotecas
ld-linux: prov as funes necessrias para a carga de bibliotecas dinmicas, du-
rante 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 emquais diretrios elas costumamestar,
quais bibliotecas determinado binrio utiliza e saber adicionar novas bibliotecas no
sistema.
Linux ONE Pgina 298
Linux Force www.linuxforce.com.br Bibliotecas
16.4 Listando Bibliotecas disponveis
Para listar todas as bibliotecas disponveis e a localizao de cada uma, utilize o
comando:
1 # ldconfig -p
Esse comando mostrar uma lista gigante das bibliotecas.
Linux ONE Pgina 299
Linux Force www.linuxforce.com.br Bibliotecas
16.5 Localizao das bibliotecas?
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
Linux ONE Pgina 300
Linux Force www.linuxforce.com.br Bibliotecas
16.6 Adicionando novas bibliotecas ao sistema
Caso voc tenha desenvolvido ou baixado alguma biblioteca nova e criou umdiretrio
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:
1 # export
LD_LIBRARY_PATH =/ caminho/para/bibliotecas1 :/ caminho/para/bibliotecas2
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 dire-
trios 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:
1 # mkdir /bibliotecas
Testando o comando ls:
1 # ls /etc
Linux ONE Pgina 301
Linux Force www.linuxforce.com.br Bibliotecas
Listando as bibliotecas utilizadas pelo comando ls:
1 # ldd /bin/ls
2 linux -gate.so.1 => ( xb7816)
3 libselinux.so.1 => /lib/libselinux.so.1 ( xb77e1)
4 librt.so.1 => /lib/i686/cmov/librt.so.1 ( xb77d8)
5 libacl.so.1 => /lib/libacl.so.1 ( xb77d)
6 libc.so.6 => /lib/i686/cmov/libc.so.6 ( xb768a)
7 libdl.so.2 => /lib/i686/cmov/libdl.so.2 ( xb7686)
8 /lib/ld -linux.so.2 ( xb7817)
9 libpthread.so. => /lib/i686/cmov/libpthread.so. ( xb766d)
10 libattr.so.1 => /lib/libattr.so.1 ( xb7668)
Uma das bibliotecas compartilhadas utilizada pelo comando ls a /lib/librt.so.1,
repare que ele apenas um link para a biblioteca original:
1 # ls -l ls -l /lib/librt.so.1
2 lrwxrwxrwx 1 root root 15 Set 16 17:14 /lib/librt.so.1 ->
librt -2.11.2. so
Mova esta biblioteca para /bibliotecas
1 # mv /lib/librt.so.1 /bibliotecas
Tente fazer o ls novamente:
1 ls /etc
ping: error while loading shared libraries: librt.so.1 cannot open shared object le: No
such le or directory
Linux ONE Pgina 302
Linux Force www.linuxforce.com.br Bibliotecas
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:
1 # ldd /bin/ls
Voc j imaginou car sem a librt.so.1? Sem essa lib, muitos recursos de movimen-
tao 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 umarquivo em/etc/ld.so.conf.d
com a extenso .conf:
1 # vim /etc/ld.so.conf.d/bibliotecas.conf
2
3 /bibliotecas
Atualize a lista de diretrios de bibliotecas com o comando:
1 # ldconfig
Verique se seu diretrio foi adicionado a lista:
1 # ldconfig -p | grep bibliotecas
Tente executar o ls:
Linux ONE Pgina 303
Linux Force www.linuxforce.com.br Bibliotecas
1 # ls /etc
Agora foi possvel, porque a biblioteca pde ser encontrada, verique:
1 # ldd /bin/ls
Dica LPI: Se apagarmos o arquivo /etc/ld.so.cache, s executar o comando:
ldcong
Linux ONE Pgina 304
Linux Force www.linuxforce.com.br Bibliotecas
16.7 lab12
1- O servidor Web parou de funcionar devido a uma biblioteca que no foi carregada,
descubra onde esta biblioteca est.
2- Adicione o diretrio onde est a biblioteca lista de bibliotecas do sistema.
3- Reinicie o servidor Web: /etc/init.d/httpd restart
Linux ONE Pgina 305
Captulo 17
Instalao de Programas com DPKG
e RPM
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
17.1 Pacotes Debian - DPKG
ODPKG umprograma que a base do Sistema de Gerenciamento de Pacotes para
distribuies GNU/Linux baseadas em Debian. Criado por Ian Jackson em 1993,
o DPKG usado para instalar, remover e fornecer informaes sobre os pacotes
.deb.
O DPKG uma ferramenta em linguagem de baixo nvel. Front ends de alto nvel
so exigidos para buscar pacotes em lugares remotos ou ajudar no solucionamento
de conitos nas dependncias dos pacotes. Para esta nalidade, o Debian fornece o
aptitude e o apt-get.
Estrutura de um repositrio Debian:
1 pool
2 \_ stable
3 \_ main
4 \_ a
5 \_ alien
6 \_ alien -<versao >.deb
7 \_ a2ps
8 \_ ...
9 \_ b
10 \_ ...
11 \_ z
12 \_ liba
13 \_ libb
14 \_ ...
15 \_ libz
16 \_ testing
17 \_ unstable
18 \_ contrib
Linux ONE Pgina 307
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
Dica LPI: No se engane !!! Na LPI cobrado DPKG e RPM.
Linux ONE Pgina 308
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
17.2 Pacotes RPM
O RPM RedHat Package Manager - um sistema de gerenciamento de pacotes para
sistemas GNU/Linux baseados em RedHat. Ele instala, atualiza, desinstala e verica
softwares. Originalmente desenvolvido pela RedHat Linux, agora usado por muitas
distribuies como Novell - Suse que possui sua prpria verso de RPM.
17.2.1 Base de dados RPM
Atrs do gerenciador de pacotes est o banco de dados RPM. Ele consiste de uma
lista duplamente ligada que contm todas as informaes de todos os RPM insta-
lados. O banco de dados lista todos os arquivos que so criados ou modicados
quando um usurio instala um programa e facilita a remoo destes mesmos arqui-
vos. 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 emRPMque pode ser encontrada em: http://www.rpm.org/RPM-HOWTO/.
Linux ONE Pgina 309
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
17.3 Prtica Dirigida
DPKG
1 # dpkg --help
Acesse o site a seguir e faa o download do ash player:
http://packages.debian.org/squeeze/ashplugin-nonfree
Veja as informaes do pacote do ash:
1 # dpkg -I flashplugin -nonfree_2 .8.2 _i386.deb
Verique se ele est instalado no sistema:
1 # dpkg -l <programa >
Ou:
1 # dpkg -l | grep <programa >
No caso:
1 # dpkg -l | grep flashplayer
Linux ONE Pgina 310
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
Verique quais programas esto instalados no sistema:
1 # dpkg -l | less
Para determinar qual pacote foi o responsvel por instalar um binrio no sistema,
digite:
1 # dpkg -S $(which <caminho_completo_para_o_binrio >)
EX: Qual o pacote responsvel por instalar o comando ping?
1 # dpkg -S $(which ping)
Verique o status de um pacote instalado:
1 # dpkg -s coreutils
Instale o programa ashplayer.
1 # dpkg -i flashplugin -nonfree_2 .8.2 _i386.deb
Verique que o ashplayer foi instalado:
1 # dpkg -l flashplugin -nonfree_2 .8.2 _i386.deb
Determine onde esto instalados todos os arquivos do aplicativo ashplayer:
Linux ONE Pgina 311
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
1 # dpkg -L flashplugin -nonfree | less
Determine onde sero instalados todos os arquivos do programa ashplayer:
1 # dpkg -c flashplugin -nonfree_2 .8.2 _i386.deb | less
Remova o programa ashplayer:
1 # dpkg -r flashplugin -nonfree
Verique que foi removido:
1 # dpkg -l flashplugin -nonfree
Verique se seus respectivos arquivos tambm foram removidos:
1 # updatedb ; locate flashplugin
Apague seus arquivos de congurao:
1 # 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:
Linux ONE Pgina 312
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
1 # dpkg -i google -chrome -stable_current_i386.deb
O aplicativo no pode ser instalado porque existem pr-requisitos para sua instala-
o, para resolver estas dependncias automaticamente, digite:
1 # aptitude -f install
Ou:
1 # apt -get -f install
17.3.1 Convertendo extenses de arquivos
Instalar o nosso conversor de pacotes:
1 # aptitude install alien
Veja se o pacote est instalado:
1 # dpkg -l alien
Iniciando nossos testes, precisamos de um arquivo.deb:
1 # cd /var/cache/apt/archives
2 # ls -lh
3 # aptitude clean
Linux ONE Pgina 313
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
Faa o download dos pacotes necessrios, para os testes:
1 # aptitude -d install sl ccze ; ls -lh
2 # cp sl-<versao >.deb /opt
3 # cp ccze -<versao >.deb /opt
Entre no diretrio /opt, para iniciarmos os teste com o alien:
1 # cd /opt ; ls -lh
Convertendo para pacote .RPM:
1 # alien -r sl -<versao >.deb
2 # alien -r ccze -<versao >.deb
Convertendo para pacote .TGZ:
1 # alien -t sl -<versao >.deb
2 # alien -t ccze -<versao >.deb
Veja todos os arquivos criados:
1 # file sl*
2 # file ccze*
Vamos agora copiar o arquivo .rpm para a mquina Dexter para poder instalar o
pacote.
1 #scp -P 2222 ccze*.rpm aluno@IP_SERVIDOR_DEXTER :/opt
Linux ONE Pgina 314
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
17.3.2 Gerenciando Pacotes em Formato RPM
Red Hat: Em sistemas baseados em RedHat utilizamos o gerenciador de pa-
cotes RPM.
Na mquina Dexter, verique o que ser instalado com o pacote ccze:
1 # cd /opt
2 # rpm -qp ccze --<versao >.rpm
Veja as informaes do pacote, no instalado:
1 # rpm -qpi ccze --<versao >.rpm
Verique quais arquivos sero instalados com o pacote:
1 # rpm -qlp ccze --<versao >.rpm
2 # rpm -ih --test --percent ccze --<versao >.rpm
As opes -h e percent servem para mostrar uma barra de progressos e a porcen-
tagem de concluso.
Instale o programa:
1 # rpm -ih --percent ccze --<versao >.rpm
Verique os arquivos instalados:
Linux ONE Pgina 315
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
1 # rpm -qa ccze
Verique quais arquivos foram instalados atravs do pacote:
1 # rpm -ql ccze
Verique o que ser efetuado ao removermos o pacote ccze:
1 # rpm -e --test ccze
Agora remova o ccze:
1 # rpm -e ccze
Obs.: se o pacote tiver dependncias e voc quiser remov-lo assim mesmo,
utilize o parmetro nodeps.
Veja que o pacote ccze, foi removido:
1 # rpm -qa
2 # rpm -q ccze
Para realizar uma atualizao de verso de algum programa podemos utilizar o co-
mando:
Linux ONE Pgina 316
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
1 # rpm -Uh pacote -<versao >;. rpm
Obs.: os parmetros test e nodeps, opcionais, podem ser utilizados tam-
bm.
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:
1 # rpm -Va
Vamos instalar o ccze novamente:
1 # rpm -ih --percent ccze --<versao >.rpm
Troque a permisso do binrio ccze e verique:
1 # chmod 777 /usr/bin/ccze
Execute o comando:
1 tail -f /var/log/syslog | ccze
Linux ONE Pgina 317
Linux Force www.linuxforce.com.br Instalao de Programas com DPKG e RPM
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.
Verique novamente a integridade de todos os pacotes instalados no sistema:
1 # rpm -Va
Algumas siglas da checagem:
S le Size differs M Mode differs (includes permissions and le type) 5 MD5 sum
differs 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
Linux ONE Pgina 318
Captulo 18
Gerenciamento de Processos
Linux Force www.linuxforce.com.br Gerenciamento de Processos
18.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 re-
cursos que ele ir disponibilizar para essa atividade. Como haver sempre diversos
processos rodando simultaneamente na mquina o kernel tem uma lista de proces-
sos que necessitam de recursos. Como no existe atualmente um sistema realmente
multitarefa, capaz de realizar diversas atividades realmente ao mesmo tempo, o ker-
nel 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 dis-
tribuio 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:
1 # ps
Um simples ps no nos traz muita informao, ele possui dezenas de parmetros,
ento aqui esto os mais importantes: Para podermos ver com mais detalhes os
processos temos a combinao dos seguintes parametros
1 # ps aux
Onde os parmetros so:
a - mostra todos os processos existentes no associados com um terminal; u - exibe
Linux ONE Pgina 320
Linux Force www.linuxforce.com.br Gerenciamento de Processos
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 USER - nome do usurio dono do processo;
2
3 UID - nmero de identificao do usurio dono do processo;
4
5 PID - nmero de identificao do processo;
6
7 PPID - nmero de identificao do processo pai;
8
9 \%CPU - porcentagem do processamento usado;
10
11 \%MEM - porcentagem da memria usada;
12
13 VSZ - indica o tamanho virtual do processo;
14
15 RSS - Resident Set Size , indica a quantidade de memria
usada (em KB);
16
17 TTY - indica o identificador do terminal do processo;
18
19 START - hora em que o processo foi iniciado;
20
21 COMMAND - nome do comando que executa aquele processo;
22
23 PRI - valor da prioridade do processo;
24
25 NI - valor preciso da prioridade (geralmente igual aos
valores de PRI);
26
27 WCHAN - mostra a funo do kernel onde o processo se encontra
em modo suspenso;
28
Linux ONE Pgina 321
Linux Force www.linuxforce.com.br Gerenciamento de Processos
29 STAT - indica o estado atual do processo , sendo representado
por uma letra:
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;
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.
Linux ONE Pgina 322
Linux Force www.linuxforce.com.br Gerenciamento de Processos
Tambm temos alguns programas que nos mostram os processos em execuo:
1 # top
Como 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 Top - 1:19:9 up 1:11, 2 users , load average: .2, .7, .6
2 Tasks: 24 total , 2 running , 22 sleeping , stopped , zombie
3 Cpu(s): 7.1%us , .9%sy , .2%ni, 91.7%id , .%wa , .%hi , .%si ,
.%st
4 Mem: 353556k total , 197272k used , 1558484k free , 232288k buffers
5 Swap: 18134k total , k used , 18134k free , 99248k cache
Onde os campos em CPU(s) so:
us = tempo de processamento, executado pelo usurio sy = tempo de processa-
mento, 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 up-
time:
1 # uptime
2 16:23: up 2:14, 3 users , load average: .45, .69, .74
Onde apresentado: 16:23:00 - hora atual up 2:14 - tempo que o sistema est ligado
3 users - nmero de usurios logados
Linux ONE Pgina 323
Linux Force www.linuxforce.com.br Gerenciamento de Processos
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 amig-
vel:
1 # aptitude install htop
2 # htop
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:
1 # pstree
Um modo fcil de achar o PID de um processo :
1 # pgrep cron
ou
1 # pidof cron
Linux ONE Pgina 324
Linux Force www.linuxforce.com.br Gerenciamento de Processos
18.2 E como fazemos para gerenciar os processos?
Apesar do kernel gerenciar os processos, ns podemos enviar sinais a esses proces-
sos requisitando que eles alterem seu comportamento. Para isso utilizamos o alguns
comandos para enviar um sinal de controle a um determinado processo.
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:
1 # man signal
Passando esses sinais aos processos podemos realizar tarefas desde, reiniciar o
processo at encerr-lo de forma forada. Para gerenciarmos processos temos al-
guns comandos: pkill:
1 # pkill -<signal > <programa >
Linux ONE Pgina 325
Linux Force www.linuxforce.com.br Gerenciamento de Processos
Caso no seja passado nenhum sinal usado o sinal 15 como padro:
1 # pkill cron
killall:
1 # killall -s <signal > <programa >
Caso no seja passado nenhum sinal usado o sinal 15 como padro:
1 # killall cron
Os programas pkill e killall gerenciam os processos pelo nome do programa, mas
tambm podemos gerenciar os processos pelo seu PID.
1 # kill -<signal > <pid >
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 # pgrep ekiga
2 1267
Agora mate o processo:
1 # kill -9 1267
Linux ONE Pgina 326
Linux Force www.linuxforce.com.br Gerenciamento de Processos
Veja que a janela do aplicativo, fechada aps a execuo do kill.
Ainda na parte grca, abra dois terminais e digite em um deles:
1 # 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:
1 # kill -19 $(pgrep ekiga)
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:
1 # kill -18 $(pgrep ekiga)
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 # jobs
2 [1]+ Executando ekiga &
Linux ONE Pgina 327
Linux Force www.linuxforce.com.br Gerenciamento de Processos
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:
1 # kill -<signal > %<njob >
Vamos terminar o processo:
1 # kill %1
Verique que o processo foi terminado, lembrando que quando no passamos o sinal
utilizado o sinal 15 como padro:
1 # 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:
1 # 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:
Linux ONE Pgina 328
Linux Force www.linuxforce.com.br Gerenciamento de Processos
1 # jobs
2 [1]+ Executando ekiga &
Agora pause o processo:
1 # kill -19 %1
Se quisermos rodar novamente o programa ekiga, mas em foreground ou seja pri-
meiro plano, isso mesmo, aquele que trava o terminal para sua execuo, faa:
1 # fg <n job >
Ou seja:
1 # 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.
1 crtl+z
Verique que o processo foi pausado:
1 # jobs
2 [1]+ Parado ekiga
Linux ONE Pgina 329
Linux Force www.linuxforce.com.br Gerenciamento de Processos
Se voc quiser continuar executando-o s que em background, utilize o comando
bg:
1 # bg <n job >
Ou seja:
1 # bg 1
Verique que o ekiga est rodando em background:
1 # jobs
2 [1]+ Executando ekiga &
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 co-
mando nohup:
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.
Linux ONE Pgina 330
Linux Force www.linuxforce.com.br Gerenciamento de Processos
Vamos executar um ping com o nohup e ver que ele continua sua execuo mesmo
aps fecharmos o terminal:
1 # nohup ping -c 1 treinamentolinux.com &
Enviamos 1000 pings ao site treinamentolinux.com.
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.
1 # cat nohup.out
Execute novamente e verique que o ping continua, pois o comando ainda no ter-
minou de ser executado (1000 pings ao site treinamentolinux.com):
1 # cat nohup.out
lsof
O comando lsof um dos mais importantes comandos para quem administra sis-
temas 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:
Linux ONE Pgina 331
Linux Force www.linuxforce.com.br Gerenciamento de Processos
1 # lsof -n
2 COMMAND PID USER FD TYPE DEVICE
SIZE/OFF NODE NAME
3 init 1 root cwd DIR 8,1
496 2 /
4 init 1 root rtd DIR 8,1
496 2 /
5 init 1 root txt REG 8,1
1298 6946871 /sbin/init
6 init 1 root mem REG 8,1
51712 11665519 /lib/libnss_files -2.11.1. so
7 init 1 root mem REG 8,1
43552 11665529 /lib/libnss_nis -2.11.1. so
8 init 1 root mem REG 8,1
97256 11665513 /lib/libnsl -2.11.1. so
9 init 1 root mem REG 8,1
35712 11665515 /lib/libnss_compat -2.11.1. so
10 init 1 root mem REG 8,1
1572232 11665453 /lib/libc -2.11.1. so
11 init 1 root mem REG 8,1
31744 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 conec-
tado em algum lugar suspeito. Por exemplo, vrios scripts de invaso cam
escondidos no sistema (com nomes de outros processos), conectados a ser-
vidores de IRC desconhecidos. Com o lsof, d pra saber que estes comando
Linux ONE Pgina 332
Linux Force www.linuxforce.com.br Gerenciamento de Processos
esto fazendo algo que no bem o que deveriam fazer ;) ;
Ver que processo est usando um certo arquivo (lsof );
Ver exatamente que tipos de conexo esto sendo feitas no sistema;
Medir as memrias utilizadas pelos processos.
Quando lsof chamado sem parmetros, ele vai mostrar todos os arquivos abertos
por todos os processos.
1 # lsof
Abra um arquivo com o comando vim, utilizando o usurio aluno:
1 $ vim arquivo
Agora abra outro terminal e descubra quem est utilizando o comando vim no sis-
tema:
1 # lsof which vim
Para visualizar apenas o nmero do processo:
1 # lsof -t which vim
Nos mostrar quais os arquivos so abertos por processos cujos nomes comeam
pela letra "k"(klogd, kswapd . . . );
Linux ONE Pgina 333
Linux Force www.linuxforce.com.br Gerenciamento de Processos
1 # lsof -c k
Nos mostrar quais arquivos so abertos por processos cujo nome comea com
bash:
1 # 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":
1 # lsof -c bash -u ^ aluno
Nos mostrar os processos abertos pelo usurio aluno:
1 # lsof -u aluno
Nos mostrar quais arquivos esto usando o processo cujo PID 1:
1 # lsof +p 1
Busca por todas as instncias abertas do diretrio /tmp :
1 # lsof +D /tmp
Instale o ssh e conecte-se na mquina do amigo:
Linux ONE Pgina 334
Linux Force www.linuxforce.com.br Gerenciamento de Processos
1 # apt -get install ssh -y
2 # ssh 192.168.2.X
Onde X o ip do amigo. Agora verique as conexes da porta 22, que a porta do
ssh:
1 # lsof -i :22
Linux ONE Pgina 335
Linux Force www.linuxforce.com.br Gerenciamento de Processos
18.3 Denido prioridades dos processos
Como ns j sabemos o linux faz uma lista de processos e executa um a um de
tempos em tempos, esta lista possui uma prioridade, o grau de importncia para
execuo do processo.
Ela denida conforme o programa, por exemplo um programa que depende de
I/O tem maior prioridade, quem faz esse clculo o prprio sistema, quanto menor a
prioridade de execuo, maior ser o uso de processamento com este processo para
execut-lo mais rpido. Ns tambm podemos interargir nesse nmero de prioridade
que de -20(o mais importante) at o +19 (o menos importante), por padro todos
os processos executados como root tem a prioridade 0, j os processos executados
como usurios comum tem a prioridade 10, o usurio root pode mudar entre -20 e
+19, enquanto que o usurio comum pode mudar esta prioridade entre 0 e +19.
Para denir uma outra prioridade a um processo na hora que este ir ser executado
devemos executar o comando nice, j se ele j estiver em execuo utilize o renice:
Primeiro vamos executar um comando e ver seu nvel de prioridade:
1 # ekiga
Para visualizar a prioridade do processo:
1 # ps -eo args ,nice ,pid | grep ekiga
2 ekiga 1265
3 grep ekiga 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 ONE Pgina 336
Linux Force www.linuxforce.com.br Gerenciamento de Processos
1 # renice <prioridade > <PID >
Altere para -20 a prioridade do processo do ekiga:
1 # renice -2 1265
Para visualizar a mudana:
1 # ps -eo args ,nice ,pid | grep ekiga
2 ekiga -2 1265
3 grep ekiga 1444
Termine o processo do ekiga:
1 # killall ekiga
Para executar um processo com a prioridade especca diferente da padro utilize o
comando nice:
1 # nice -n <PID > <comando >
Execute o ekiga com prioridade inicial de +19:
1 # nice -n 19 ekiga &
Linux ONE Pgina 337
Linux Force www.linuxforce.com.br Gerenciamento de Processos
18.4 LAB14
1- O servidor Apache est iniciando muitos processos, mas seu acesso no passa de
50 usurios. Mate os processos emexcesso, acerte o arquivo /etc/httpd/conf/httpd.conf
para: StartServers 100 ServerLimit 50 Reinicie o servio do apache.
2- Acessar por ssh 3 mquinas
3- Usar lsof para descobrir quem est acessando a mquina
Linux ONE Pgina 338
Captulo 19
Inicializao
Linux Force www.linuxforce.com.br Inicializao
19.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 necessi-
dade 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 di-
retrio /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 iniciali-
zao, 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 precisa-
mos alterar o arquivo original e sua cpia.
Linux ONE Pgina 340
Linux Force www.linuxforce.com.br Inicializao
19.2 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 runle-
vels, 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
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.
Linux ONE Pgina 341
Linux Force www.linuxforce.com.br Inicializao
19.3 Nveis de Execuo - System V
Em um sistema padro System V, existem oito nveis de inicializao, sendo eles:
Para saber o nvel em que se encontra:
1 # runlevel
2 N 2
Onde:
N - nvel anterior, quando N signica que no houve mudana de nvel desde a
inicializao.
2 - nvel atual.
Linux ONE Pgina 342
Linux Force www.linuxforce.com.br Inicializao
Para trocar de nvel:
1 # init <nvel >
Ex: Para trocar para o nvel 3
1 # init 3
Verique que o nvel de inicializao foi trocado:
1 # runlevel
2 2 3
Trocar para o modo mono-usurio:
1 # init 1
Verique que ao trocar para o modo mono-usurio executado o nvel S, servios
essenciais:
1 # runlevel
2 1 S
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.
Linux ONE Pgina 343
Linux Force www.linuxforce.com.br Inicializao
1 # vim /etc/inittab
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.
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 runle-
vel, se o atd estiver ativo ele ser o um dos primeiros a ser desativado.
Linux ONE Pgina 344
Linux Force www.linuxforce.com.br Inicializao
19.4 O que faz um script de inicializao?
Um script de inicializao nada mais do que um script que realiza vericaes
essenciais ao funcionamento do servio em questo e uma estrutura do tipo case
que aceitar os argumentos start|stop|restart dentre outros. Sendo assim, para iniciar
um servio basta dar o comando:
1 # /etc/init.d/<nome_do_servio> start
E para nalizar um servio basta executar com o parmetro stop:
1 # /etc/init.d/<nome_do_servio> stop
EX: Parando o servio do ssh:
1 # /etc/init.d/ssh stop
Ex: Inicializando o servio do ssh:
1 # /etc/init.d/ssh start
No Debian 6.0 todos os scripts de inicializao "/etc/init.d/"foram convertidos para or-
denar a sequncia de boot baseado em um padro especicado na Linux Standard
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 dependn-
cias.
Esta funcionalidade ativada pelo comando insserv que ordena os scripts init.d
baseando-se nas suas dependncias declaradas nos cabealhos. Ou seja, para
Linux ONE Pgina 345
Linux Force www.linuxforce.com.br Inicializao
adicionar/remover servios da inicializao no Debian 6.0 no se usa mais o "update-
rc.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 # head /etc/init.d/ssh
2 #! /bin/sh
3
4 ### BEGIN INIT INFO
5 # Provides: sshd
6 # Required -Start: $remote_fs $syslog
7 # Required -Stop: $remote_fs $syslog
8 # Default -Start: 2 3 4 5
9 # Default -Stop:
10 # Short -Description: OpenBSD Secure Shell server
11 ### END INIT INFO
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.
- 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.
Linux ONE Pgina 346
Linux Force www.linuxforce.com.br Inicializao
- Should-Stop: Deni que ir parar s depois que os servios declarados forem pa-
rados.
- 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 $local_fs
2 Todos os arquivos locais de sistema so montados ..
3 $network
4 Baixo nvel de rede. (placa de rede; PCMCIA)
5 $named
6 Daemons que podem fornecer resoluo de nomes , como por exemplo:
DNS , NIS , LDAP.
7 $portmap
8 Daemon que fornece mapeamento de portas.
9 $remote_fs
10 Todos arquivos de sistema esto montados.
11 $syslog
12 Logs do sistema operacional.
13 $time
14 Daemons utilizados para definir a hora do sistema , como ntpdate ,
ntp , rdate.
15 $all
Suportado pelo insserv para iniciar depois que todos os outros scripts forem carre-
gados na sequncia de inicializao. Somente trabalha para inicializar, para descar-
regar no possvel, pois nenhum script depende de todos.
Linux ONE Pgina 347
Linux Force www.linuxforce.com.br Inicializao
19.5 Removendo um script da inicializao:
Debian:
Removendo o ssh da inicializao do sistema:
1 # insserv -rv ssh
2 insserv: remove service /etc/init.d/../ rc2.d/S18ssh
3 insserv: remove service /etc/init.d/../ rc3.d/S18ssh
4 insserv: remove service /etc/init.d/../ rc4.d/S18ssh
5 insserv: remove service /etc/init.d/../ rc5.d/S18ssh
6 insserv: creating .depend.boot
7 insserv: creating .depend.start
8 insserv: creating .depend.stop
Adicionando o ssh na inicializao do sistema:
1 # insserv -v ssh
2 insserv: enable service ../ init.d/cron ->
/etc/init.d/../ rc2.d/S18ssh
3 insserv: enable service ../ init.d/cron ->
/etc/init.d/../ rc3.d/S18ssh
4 insserv: enable service ../ init.d/cron ->
/etc/init.d/../ rc4.d/S18ssh
5 insserv: enable service ../ init.d/cron ->
/etc/init.d/../ rc5.d/S18ssh
6 insserv: creating .depend.boot
7 insserv: creating .depend.start
8 insserv: creating .depend.stop
E de onde o insserv tira a prioridade de rodar os scripts? Exemplo do ssh ("/etc/i-
nit.d/../rc2.d/S18ssh") iniciando com prioridade 18? A que est a grande novidade,
Linux ONE Pgina 348
Linux Force www.linuxforce.com.br Inicializao
voc no precisar mais editar essa prioridade na mo, o insserv vai calcular a priori-
dade 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 multi-
usurio, 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 # head -n 15 /etc/rc.d/init.d/sshd
2 #!/bin/bash
3 #
4 # Init file for OpenSSH server daemon
5 #
6 # chkconfig: 2345 55 25
7 # description: OpenSSH server daemon
8 #
9 # processname: sshd
10 # config: /etc/ssh/ssh_host_key
11 # config: /etc/ssh/ssh_host_key.pub
12 # config: /etc/ssh/ssh_random_seed
13 # config: /etc/ssh/sshd_config
14 # pidfile: /var/run/sshd.pid
Onde:
Linux ONE Pgina 349
Linux Force www.linuxforce.com.br Inicializao
1 # 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.
Linux ONE Pgina 350
Linux Force www.linuxforce.com.br Inicializao
19.6 Gerenciando servios:
Para vericar os servios habilitados em cada runlevel digite:
1 # chkconfig --list
Para servio especco:
1 # chkconfig --list httpd
Adicionar servio ssh na inicializao:
1 # chkconfig --add sshd
Para desabilitar servio do ssh da inicializao:
1 # chkconfig --del sshd
Ou:
1 # chkconfig sshd off
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 co-
mando:
1 # /etc/init.d/sshd stop
Linux ONE Pgina 351
Linux Force www.linuxforce.com.br Inicializao
Se no desligares o servio comchkcong, 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:
1 # chkconfig --del sshd && /etc/init.d/sshd stop
Ou:
1 # chkconfig sshd off && /etc/init.d/sshd stop
Para habilitar o servio ssh:
1 # chkconfig sshd on
Ou:
1 # chkconfig --add sshd
Para habilitar o servio ssh em determinados nveis:
1 # chkconfig --level 23 sshd on
Foi habilitado o ssh nos nveis 2 e 3, visualize:
1 # chkconfig --list sshd
Para desabilitar o servio ssh em determinados nveis:
Linux ONE Pgina 352
Linux Force www.linuxforce.com.br Inicializao
1 # chkconfig --level 2 sshd off
Foi desabilitado o ssh no nvel 2 , visualize:
1 # chkconfig --list sshd
Linux ONE Pgina 353
Linux Force www.linuxforce.com.br Inicializao
19.7 LAB15
Rode o script e faa:
1- Coloque o servidor web para inicializar nos runlevels 3 e 5 e desligar nos runlevels:
0, 1 e 6.
Linux ONE Pgina 354

Você também pode gostar