Sumário do livro Shell Linux

Lista de Siglas e Abreviaturas
1. Introdução
1.1. Hardware
1.1.1. Fonte, de Onde vem a Energia?
1.1.2. CPU (Central Processing Unit ou Unidade Central de Processamento)
1.1.3. Placa-mãe, Onboard e Offboard
1.1.4. Placa de Vídeo
1.1.5. Placa de Som
1.1.6. Placa de Rede
1.1.7. Memória ROM (Read-only Memory ou Memória Somente Leitura)
1.1.8. Memória Permanente
1.1.9. Memória RAM (Random Access Memory ou Memória de Acesso Aleatório)
1.1.10. Gabinete e Cooler
1.2. Conhecendo o Ambiente Linux
1.3. Como Acessar o Shell
1.3.1. Principais Shells
1.3.2. Encontre o Shell
1.3.3. Entendendo a Interface do Shell
1.3.4. Shell e o Nosso Estudo
2. Árvore de Diretórios
2.1. O Que São Diretórios?
2.2. Entendendo a Estrutura de Diretórios
2.2.1. Diretório Raiz (/)
2.2.2. Diretório do Usuário (/home)
2.2.3. Acesso a Outras Partições e Dispositivos (/media, /mnt)
2.2.4. Organização de Arquivos dos Programas
2.2.4.1. Entenda a Separação dos Diretórios Executáveis
2.2.4.2. Executáveis do Sistema (/bin, /usr/bin, /usr/sbin/, /usr/local/bin,
/sbin /usr/games)
2.2.5. Configurações do Sistema (/etc)
2.2.6. Recursos do Sistema Unix (/usr)
2.2.7. Biblioteca dos Aplicativos (/lib, /usr/lib, /usr/local/lib)
2.2.8. Diretório Temporário (/tmp)
2.2.9. Variáveis do Sistema e Arquivos de Log (/var)
2.2.10. Diretórios Especiais (/dev, /proc, /sys)
2.2.11. Diretório de Boot (/boot)
2.2.12. Diretório de Armazenamento de Programas Opcionais (/opt)
3. Principais Comandos
3.1. Atalhos do Teclado
3.1.1. Navegando com a Tecla
3.1.2. Histórico do Terminal, Setas Direcionais e Pesquisa
3.1.3. Limpar o Histórico do Shell
3.1.4. Interrompendo ou Congelando um Comando em Execução
3.2. Gerenciamento de Arquivos e Diretórios (ls, cd, pwd, mkdir, rm, cp, mv)
3.2.1. Listar Arquivo (ls)
3.2.2. Acessar Diretório (cd)
3.2.3. Diretório Corrente (pwd)
3.2.4. Criar Diretório (mkdir)
3.2.5. Remover Arquivo (rm)
3.2.6. Copiar Arquivo (cp)
3.2.7. Mover ou Renomear Arquivo (mv)
3.3. Obtendo Informações para Usuários (date, head, tail, more, less, who)
3.3.1. Exibir ou Configurar Data e Hora (date)
3.3.2. Exibir as Primeiras Linhas de um Arquivo (head)
3.3.3. Exibir as Últimas Linhas de um Arquivo (tail)
3.3.4. Visualizador de Texto (more)
3.3.5. Visualizador de Texto (less)
3.3.6. Mostrar quem está Logado (who)
3.4. Ler Informações do Hardware (/proc)
3.5. Procurar Arquivos (find, locate)
3.5.1. Procura por Arquivo (find)
3.5.1.1. Dicas Sobre o Find
3.5.2. Procurar por Arquivo em Banco de Dados (locate)
3.6. Desligar e Reiniciar a Máquina (shutdown e reboot)
3.6.1. Desligar ou Reiniciar o Sistema (shutdown)
3.6.2. Desligar ou Reiniciar o Sistema (reboot)
3.7. Modificar Parâmetros de Arquivos, como Data de Acesso (touch)
3.8. Montar e Desmontar Partições (mount / umount)
3.9. Juntar, Compactar e Descompactar Arquivos (tar, gunzip, bzip2)
3.9.1. Juntar Arquivos com tar
3.9.2. Compactar Arquivos com gunzip e tar
3.9.3. Compactar Arquivos com bzip2 e tar
3.10. Operações Matemáticas
3.10.1. Operações Matemáticas Utilizando bc
4. Atributos Introdutórios ao Shell
4.1. Processos
4.1.1. Visualizar os Processos
4.1.2. Matar Processos
4.2. Redirecionamentos (stdout, stderr, >, 2>, >>, 2>>, &>, &>>)
4.2.1. Redirecionando com o pipe ( | )
4.3. Variáveis
4.4. Variáveis de Ambiente
4.5. Usuários
4.6. Grupos
4.6.1. Criar e Remover um Grupo
4.7. Permissões (chown, chmod, root e sudo)
4.7.1. Permissões de Usuários e Grupos (chown)
4.7.2. Permissões de Arquivos (chmod)
4.7.3. Comando sudo e Usuário root
4.8. Usando Aspas, Apóstrofos e Barra Invertida
4.9. Ponto e Vírgula
4.10. O Uso de Crase e Parênteses
4.11. Delimitadores
4.12. Principais Caracteres Especiais (Expressões Regulares)
5. Aplicativos para o Dia a Dia
5.1. Fazer Download de Arquivos e Páginas (wget)
5.2. Acessar Chats pelo Terminal (CenterIM)
5.3. Ouvir Músicas pelo Terminal (mpg123)
5.4. Assistir a Vídeos em ASCII pelo Terminal (MPlayer)
5.5. Editar Arquivos (vim, nano)
5.5.1. Editor de Textos vim
5.5.2. Editor de Textos nano
5.6. Checar a Integridade de Arquivos (md5sum)
5.7. Ajustar o Volume (alsamixer)
5.8. Baixar Vídeos do YouTube (youtube-dl)
5.9. Acessar o Servidor via ssh
5.9.1. Copiar Arquivos via ssh
5.10. Navegar na Internet pelo Modo Texto (links2)
5.11. Converter e Redimensionar Imagens (convert)
6. Monitorando o Sistema
6.1. Processos em Execução (top)
6.1.1. Tempo de Atividade Média e Carga do Sistema
6.1.2. Tarefas em Execução
6.1.3. Estados da CPU
6.1.4. Uso da Memória
6.1.5. Identificação em Colunas
6.1.6. Comandos Interativos
6.2. Entenda o Uso da Memória (free -m)
6.3. Uso de Disco (iotop, du, df )
6.3.1. Análise de Escrita e Leitura do Disco (iotop)
6.3.2. Estimar Espaço Ocupado por Arquivo (du)
6.3.3. Estimar Espaço Ocupado por Partições (df)
6.4. Informações Sobre a Conexão (ifconfig, iwlist)
6.4.1. Configurar Rede (ifconfig)
6.4.2. Informação Sobre Rede Wireless (iwlist)
6.5. Veja os Dispositivos da Máquina (lspci, lsusb)
6.5.1. Informação Sobre Dispositivos (lspci)
6.5.2. Informações Sobre Dispositivos USB (lsusb)
6.6. Monitore a Temperatura (sensors e hddtemp)
6.6.1. Monitore a Temperatura com o sensors
6.6.2. Monitore a Temperatura do HD com o hddtemp
6.7. Informações Gerais (inxi)
7. Manipulação de Pacotes
7.1. O que é um Pacote
7.2. O que são Repositórios
7.3. O que são Gerenciadores de Pacotes
7.4. Debian, Ubuntu e Derivados (DPKG, Apt-Get)
7.4.1. Atualizar Repositório
7.4.2. Atualizar Sistema
7.4.3. Pesquisar por Pacotes (APT)
7.4.4. Instalar Pacote (APT)
7.4.5. Remover Pacote (APT)
7.4.6. Remover Pacotes não Utilizados
7.4.7. Limpar Cache de Pacotes Baixados
7.4.8. Dicas Gerais de APT e DPKG
7.4.8.1. Exibir todos os Pacotes Instalados no Sistema
7.4.8.2. Verificar se um Pacote está Instalado
7.4.8.3. Exibir a Lista de Arquivos Contidos em um Pacote Instalado
7.4.8.4. Pesquisar a qual Pacote Pertence um Arquivo
7.4.8.5. Instalar Pacote (DPKG)
7.4.8.6. Instalar Pacote “.deb” local Satisfazendo as Dependências
7.4.8.7. Remover Pacote (DPKG)
7.4.8.8. Baixar Código-Fonte do Aplicativo
7.4.8.9. Reconfigurar um pacote instalado
7.4.8.10. Concluir a Configuração de Pacotes Interrompidos Durante a Instalação
7.4.8.11. Reparar o Sistema com Pacotes Quebrados
7.4.8.12. Repositórios
7.5. RedHat, Fedora, CentOS (RPM, YUM)
7.5.1. Verificar se o Pacote está Instalado (RPM)
7.5.2. Instalar um Pacote (RPM)
7.5.3. Obter Informações de um Pacote (RPM)
7.5.4. Remover um Pacote (RPM)
7.5.5. Lidar com Dependências de um Pacote (RPM)
7.5.6. Instalar um Pacote e Lidar com Dependências (YUM)
7.5.7. Remover um Pacote (YUM)
7.5.8. Pesquisar um Pacote (YUM)
7.5.9. Atualizar todo o Sistema (YUM)
7.5.10. Instalar Grupo de Pacotes (YUM)
7.6. Sabayon (Entropy)
7.6.1. Atualizar Repositórios
7.6.2. Atualizar o Sistema
7.6.3. Pesquisar Pacote
7.6.4. Instalar Pacote
7.6.5. Remover Pacote
7.6.6. Limpar Cache de Pacotes Recebidos
7.6.7. Atualizar Configurações de Pacotes que Foram Instalados
7.6.8. Checar por Dependências em Falta e Concertar
7.6.9. Checar por Bibliotecas em Falta e Concertar
7.6.10. Dicas de Atalhos
8. Manipular Textos de Forma não Interativa
8.1. Exibir Textos na Tela (echo, cat, tac, rev)
8.1.1. Exibir Texto na Tela (echo)
8.1.2. Exibir Conteúdo de um Arquivo ou Concatenar Texto (cat)
8.1.3. Exibir as Linhas do Texto de Forma Invertida (tac)
8.1.4. Inverter os Caracteres de cada Linha (rev)
8.2. Filtrar Texto (grep e egrep) e Exemplos de Expressões Regulares
8.2.1. Filtrar uma Opção ou Outra, o uso do Pipe (|)
8.2.2. Filtrar Qualquer Caractere e Escapando dos Meta-Caracteres, o Uso
do Ponto e da Barra Invertida (\)
8.2.3. Repetir ao Infinito e Além, o Uso do Asterisco (*)
8.2.4. Repetir com o Uso do Caractere Soma (+)
8.2.5. Caractere Opcional, a Interrogação (?)
8.2.6. Fazer uma Lista, o Uso dos Colchetes
8.2.7. Fazer uma Lista de Negação, os Colchetes com Circunflexo
8.2.8. Filtrar o Início da Linha com o Circunflexo (^)
8.2.9. Filtrar o Fim da Linha com o Cifrão ($)
8.2.10. O Uso da Borda \b
8.2.11. O Uso da Contra Borda \B
8.2.12. Estipular a Quantidade de Repetições com as Chaves
8.3. Os Parâmetros do Grep e Egrep
8.3.1. Contar Linhas, o Parâmetro -c
8.3.2. Exibir o Número da Linha no Resultado, o Parâmetro -n
8.3.3. Inverter o Resultado, Exibindo Apenas as Linhas que não Coincidem
com o que Procuramos, o Parâmetro -v
8.3.4. Exibir Algumas Linhas Após ou Antes dos Resultados, os
Parâmetros -A e -B
8.3.5. Ignorar Diferença entre Maiúscula e Minúscula, o Parâmetro -i
8.3.6. Utilizar o Grep em Conjunto com Outros Comandos, o Uso do Pipe (|)
8.4. Recortar Pedaços de Textos com o Comando Cut
8.5. Editar Textos com o Sed
8.5.1. Apagar Linhas e Caracteres com o Sed
8.5.2. Substituir Caracteres com o Sed
8.5.3. Mais Alguns Exemplos do Sed
8.5.4. Dicas Complementares Sobre Sed
8.6. Editar Textos com o awk
8.6.1. Alterar os Delimitadores do awk
8.6.2. Filtrar Valores com o awk
8.7. Exibir Textos em Ordem Alfabética e Remover Linhas Duplicadas (sort)
8.8. Conclusão Sobre a Manipulação de Texto de Forma Não Interativa
9. Shell Script
9.1. Criar o Primeiro Shell Script e Entender os Comentários
9.2. Passar Parâmetros para o Shell Script
10. Comandos Condicionais
10.1. If, Then, Else
10.1.1. Verificar Strings
10.1.1.1. Verificar se uma Variável não é Nula, -n
10.1.1.2. Verificar se uma Variável é Nula, -z
10.1.1.3. Conferir se é Igual
10.1.1.4. Conferir se é Diferente
10.1.2. If, Then, Else, o que Fazer Quando a Condição não for Verdadeira
10.1.2.1. If, Then, Else e as Variáveis
10.1.3. Verificações Numéricas
10.1.3.1. Igual ou Diferente, Exclusivo para Números, -eq e -ne
10.1.3.2. Menor que -lt
10.1.3.3. Maior que -gt
10.1.3.4. Menor ou Igual -le
10.1.3.5. Maior ou Igual -ge
10.1.4. Teste de Arquivos
10.1.4.1. É um Diretório -d
10.1.4.2. É um Arquivo -f
10.1.4.3. Existência de Diretório ou Arquivo -e
10.1.4.4. O Arquivo ou Diretório Pertence a um Grupo a que o Usuário
Também Pertence -G
10.1.4.5. O Arquivo ou Diretório Pertence ao Usuário -O
10.1.4.6. O Arquivo ou Diretório Possui Permissão de Leitura -r
10.1.4.7. O Arquivo ou Diretório Possui Permissão de Escrita -w
10.1.4.8. O Arquivo ou Diretório Possui Permissão de Execução -x
10.1.4.9. O Arquivo foi Criado ou Modificado Depois -nt
10.1.4.10. O Arquivo foi Criado ou Modificado Antes -nt
10.1.5. Invertendo a Checagem com o Uso da Exclamação (!)
10.1.6. Checagens Múltiplas && e ||
10.1.6.1. Exigir que Todas as Ocorrências Sejam Verdadeiras && (e)
10.1.6.2. Permitir que Apenas uma das Ocorrências seja Verdadeira || (ou)
10.1.6.3. Checagens && e || Podem Trabalhar em Conjunto
10.1.7. Outra Forma de Múltiplas Checagens, elif
10.2. O Uso do Loop, ou Laço, Resolvendo Problemas Repetitivos
10.2.1. Utilizar o Laço for
10.2.1.1. Utilizar o Laço for com Comandos no Lugar de Listas
10.2.2. Utilizar o Laço while
10.2.2.1. Utilizar o Laço While para Fazer um Loop Infinito
10.2.3. Utilizar o Laço until
10.3. Função
10.4. Casando com o Case
11. Interação com Shell Script
11.1. Read
11.2. Dicas Gerais para Diálogos
11.2.1. Descobrindo se o Usuário Marcou Sim/Ok ou Não/ Cancelar
11.3. Dialog
11.3.1. Mensagem na Tela (–msgbox)
11.3.2. Mensagem sem Botões (–infobox)
11.3.3. Ler um Arquivo (–textbox)
11.3.4. Monitoramento com tail -f (–tailbox)
11.3.5. Entre com os Dados (–inputbox)
11.3.6. Pergunta Sim ou Não (–yesno)
11.3.7. Menu de Opções (–menu)
11.3.8. Escolha uma Opção (–radiolist)
11.3.9. Calendário (–calendar)
11.3.10. Lista de Opções (–checklist)
11.3.11. Selecione um Arquivo (–fselect)
11.3.12. Escolha um Horário (–timebox)
11.3.13. Exemplo de Script Utilizando Dialog
11.4. Zenity
11.4.1. Diálogo de Informação (–info)
11.4.2. Diálogo de Aviso (–warning)
11.4.3. Diálogo de Erro (–error)
11.4.4. Diálogo de Notificação (–notification)
11.4.5. Diálogo de Pergunta (–question)
11.4.6. Diálogo de Entrada de Texto (–entry)
11.4.7. Diálogo Usuário e Senha (–password)
11.4.8. Diálogo de Formulário (–forms)
11.4.9. Diálogo de Texto Informativo (–text-info)
11.4.10. Diálogo de Lista (–list)
11.4.11. Diálogo de Calendário (–calendar)
11.4.12. Diálogo de Seleção de Arquivo (–file-selection)
11.4.13. Diálogo de Escala (–scale)
11.4.14. Diálogo de Seleção de Cor (–color-selection)
11.4.15. Exemplo de Script Utilizando Zenity
11.5. Kdialog
11.5.1. Caixa de Mensagem (–msgbox)
11.5.1.1. Caixa de Mensagem de Desculpas (–sorry)
11.5.1.2. Caixa de Mensagem de Erro (–error)
11.5.2. Pergunta Sim ou Não (–yesno)
11.5.3. Diálogos de Entrada do Usuário (–inputbox)
11.5.3.1. Diálogos de Entrada do Usuário (–password)
11.5.4. Exibir Arquivo Texto (–textbox)
11.5.5. Menu Opções (–menu)
11.5.6. Lista de Opções (–checklist)
11.5.7. Escolha uma Opção (–radiolist)
11.5.8. Selecionar Arquivo (–getopenfilename)
11.5.8.1. Salvar Arquivo (–getsavefilename)
11.5.8.2. Selecionar Pasta (–getexistingdirectory)
11.5.9. Controle de Ajuste (–slider)
11.5.10. Diálogo de Seleção de Cor (–getcolor)
11.5.11. Exemplo de Script Utilizando Kdialog
11.6. Outras Interfaces para o Shell, Xdialog, Yad e BigBashView
12. Executando Shell Script Automaticamente no Boot
12.1. SysVinit
12.2. Upstart
12.3. Systemd
13. Recursos de Shell Script na Interface Gráfica
13.1. Gerenciadores de Arquivos (Dolphin e Nautilus)
13.2. Editores de Textos (Kate e Gedit)
14. Shell e Dispositivos Móveis
14.1. Utilizando Shell no seu Smartphone ou Tablet Android
14.2. Linux em Outros Sistemas para Smartphone
15. Mais Alguns Conceitos
15.1. Características de um Sistema Operacional Linux
15.2. Licença GPL
15.3. Projeto GNU
15.4. Software Livre
15.5. GNU/LINUX, Projetos Complementares
15.6. Padrões Abertos e Interoperabilidade
15.7. Software Legado
16. Chegamos ao Fim