GithubHelp home page GithubHelp logo

fasthack-linux-pt's Introduction

Hackathon - Fundamentos do Linux

Introdução

Este é um recurso de aprendizado criado para ajudar pessoas interessadas a adquirir habilidades em Linux e entender conceitos básicos de linha de comando usando o Azure para construir e aprender. Porém não está restrito ao uso do Azure e você pode executar estre hackathon em qualquer máquina virtual usando o Ubuntu Linux.

Nota: Este Hackathon foi incorporado ao Microsoft What The Hack, como o 1º "Hackathon" Linux da Microsoft! Saiba mais em http://aka.ms/wth

História do Linux

Linux é uma família de sistemas operacionais de código aberto e livre baseados no kernel Linux. Sistemas operacionais baseados em Linux são conhecidos como distribuições ou distros Linux. Exemplos incluem Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux e muitos outros.

O kernel Linux tem sido desenvolvido ativamente desde 1991 e tem se mostrado extremamente versátil e adaptável. Você pode encontrar computadores que executam Linux em uma ampla variedade de contextos ao redor do mundo, desde servidores web até celulares. Hoje, 90% de toda a infraestrutura em nuvem e 74% dos smartphones do mundo são alimentados pelo Linux.

Para ler mais sobre a história do Linux, distribuições Linux e kernel Linux, clique aqui.

Objetivos de aprendizado

Neste hack, você será desafiado com algumas tarefas comuns de um cenário do mundo real em tarefas de administração do Linux, tais como:

  1. Criar uma Máquina Virtual Linux no Azure
  2. Manipular arquivos e diretórios
  3. Manipular o conteúdo de arquivos
  4. Trabalhar com permissões padrão do Linux
  5. Coletar informações sobre processos Linux em seu ambiente
  6. Gerenciamento de usuários e grupos
  7. Scripting básico de shell
  8. Trabalhar com discos, partições e gerenciador de volumes lógicos
  9. Gerenciamento de pacotes do Linux
  10. Implementar um servidor web básico

Desafios

Com exceção do desafio 01, que resulta em uma Máquina Virtual Linux necessária para todos os outros desafios, cada desafio pode ser feito separadamente e eles não são interdependentes. O nível de complexidade aumenta de acordo com o número do desafio.

  • Desafio 01: Criar uma Máquina Virtual Linux
    • Uma máquina virtual Linux é um pré-requisito para os desafios, portanto, crie uma nova VM Linux do Ubuntu.
  • Desafio 02: Manipulação de Diretórios
    • Aprenda a realizar operações comuns em diretórios, como exibir o diretório atual e listar o conteúdo do diretório.
  • Desafio 03: Manipulação de Arquivos
    • Aprenda comandos básicos sobre manipulação de arquivos, como criar, renomear, encontrar e remover arquivos.
  • Desafio 04: Conteúdo de Arquivos
    • Aprenda sobre manipulação de conteúdo de arquivos e descubra como contar linhas de arquivo, exibir linhas específicas de um arquivo e muito mais.
  • Desafio 05: Permissões de Arquivos Padrão
    • Aprenda sobre as permissões de arquivo padrão do Linux e entenda como trabalhar com permissões de arquivo em um ambiente Linux.
  • Desafio 06: Gerenciamento de Processos
    • Seus objetivos envolverão o gerenciamento básico de processos, como verificar processos em execução e identificar IDs de processos.
  • Desafio 07: Gerenciamento de Grupos e Usuários
    • Neste desafio, você aprenderá sobre a criação de usuários e grupos em um ambiente Linux.
  • Desafio 08: Scripting
    • Aprenda algumas coisas básicas sobre scripting de shell e o uso de comandos como echo, cut, read e grep.
  • Desafio 09: Discos, Partições e Sistemas de Arquivos
    • Você trabalhará com discos e partições e aprenderá sobre sistemas de arquivos do Linux e comandos como fdisk, mkfs e mount.
  • Desafio 10: Gerenciador de Volume Lógico
    • Descubra sobre o Gerenciador de Volume Lógico no Linux e como usar comandos como pvcreate, vgcreate, lvcreate e mais.
  • Desafio 11: Gerenciamento de Pacotes
    • Aprenda sobre o gerenciamento de pacotes e atividades comuns, como atualizar listas de distribuição de pacotes, instalar e desinstalar pacotes.
  • Desafio 12: Configurando um Servidor Web
    • Neste desafio, vamos configurar um servidor web e implantar uma aplicação PHP simples nele. O uso de SSL pode ser um diferencial.
  • Desafio 13: Protegendo um Servidor
    • Neste desafio, vamos descobrir como usar o Fail2Ban para proteger serviços em um ambiente Linux.
  • Desafio 14: Executando Containers
    • Seu objetivo neste desafio será implantar um contêiner Nginx e acessá-lo. Se você quiser ir mais a fundo, há outra opção de implantar uma aplicação PHP simples.

Pré-requisitos

  • Para rodar este hackathon no Azure e utilizar o Azure Cloud Shell, você irá precisar de uma assinatura do Azure com acesso de colaborador para o Desafio 01 ou acesso de colaborador a uma Máquina Virtual Azure pré-criada para todos os outros desafios. Para executar este hackathon em qualquer outro provedor de nuvem ou mesmo localmente, você precisa apenas de uma máquina virtual com o Ubuntu Linux.

  • Acesso a um terminal. Os termos "terminal", "shell" e "interface de linha de comando" são frequentemente usados ​​de forma intercambiável, mas existem diferenças sutis entre eles:

    • Um terminal é um ambiente de entrada e saída que apresenta uma janela somente de texto executando um shell.

    • Um shell é um programa que expõe o sistema operacional do computador a um usuário ou programa. Em sistemas Linux, o shell apresentado em um terminal é um interpretador de linha de comando.

    • Uma interface de linha de comando é uma interface de usuário (gerenciada por um programa interpretador de linha de comando) que processa comandos para um programa de computador e gera os resultados. Quando alguém se refere a um desses três termos no contexto do Linux, geralmente significa um ambiente de terminal onde você pode executar comandos e ver os resultados impressos no terminal.

      Tornar-se um especialista em Linux requer que você se sinta à vontade ao usar um terminal. Qualquer tarefa administrativa, incluindo manipulação de arquivos, instalação de pacotes e gerenciamento de usuários, pode ser realizada por meio do terminal. O terminal é interativo: você especifica os comandos a serem executados e o terminal gera os resultados desses comandos. Para executar qualquer comando, você o digita no prompt e pressiona ENTER.

      Para nossas atividades, é recomendável usar o Azure Cloud Shell.

  • Existem alguns conceitos básicos que serão úteis se você os tiver. Se você quiser dar uma olhada, eles estão listados aqui.

  • Conceitos sobre o Padrão de Hierarquia do Sistema de Arquivos (FHS) do Linux são recomendados, para que você possa obter mais detalhes sobre isso aqui.

  • Em relação aos comandos do Linux, apenas como referência, aqui está um bom guia de referência rápida.

  • As páginas de manual do Linux são suas melhores amigas. Certifique-se de usá-las da melhor maneira possível.

Recursos de Aprendizado

Guia do Instrutor

No diretorio coach estão as orientações para caso você esteja executando o Hackathon em um evento e seja um instrutor, assim como também estão as soluções para os desafios propostos. Se você está praticando o Hackathon como estudante, não se engane olhando para as soluções durante o hack! Vá aprender alguma coisa. :)

Contribuições

Contribuições na forma de erros, solicitações de recursos e PRs são sempre bem-vindas. Siga estas etapas antes de enviar um PR:

  • Crie uma issue descrevendo o erro ou solicitação de recurso.
  • Clone o repositório e crie um branch de tópico.
  • Faça alterações, adicionando novos testes para novas funcionalidades.
  • Envie um PR.

Mostre seu apoio

Dê uma ⭐️ se este conteúdo foi útil para você!

fasthack-linux-pt's People

Contributors

ricmmartins avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.