Principais Lições
1. Acessando o Linux: Várias Maneiras de Começar
Para começar a aprender e colocar em prática o seu novo conhecimento, você precisará de acesso a um sistema Linux.
Acesso Imediato. A maneira mais rápida de mergulhar no Linux é através de interfaces de linha de comando baseadas na web, como o SimpleShell.com, que oferece acesso imediato a um servidor Linux sem necessidade de configuração. Essas opções são ideais para sessões curtas e para experimentar comandos, mas lembre-se de que seus dados são temporários.
Hospedagem Web. Se você hospeda um site, pode já ter acesso SSH a um servidor Linux. Verifique a documentação do seu provedor de hospedagem para "SSH" ou "acesso ao shell". A hospedagem web compartilhada é uma opção acessível para obter acesso persistente ao shell. Alguns provedores incluem:
- 1and1.com
- BlueHost.com
- DreamHost.com
- HostGator.com
- Site5.com
Virtualização. Para uma experiência mais abrangente, use o VirtualBox para executar uma imagem Linux pré-instalada no seu sistema Windows, Mac ou Linux. Baixe o VirtualBox e uma imagem do CentOS ou Ubuntu em virtualboxes.org. Isso proporciona um ambiente Linux pessoal para exploração aprofundada.
2. Conectando-se a um Servidor Linux: SSH e Telnet Explicados
SSH significa Secure Shell e fornece uma maneira de se conectar a um servidor através de uma rede, como a Internet.
Secure Shell (SSH). O SSH é o protocolo principal para conectar-se a servidores Linux, oferecendo comunicação criptografada para acesso remoto seguro. Você precisará de um nome de usuário, senha (ou chave SSH), nome de servidor/endereço IP e, possivelmente, um número de porta.
Clientes SSH. Para Windows, o PuTTY é um cliente SSH popular. Os Macs têm um aplicativo Terminal embutido. O formato básico do comando SSH é ssh -p numero_da_porta usuario@nomedoservidor. Se nenhuma porta for especificada, a porta padrão 22 é utilizada.
Chaves SSH. As chaves SSH oferecem uma opção de login sem senha, aumentando a segurança. Gere chaves usando ssh-keygen (Mac/Linux) ou PuTTYgen (Windows). Compartilhe a chave pública com o administrador do servidor e mantenha a chave privada segura.
3. Navegando pelo Shell: Sua Interface de Linha de Comando
O shell é nada mais do que um programa que aceita seus comandos e os executa.
Interface do Shell. O shell é sua interface principal para interagir com o sistema Linux. Ele interpreta seus comandos e os executa. O prompt do shell normalmente exibe seu nome de usuário, nome do servidor e se você é um usuário normal ($) ou superusuário (#).
Comandos Básicos. Comandos essenciais incluem:
ls: Lista o conteúdo do diretóriocd: Muda de diretóriopwd: Exibe o diretório atualcat: Exibe o conteúdo de arquivosecho: Exibe argumentosman: Exibe a documentação do comando
Aprendendo na Prática. Use o comando man para aprender sobre outros comandos. A variável de ambiente PATH lista diretórios onde os comandos executáveis estão localizados. Use which comando para encontrar a localização exata de um comando.
4. Compreendendo a Estrutura de Diretórios do Linux: Um Mapa do Sistema
Compreender a estrutura de diretórios ajudará você no futuro ao procurar componentes no sistema.
Diretório Raiz. O diretório raiz (/) é o ponto de partida da hierarquia do sistema de arquivos. Não está relacionado à conta de usuário root.
Diretórios Comuns. Diretórios principais incluem:
/bin: Binários essenciais/etc: Arquivos de configuração do sistema/home: Diretórios pessoais dos usuários/opt: Software opcional/tmp: Arquivos temporários/usr: Programas relacionados ao usuário/var: Dados variáveis, como arquivos de log
Estrutura de Aplicativos. Aplicativos frequentemente seguem uma estrutura de diretórios semelhante dentro de /opt ou /usr/local, com subdiretórios para binários, configurações, bibliotecas e logs.
5. Comandos Essenciais do Linux: Seu Kit de Ferramentas para Operações Básicas
No Linux, os comandos são sensíveis a maiúsculas e minúsculas e, na maioria das vezes, estão totalmente em letras minúsculas.
Comandos Principais. Um punhado de comandos pode levá-lo longe:
ls: Lista arquivos e diretórioscd: Muda de diretóriospwd: Imprime o diretório de trabalhocat: Exibe o conteúdo de arquivosecho: Exibe textoman: Acessa o manualexit: Encerra a sessãoclear: Limpa a tela
Navegação de Diretórios. Use . para o diretório atual e .. para o diretório pai. O comando cd - leva você ao diretório anterior.
Execução de Comandos. Para executar um programa no diretório atual, use ./programa.
6. Permissões de Arquivos: Compreendendo e Gerenciando Acesso
O primeiro caractere na string de permissões revela o tipo.
String de Permissão. O comando ls -l exibe uma string de permissão como -rw-r--r--. O primeiro caractere indica o tipo de arquivo (por exemplo, - para arquivo, d para diretório, l para link). Os próximos nove caracteres representam permissões de leitura (r), escrita (w) e execução (x) para o usuário, grupo e outros.
Categorias de Usuário. As permissões se aplicam ao usuário (proprietário), grupo e outros. Use o comando groups para ver suas associações de grupo.
Mudando Permissões. Use chmod para alterar permissões. O modo simbólico (por exemplo, chmod g+w arquivo) adiciona ou remove permissões. O modo octal (por exemplo, chmod 755 arquivo) define permissões diretamente usando valores numéricos (4 para leitura, 2 para escrita, 1 para execução).
7. Encontrando Arquivos: Localizando o que Você Precisa
Se você precisar localizar um arquivo ou diretório, pode usar o comando find.
O Comando find. O comando find é uma ferramenta poderosa para localizar arquivos e diretórios com base em vários critérios. A sintaxe básica é find [caminho...] [expressão].
Opções Comuns. Opções úteis incluem:
-name padrão: Encontra arquivos que correspondem ao padrão (sensível a maiúsculas e minúsculas)-iname padrão: Encontra arquivos que correspondem ao padrão (insensível a maiúsculas e minúsculas)-ls: Realiza umlsnos arquivos encontrados-mtime num_dias: Encontra arquivos modificados hánum_dias-size num: Encontra arquivos de tamanhonum-exec comando {} \;: Executa um comando nos arquivos encontrados
O Comando locate. O comando locate é mais rápido que o find porque pesquisa em um banco de dados pré-construído. No entanto, o banco de dados pode não estar atualizado.
8. Visualizando e Editando Arquivos: Interagindo com o Conteúdo
Aqui estão alguns comandos simples que exibem o conteúdo dos arquivos na tela.
Visualizando Arquivos. Comandos para visualizar o conteúdo de arquivos incluem:
cat: Exibe o arquivo inteiromore: Navega em um arquivo página por páginaless: Semelhante aomore, mas permite movimento para trás e buscahead: Exibe o início de um arquivotail: Exibe o final de um arquivotail -f: Exibe dados à medida que são escritos no arquivo em tempo real
Editando Arquivos. O nano é um editor de texto simples e amigável. O vi e o emacs são mais poderosos, mas têm uma curva de aprendizado mais acentuada.
O Comando file. Use o comando file para determinar o tipo de um arquivo.
9. Gerenciamento de Arquivos: Manipulando Arquivos e Diretórios
Eventualmente, você ficará cansado de todos os arquivos antigos que criou apenas jogados por aí, bagunçando seu diretório pessoal e ocupando espaço precioso.
Removendo Arquivos. Use o comando rm para remover arquivos. Use rm -r para remover diretórios recursivamente. Tenha cuidado, pois não há "lixeira" e os arquivos deletados estão perdidos.
Copiando Arquivos. Use o comando cp para copiar arquivos. Use cp -r para copiar diretórios recursivamente.
Movendo e Renomeando Arquivos. Use o comando mv para mover ou renomear arquivos e diretórios.
Arquivamento e Compressão. Use o comando tar para criar arquivos. Use o gzip para comprimir arquivos. As versões modernas do tar suportam compressão gzip com a opção -z (por exemplo, tar zcf arquivo.tar.gz diretório).
10. Personalizando Seu Shell: Tornando o Linux Seu
Como você viu no capítulo "Bem-vindo ao Shell", os prompts padrão podem variar de sistema para sistema.
Personalizando o Prompt. Personalize seu prompt do shell definindo a variável de ambiente PS1 (para bash, ksh, sh) ou prompt (para csh, tcsh, zsh). Use strings de formato como \u (nome de usuário), \h (nome do host) e \w (diretório atual).
Criando Aliases. Crie atalhos para comandos frequentemente usados com o comando alias (por exemplo, alias ll='ls -l'). Adicione aliases aos seus arquivos de inicialização pessoal (por exemplo, .bash_profile, .bashrc) para torná-los persistentes.
Sessões Interativas vs. Não Interativas. Compreenda a diferença entre sessões de shell interativas e não interativas. Certifique-se de que sua configuração seja carregada em ambos os tipos de sessões, fazendo o sourcing de .bashrc a partir de .bash_profile.
11. Processos e Controle de Tarefas: Gerenciando Programas em Execução
Para exibir os processos atualmente em execução, use o comando ps.
Listando Processos. Use o comando ps para exibir processos em execução. Opções comuns incluem -e (todos os processos), -f (formato completo) e -u nome_de_usuario (processos para um usuário específico).
Processos em Primeiro e Segundo Plano. Execute comandos em segundo plano adicionando um ampersand (&) ao final. Use jobs para listar trabalhos em segundo plano, fg para trazer um trabalho para o primeiro plano e bg para colocar um trabalho suspenso em segundo plano.
Finalizando Processos. Use Ctrl-c para finalizar um processo em primeiro plano. Use o comando kill para enviar sinais para processos, incluindo os sinais TERM (15) e KILL (9).
12. Automatizando Tarefas: Agendando Trabalhos com Cron
Se você precisar repetir uma tarefa em um cronograma, pode usar o serviço cron.
Serviço Cron. O serviço cron agenda tarefas para serem executadas automaticamente em horários especificados.
Formato do Crontab. Os trabalhos cron são definidos em arquivos crontab. Cada linha especifica o cronograma (minuto, hora, dia do mês, mês, dia da semana) e o comando a ser executado.
Comando Crontab. Use o comando crontab para gerenciar trabalhos cron:
crontab -l: Lista trabalhos croncrontab -e: Edita trabalhos croncrontab -r: Remove todos os trabalhos cron
Resumo das Resenhas
Linux para Iniciantes recebe, na sua maioria, críticas positivas, com uma classificação média de 4,02/5. Os leitores apreciam a sua abordagem acessível para iniciantes, a cobertura abrangente dos comandos básicos do Linux e os recursos adicionais para um aprendizado mais aprofundado. Alguns consideram útil para relembrar conhecimentos ou aprender novos comandos. No entanto, as críticas incluem conteúdo desatualizado, falta de profundidade em certas áreas e informações de fundo insuficientes. O livro é elogiado pela sua abordagem prática e direta, mas alguns sentem que poderia beneficiar de elementos mais interativos e explicações mais detalhadas de conceitos abstratos.