Viagem ao mundo Linux e Git

Durante a pandemia, para ser sincero, não ia aprender Linux, não pensava que a capacidade de trabalhar neste SO me tornaria mais produtivo. Mas, como descobri, as habilidades em Linux realmente me ajudaram a superar as coisas mais rapidamente. Tudo começou quando fui aconselhado a "dar uma olhada no Linux". Então pensei, o que fazer por mim, mesmo assim, não há nada, e até a edição de setembro de #IBelieveinDoing acabou por ser apenas sobre Linux.



Senti que tudo daria certo para mim e comecei uma jornada pelo mundo Linux. Naquela edição #IBelieveinDoing, havia tutoriais não apenas no Linux, mas também no Git. Alguns paralelos podem ser traçados entre esses sistemas. Linux é um sistema operacional de código aberto usado por programadores, e Git é um sistema de controle de versão usado para rastrear mudanças no código-fonte durante o desenvolvimento de programas. Deve-se notar que aprender Linux e Git acabou sendo uma experiência muito emocionante. Mas Git é um sistema bastante complexo, então os fundamentos eram mais difíceis de dominar do que os fundamentos do Linux. Neste artigo, quero compartilhar com vocês o que aprendi ao dominar o Linux e Git.











Comandos básicos do Linux



pwd: Este comando é usado para exibir informações sobre o diretório de trabalho.



ls: Com este comando, você pode exibir informações sobre o conteúdo de um diretório. Se for executado neste formato, sem argumentos de linha de comando, ele fornece informações no formato padrão.



cd: este comando é para alterar o diretório.





Experimentando comandos do Linux



cp : este comando é para copiar arquivos e pastas.



mv: Com este comando, você pode renomear ou mover arquivos e pastas.



touch: Este comando é usado para criar arquivos vazios e para alterar a data e hora dos arquivos.



cat: este comando permite ver o conteúdo dos arquivos, com sua ajuda você pode criar cópias de arquivos, anexar o conteúdo de alguns arquivos a outros.



tree: Este comando permite exibir informações de diretório em formato de árvore. O comando, por padrão, exibe informações sobre pastas e arquivos e informações sobre o número de arquivos e pastas em sua estrutura de saída. Aqui está um exemplo de seu uso





Um exemplo de uso do comando tree



Aqui os nomes das pastas são destacados em azul, os nomes dos arquivos são brancos. Outras cores são usadas nas estruturas exibidas por este comando.



echo: Este comando é usado para exibir os dados passados ​​para ele na tela.



grep: Este comando é para trabalhar com dados de texto. Em particular, ele permite que você pesquise strings.



tail: Este comando imprime as últimas 10 linhas de um arquivo.





Exemplos de uso dos comandos grep e cat



awk : este comando tem como objetivo trabalhar com o utilitário correspondente, o que nos fornece ferramentas poderosas para processar strings, cujas capacidades são comparáveis ​​àquelas disponíveis em linguagens de programação completas.



No Linux, você pode usar pipelines, que são canais unidirecionais que você pode usar para se comunicar entre processos. Ao descrever pipelines, o símbolo (|) é usado. Usando este símbolo, você pode, por exemplo, rotear a saída de um comando para a entrada de outro.





Um exemplo de uso do pipeline



ssh : este comando permite que você trabalhe com um cliente ssh, que é usado para se conectar a sistemas remotos e executar comandos neles. O protocolo SSH visa organizar a interação segura de computadores.



rm: Este comando é usado para excluir arquivos e pastas. Por exemplo, chamá-lo na formarm fileleva à exclusão do arquivo e na formarm -r directory - à exclusão do diretório e de todo o seu conteúdo.



Estrutura de diretório Linux



O Linux usa uma estrutura de diretório semelhante a uma árvore. O início desta estrutura hierárquica está no diretório raiz. Todos os outros diretórios estão aninhados neste diretório. A barra ( /) é usada para separar nomes de diretório ao especificar caminhos para arquivos e pastas .



Essa é a aparência da estrutura do sistema de arquivos em um sistema Linux.





Estrutura de diretórios no Linux



Estas são as características de algumas pastas importantes.

Caminho de diretório Notas
/


Diretório raiz.
/home


O diretório onde os materiais do usuário são armazenados.
/boot


É aqui que os arquivos necessários para executar o Linux são armazenados.
/bin


Os executáveis ​​estão localizados aqui.
/var


Contém vários arquivos usados ​​pelo sistema e programas instalados. Eles podem ser arquivos de log, bancos de dados, conteúdo de página da web em cache.


Endereçamento absoluto e relativo



Os caminhos de arquivo absolutos sempre contêm o caminho completo do diretório raiz para os diretórios que contêm os arquivos necessários.



Os caminhos relativos são relativos ao diretório atual.





Experimentando caminhos



Existem caminhos relativos especiais, que são descritos na tabela a seguir.

Caminho relativo Descrição Exemplo Notas de exemplo
.


Diretório de trabalho atual.
ls .


Exibe informações sobre o conteúdo do diretório atual.
..


Diretório Parental.
cd ..


Suba um nível até o diretório pai.
-


Diretório de trabalho anterior.
cd -


Retorne ao diretório de trabalho anterior.




Exemplos de uso de caminhos relativos especiais



Links físicos e físicos para arquivos



Um link de arquivo flexível (simbólico) contém um ponteiro para o nome do arquivo. Esses links se parecem com atalhos usados ​​para acessar rapidamente um arquivo de diferentes diretórios. Se um arquivo que tem um link simbólico for excluído, o link permanece, mas para de funcionar.



Um link físico é um link para o local no disco rígido onde o arquivo está localizado. O sistema considera que o arquivo existe desde que haja pelo menos um link físico para ele. Na verdade, se um arquivo tiver vários links físicos, ele pode ser comparado a um arquivo com vários nomes.



O comando é usado para criar links físicos e virtuais para arquivos ln. Aqui está um exemplo de criação de um link simbólico com ele:



ln -s /path/to/file linkname


Controle de comportamento do comando



O comportamento dos comandos do Linux pode ser controlado passando argumentos de linha de comando (interruptores, opções, sinalizadores) para eles quando são chamados. Eles geralmente se parecem com um hífen ( -) seguido por um nome de chave de uma letra (essa construção pode ser parecida com, por exemplo -a). Eles também podem se parecer com dois hifens ( --) seguidos por um nome de chave mais longo (mais ou menos --all).



Para saber mais sobre os comandos do Linux, você pode usar o sistema de ajuda integrado, que é acessado por meio do comando man. Por exemplo, lsvocê pode usar o comando para obter ajuda sobre um comando man ls. Abaixo está o resultado de um comando semelhante.









Referência de comandos Ls As páginas de referência de comandos são divididas em várias seções. Entre eles estão os seguintes:



  • NAME(nome). Ele contém o nome do comando e uma breve descrição do que ele faz.
  • SYNOPSIS(resumo da sintaxe do comando). Aqui está um diagrama para usar o comando.
  • DESCRIPTION(descrição). Esta seção fornece uma descrição detalhada do comando e das opções de linha de comando que ele suporta.


Por exemplo, o comando lsgeralmente é usado com uma opção -lque permite exibir detalhes sobre o conteúdo de um diretório.





Usando o comando ls -l



Na imagem anterior, você deve ter notado as construções de visualizaçãodrwxr-xr-x. Esta é uma descrição das permissões de arquivo.



Permissões de arquivo



Suponha que temos a seguinte construção que descreve as permissões de arquivo:



- rwx r-- r--


Observe que quatro grupos de símbolos podem ser distinguidos nele:



  1. O primeiro símbolo indica exatamente com o que estamos lidando. Ou seja, se houver um sinal ( -) aqui , então temos um arquivo à nossa frente. A letra ( d) indica um diretório. A letra ( l) é para um link.
  2. Os três símbolos a seguir permitem que você saiba quais permissões seu proprietário tem para trabalhar com um determinado arquivo: r- ler, w- escrever, x- executar. O conjunto completo de permissões é representado por uma sequência rwx; se uma determinada permissão estiver ausente, um símbolo ( -) é colocado na posição correspondente .
  3. , ( , ). , .
  4. , , , , .


O comando é usado para gerenciar permissões de arquivo chmod. Por exemplo, para adicionar aos actuais regras de acesso à permissão de arquivo para que ele seja executado, você pode usar o seguinte esquema chama: chmod +x <filename>. O design +xindica que essa permissão é adicionada para todos os usuários.



Vamos falar sobre alguns detalhes da configuração de permissões de arquivo usando chmod. Assim, para atribuir uma determinada permissão a todos os usuários, são utilizadas construções semelhantes à descrita acima +x. O operador ( +) é usado para adicionar permissões, o operador ( -) permite remover permissões, o operador ( =) é usado para definir certos direitos para o usuário que possui o arquivo ( u, usuário), para o grupo (g, grupo), para outros usuários ( o, outros) e para todos os usuários ( a, todos). Isso é feito em construções de vista chmod u=rwx,g=rx,o=rx filename.



Ao atribuir permissões, elas geralmente são escritas em formato numérico. Os códigos octais correspondem a certos direitos. Assim, o xcódigo correspondente 1, wo código apropriado 2e ro código correspondente 4. O código0corresponde à completa ausência de permissões para trabalhar com o arquivo. Os direitos do arquivo são descritos por um número de três dígitos, a ordem dos números em que corresponde à ordem descrita acima dos grupos de permissão. Ou seja, o primeiro número descreve as permissões do proprietário do arquivo, o segundo descreve as permissões do grupo e o terceiro descreve as permissões de outros usuários. Cada um desses números é a soma dos códigos de autorização r, we x.



Por exemplo, um comando do formulário chmod 444 filenamesignifica que todos terão apenas o direito de ler o arquivo ( r--r--r--), e um comando do formulário chmod 700 filenameindica que o proprietário terá o direito de ler, gravar e executar o arquivo ( rwx, 4+2+1) e ninguém mais terá o direito de realizar qualquer ação com o arquivo. ( rwx------).



Trabalhando com Git



Ao trabalhar com Git, a seguinte sequência de ações geralmente é usada:



  1. Modificando um arquivo no diretório de trabalho local.
  2. Indexação de arquivo (comando git add).
  3. Salvando um instantâneo dos dados indexados no banco de dados interno ( git commit).
  4. Empurrando as mudanças do repositório local para o remoto ( git push).
  5. Carregando mudanças de um repositório remoto para um local ( git pull).


Aqui está um diagrama que ilustra essa sequência de etapas.









Arquivos de fluxo de trabalho típicos do Git podem estar em estados diferentes ao trabalhar com o Git.





Estados de arquivo



  • Untracked é um arquivo que o Git não observa por mudanças. Este arquivo pode ser adicionado ao índice e estar no estado Staged.
  • Não modificado - Um arquivo que foi monitorado, mas cujo conteúdo não foi alterado. Se você excluir este arquivo, ele não será mais monitorado. Se você alterá-lo, ele entrará no estado Modificado.
  • Modificado - o arquivo que está sendo monitorado, cujo conteúdo foi alterado. Ele pode ser indexado e colocado no estado Staged.
  • Staged é um arquivo monitorado e incluído no índice. As alterações correspondentes podem ser incorporadas ao banco de dados Git.


Vejamos alguns dos comandos Git.



git init: Este comando cria um repositório Git vazio no diretório. Esta é a primeira etapa na criação de um novo repositório. Depois de executar este comando, você pode usar os comandos git adde git commit.









git addComando Git init : Este comando adiciona arquivos ao índice. Suporta, no formuláriogit add ., adicionar todos os arquivos não indexados ao índice, no formuláriogit add filename- adicionar um arquivo específico ao índice, no formuláriogit add dirname- adicionar um diretório ao índice.









git commitComando Git add : este comando grava alterações no repositório local. Essas mudanças são chamadas, por analogia com o nome do comando, "commits". Cada commit tem um identificador único, tornando mais fácil trabalhar com commits.









git statusComando Git commit : este comando permite que você obtenha informações sobre o estado atual do repositório.









git configComando de status do Git : Este comando permite que você personalize o Git. Entre as configurações Git pode ser observadouser.nameeuser.email. Eles contêm o nome do usuário e endereço de e-mail usados ​​nos commits e indicam quem os fez. Se umgit configsinalizador--globalfor usadoao chamar o comando, asconfigurações serão aplicadas a todos os repositórios locais. Sem este sinalizador, as configurações se aplicam apenas ao repositório atual.









git checkoutComando Git config : Este comando é usado para alternar entre ramos de um repositório (asgit checkout <branch_name>). Com sua ajuda, você pode criar um novo branch e alternar para ele (git checkout -b <new_branch>).



git merge: Este comando permite mesclar os ramos do repositório. Ele pega as alterações em uma ramificação e as mescla na outra ramificação. Por exemplo, há uma ramificação que está trabalhando em um novo recurso de projeto. Após a conclusão desse recurso, as alterações são enviadas para a filial que armazena os recursos estáveis.



git clone: Este comando é usado para criar uma cópia de trabalho local de um repositório remoto. Ao ser executado, os materiais do repositório remoto são baixados para o computador. A clonagem de um repositório existente é comparável à criação de um novo repositório com o comandogit init... Mas ao clonar, temos um repositório à nossa disposição, no qual já existe algo, e quando o comando git inité executado , um repositório vazio.



git pull: Este comando é para baixar dados novos de um repositório remoto.



git push: Este comando pode ser usado para enviar confirmações locais para o repositório remoto. Ao chamar este comando, você precisa passar informações sobre o repositório remoto e sobre o branch do repositório local, que precisa ser enviado para o repositório remoto.



Resultado



Eu disse a você tudo que aprendi durante minha jornada no mundo do Linux e Git. Foi muito emocionante. Com sorte, você desejará fazer algo semelhante e aprender algo novo, algo que expanda seus horizontes profissionais.



Se você recentemente dominou algo interessante, conte-nos sobre isso.










All Articles