<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Danilo Gila de Santana</title>
    <description>The latest articles on DEV Community by Danilo Gila de Santana (@danilogila).</description>
    <link>https://dev.to/danilogila</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F149135%2F406f50c7-8c9a-4dde-b9d2-9e30588fe988.jpeg</url>
      <title>DEV Community: Danilo Gila de Santana</title>
      <link>https://dev.to/danilogila</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danilogila"/>
    <language>en</language>
    <item>
      <title>Manual de sobrevivência do Shell Script para iniciantes</title>
      <dc:creator>Danilo Gila de Santana</dc:creator>
      <pubDate>Mon, 25 Mar 2019 21:56:36 +0000</pubDate>
      <link>https://dev.to/danilogila/manual-de-sobrevivncia-do-shell-script-para-iniciantes-17kn</link>
      <guid>https://dev.to/danilogila/manual-de-sobrevivncia-do-shell-script-para-iniciantes-17kn</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FQKXVZEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://danilogila.github.io/assets/images/linux_terminal_wallpaper.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FQKXVZEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://danilogila.github.io/assets/images/linux_terminal_wallpaper.png" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;
Foto por Digital Ocean



&lt;h1&gt;
  
  
  Introdução:
&lt;/h1&gt;

&lt;p&gt;Ainda me lembro quando vi um terminal do Linux pela primeira vez. Fiquei espantado com o tanto de informações que tinham naquela estranha tela preta e isso me criou um certo pavor. Com o passar do tempo, fui estudando e conhecendo um pouco mais os comandos do Shell e percebi o quanto dominar aquele terminal seria produtivo para o meu dia-a-dia no estágio e na minha carreira profissional como um todo.&lt;/p&gt;

&lt;p&gt;O objetivo dessa postagem é compartilhar um pouco da minha evolução com o Shell Script e mostrar que não precisamos ter medo de utilizá-lo. Veremos que no final ele será um grande aliado da nossa produtividade no ambiente de trabalho :)&lt;/p&gt;

&lt;h3&gt;
  
  
  Antes de tudo…
&lt;/h3&gt;

&lt;p&gt;Antes de começarmos, abra um terminal de sua preferência. Depois disso, iremos dar início ao nosso estudo do Shell. Veremos que será possível navegar entre diretórios, criar arquivos e muito mais.&lt;/p&gt;




&lt;h3&gt;
  
  
  Listar arquivos e diretórios
&lt;/h3&gt;

&lt;p&gt;Para listar/exibir arquivos e pastas de um diretório basta usar o comando &lt;code class="shell"&gt;ls&lt;/code&gt;. Se olharmos bem, veremos que os arquivos são listados com uma cor diferente das pastas. Dependendo do terminal que você esteja utilizando, será exibida de forma parecida para facilitar a visualização do conteúdo. Se o seu terminal não exibir dessa maneira, utilize &lt;code class="shell"&gt;ls --color&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LwT096kT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ztjzrhgca5n48uy7kuao.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LwT096kT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ztjzrhgca5n48uy7kuao.gif" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Mudando de diretório
&lt;/h3&gt;

&lt;p&gt;Quando queremos mudar de diretório usamos o comando cd nome-do-diretório. Além disso, podemos mudar de diretório utilizando &lt;code class="shell"&gt;cd ..&lt;/code&gt;. Os &lt;code class="shell"&gt;..&lt;/code&gt; nos indica que estamos voltando um nível na hierarquia de diretórios . Ou seja, ao utilizar &lt;code class="shell"&gt;cd ..&lt;/code&gt; na pasta Download, voltaremos para a pasta tutorial-shell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kZbCIf7J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/d3banryqktfczwjpx18w.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kZbCIf7J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/d3banryqktfczwjpx18w.gif" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Criando e removendo diretórios
&lt;/h3&gt;

&lt;p&gt;Os comandos para criação e remoção de pastas são bem parecidos. Quando queremos criar um diretório utilizamos o &lt;code class="shell"&gt;mkdir nome-do-diretório&lt;/code&gt;. Para removermos o diretório utilizamos &lt;code class="shell"&gt;rmdir nome-do-diretório&lt;/code&gt;. Vale mencionar que se o diretório que você queira remover possui algum conteúdo dentro dele, devemos utilizar a flag &lt;code class="shell"&gt;-r&lt;/code&gt; antes do nome do diretório. Isso garante que ele irá remover todas as subpastas e arquivos, mas use esse comando com bastante sabedoria pois uma vez executado, ele irá remover todos os arquivos sem uma pergunta de confirmação ou algo do tipo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kaskllKJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hjz9xw0jnsh0n5lu55gz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kaskllKJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hjz9xw0jnsh0n5lu55gz.gif" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Criando e apagando arquivos
&lt;/h3&gt;

&lt;p&gt;Utilizamos o comando &lt;code class="shell"&gt;touch nome-do-arquivo&lt;/code&gt; para criarmos um arquivo e podemos criar eles colocando uma extensão, dependendo do tipo de arquivo. Exemplo: &lt;code class="shell"&gt;touch index.html&lt;/code&gt; cria um arquivo HTML. Isso pode ser feito para diversos tipos diferentes de arquivos. Para remover, utilizamos o comando &lt;code class="shell"&gt;rm nome-do-arquivo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--od8CRHCx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/076vhmtjaam2qzj4ethw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--od8CRHCx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/076vhmtjaam2qzj4ethw.png" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Editar arquivos
&lt;/h3&gt;

&lt;p&gt;Nano é um editor de texto que é utilizado em nosso terminal. O grande barato desse editor é que ele foca na simplicidade de realizar edições de texto nos arquivos desejados. Para editar um arquivo, basta digitar &lt;code class="shell"&gt;nano nome-do-arquivo&lt;/code&gt; e o editor irá abrir dentro do seu terminal.&lt;/p&gt;

&lt;p&gt;Uma vez aberto, o nano nos oferece vários comandos de edição. Basta utilizar as funções desejadas e editar o seu arquivo da maneira mais conveniente.&lt;/p&gt;

&lt;p&gt;Além do nano, temos outros editores como o Vi, Vim e etc mas isso fica pra um outro artigo ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bPpwT3g7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/8gtwz9wo0h97stsj6619.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bPpwT3g7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/8gtwz9wo0h97stsj6619.png" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Exibindo conteúdo de arquivos
&lt;/h3&gt;

&lt;p&gt;Dentre os vários comandos de exibição, separei os 4 que eu mais utilizo no dia-a-dia. São eles:&lt;/p&gt;

&lt;p&gt;&lt;code class="shell"&gt;More&lt;/code&gt; : Exibe uma página por vez do seu documento. Exemplo: more filmes.txt.&lt;/p&gt;

&lt;p&gt;&lt;code class="shell"&gt;Less&lt;/code&gt;: O comando less é similar ao more. A diferença entre eles é que você consegue buscar um texto específico dentro do arquivo, consegue navegar entre as páginas e isso não é possível com o more. Exemplo: less agenda.txt&lt;/p&gt;

&lt;p&gt;&lt;code class="shell"&gt;Head&lt;/code&gt;: exibe as 10 primeiras linhas do arquivo desejado. Exemplo: head jogos.txt.&lt;/p&gt;

&lt;p&gt;&lt;code class="shell"&gt;Tail&lt;/code&gt;: mostra a parte final do arquivo. Exemplo: tail index.html.&lt;/p&gt;

&lt;p&gt;&lt;code class="shell"&gt;Cat&lt;/code&gt;: Exibe todo o conteúdo de uma vez. A desvantagem desse comando é que se utilizarmos em um arquivo com bastante conteúdo, fica um pouco difícil de encontrarmos algum trecho específico. Exemplo: cat routes.go.&lt;/p&gt;

&lt;h3&gt;
  
  
  Movendo e renomeando arquivos
&lt;/h3&gt;

&lt;p&gt;De forma bastante curiosa, quando queremos mover e renomear algum arquivo, utilizamos o mesmo comando. Quando queremos mover um arquivo para um outro diretório, utilizamos o comando &lt;code class="shell"&gt;mv nome-do-arquivo caminho/do/destino&lt;/code&gt;. Exemplo: mv dialog.js Documents/backup/&lt;/p&gt;

&lt;p&gt;Para renomear um arquivo iremos usar o mesmo comando de mover, só que ao invés de um diretório alvo, iremos colocar o novo nome do arquivo. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YBNP-RKX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/nluryt4ezyla8o9z8y88.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YBNP-RKX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/nluryt4ezyla8o9z8y88.gif" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Mostrando diretório atual
&lt;/h3&gt;

&lt;p&gt;O comando para mostrar o diretório atual é o &lt;code class="shell"&gt;pwd&lt;/code&gt;. Pwd é uma sigla para Print Work Directory, e ele exibe o caminho atual para o diretório que estamos operando no terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--57-7687l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mn7yupz5ggnmxkwrljil.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--57-7687l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mn7yupz5ggnmxkwrljil.gif" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Limpando o terminal
&lt;/h3&gt;

&lt;p&gt;&lt;code class="shell"&gt;Clear&lt;/code&gt; remove do terminal todas as saídas de comandos utilizados. Bem útil para quando estamos fazendo muita coisa e queremos dar uma organizada na tela.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M5hNVwvG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zyd7xgo1o2hf105l3005.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M5hNVwvG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zyd7xgo1o2hf105l3005.gif" alt="Markdowm Image"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Considerações finais
&lt;/h3&gt;

&lt;p&gt;Vale mencionar que essa é somente a ponta do iceberg quando falamos de Shell Script. Veremos em artigos futuros que alguns comandos podem receber algumas variações na forma de exibir ou executar seus comandos.&lt;/p&gt;

&lt;p&gt;Espero que com esse artigo você, leitor/leitora, tenha tido um bom entendimento do funcionamento básico do Shell Script e que tenha perdido um pouco do medo dessa telinha preta.&lt;/p&gt;

&lt;p&gt;Sintam-se livres para mencionar algum possível erro, dar dicas e o que mais acharem necessário.&lt;/p&gt;

&lt;p&gt;Obrigado a todas e todos o/&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
