<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Blog by Israel Cena]]></title><description><![CDATA[Desenvolvedor de soluções.]]></description><link>https://israelcena.com.br</link><generator>GatsbyJS</generator><lastBuildDate>Fri, 03 Nov 2023 19:51:16 GMT</lastBuildDate><item><title><![CDATA[Trabalhando com inline-style no Next.js Com TypeScript]]></title><description><![CDATA[Uma dica de com se trabalharcom inline-style no Next Com TypeScript]]></description><link>https://israelcena.com.brinline-style-react-next-typescript</link><guid isPermaLink="false">https://israelcena.com.brinline-style-react-next-typescript</guid><pubDate>Sun, 29 Oct 2023 11:24:28 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/media/inline-style.png&quot; alt=&quot;inline-style&quot; title=&quot;inline-style exemplo&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;problema&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#problema&quot; aria-label=&quot;problema permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;P﻿roblema&lt;/h2&gt;
&lt;p&gt;Eu estava codando me TypeScript com o framework Next.js, e precisei usar um style inline. O projeto usa tailwindcss, mas era uma mudança que somente com css puro resolveria.&lt;/p&gt;
&lt;p&gt;E﻿ntão não faz sentido criar um arquivo de css somente para aplicar uma propriedade em um elemento, então decedi fazer uma aplicação de estilo inline, só que só quem usa TypeScript sabe como é! Me apareceu um monte de erros de tipos… Então descobri as tipagens e resolvi criar esse post para facilitar que procura como fazer esse tipo de estilização rapidamente.&lt;/p&gt;
&lt;h3 id=&quot;declaração-de-objeto&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#declara%C3%A7%C3%A3o-de-objeto&quot; aria-label=&quot;declaração de objeto permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;D﻿eclaração de objeto&lt;/h3&gt;
&lt;p&gt;P﻿rimeiramente é necessário criar um objeto com as suas estilizações. É também importante adicionar o tipo: “React.CSSProperties” no objeto para tudo funcionar sem erro de tipagem. Exemplo:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const listStyle:React.CSSProperties = {
  listStyleType: &apos;circle&apos;,
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A﻿pós a declaração do objeto, basta adicionar dentro da tag a propriedade “style”:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt; &amp;#x3C;ul style={ listStyle }&gt;
  &amp;#x3C;li&gt;Primeiro item da lista&amp;#x3C;/li&gt;
  &amp;#x3C;li&gt;Ultimo item da lista&amp;#x3C;/li&gt;
 &amp;#x3C;/ul&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;V﻿iu como é fácil ?&lt;br&gt;
E﻿spero ter ajudado!&lt;/p&gt;
&lt;h2 id=&quot;dúvidas&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#d%C3%BAvidas&quot; aria-label=&quot;dúvidas permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Dúvidas?&lt;/h2&gt;
&lt;p&gt;Para qualquer dúvida, sugestões e comentários, lembre-se que esse blog é openSource e seu código é aberto e está &lt;a href=&quot;https://github.com/israelcena/siteblog&quot;&gt;disponível no meu github.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Além disso, você pode usar também a seção comentários aqui em baixo!&lt;/p&gt;
&lt;p&gt;Saudações, &lt;em&gt;Israel Cena&lt;/em&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Uma Função para retornar o menor número]]></title><description><![CDATA[Mais uma da série: Refatorando meu código, Math.min()]]></description><link>https://israelcena.com.br/posts/retornar-menor-numero</link><guid isPermaLink="false">https://israelcena.com.br/posts/retornar-menor-numero</guid><pubDate>Wed, 25 Oct 2023 17:43:47 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/media/retonarvalor.png&quot; alt=&quot;Imagem com a função para Retornar o menor valor&quot; title=&quot;Função para Retornar o menor valor Math.min()&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;problema&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#problema&quot; aria-label=&quot;problema permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;P﻿roblema&lt;/h2&gt;
&lt;h3 id=&quot;em-mais-um-dia-normal-de-trabalho-me-deparei-com-a-seguinte-situação&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#em-mais-um-dia-normal-de-trabalho-me-deparei-com-a-seguinte-situa%C3%A7%C3%A3o&quot; aria-label=&quot;em mais um dia normal de trabalho me deparei com a seguinte situação permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;E﻿m Mais um dia normal de trabalho, me deparei com a seguinte situação&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;U﻿m campo do tipo input no meu formulário, chamado &lt;strong&gt;valor considerado&lt;/strong&gt;, será preenchido automaticamente com um valor. Esse valor, sairá de uma lógica entre outros dois campos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Valor da mensalidade&lt;/strong&gt;, e&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Valor do teto&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;regra&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#regra&quot; aria-label=&quot;regra permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;R﻿egra:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Caso o valor do teto seja maior do que o valor da mensalidade, o campo “valor
considerado” será preenchido com o valor da mensalidade.&lt;/li&gt;
&lt;li&gt;Caso o valor do teto seja menor do que o valor da mensalidade, o campo “valor considerado” será preenchido com o valor do teto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;F﻿ácil! Eu pensei! &lt;/p&gt;
&lt;p&gt;L﻿ogo coloquei a mão na massa:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function retornaMenorValor (valorinformado , valorteto, resultado) {

    if( valorinformado &gt; valorteto) return  resultado = Number(valorteto);
    if( valorinformado &amp;#x3C; valorteto) return  resultado = Number(valorinformado);
    if( valorinformado == valorteto) return  resultado = Number(valorteto);
    
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;D﻿epois de fazer esse “Frankenstein”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;M﻿e perguntei&lt;/strong&gt;: Deve existir um jeito melhor de fazer isso, e existe, por isso criei esse post.&lt;/p&gt;
&lt;h4 id=&quot;mathmin&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#mathmin&quot; aria-label=&quot;mathmin permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Math.min()&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;M﻿e deparei esse método e me senti um idiota…&lt;/p&gt;
&lt;p&gt;M﻿inha nova função ficaria:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const retornaMenorValor = (valorinformado , valorteto) =&gt; Math.min(valorinformado , valorteto);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;S﻿im, tudo em apenas uma linha, e aí melhorando ainda mais a função, deixando ela livre para receber quantos valores quiser:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const retornaMenorValor = (...valores) =&gt; Math.min(...valores);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;D﻿essa forma, posso adicionar quantos valores quiser! &lt;/p&gt;
&lt;p&gt;﻿Gostou ? &lt;/p&gt;
&lt;p&gt;Comenta aí&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Explicando a Função Reduce() do JavaScript]]></title><description><![CDATA[Função nativa do JavaScript para reduzir um array.]]></description><link>https://israelcena.com.br/posts/javascript-reduce</link><guid isPermaLink="false">https://israelcena.com.br/posts/javascript-reduce</guid><pubDate>Tue, 24 Aug 2021 16:28:53 GMT</pubDate><content:encoded>&lt;h2 id=&quot;como-usar-a-função-reduce-do-javascript-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#como-usar-a-fun%C3%A7%C3%A3o-reduce-do-javascript-&quot; aria-label=&quot;como usar a função reduce do javascript  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Como usar a função reduce() do JavaScript ?&lt;/h2&gt;
&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;/media/javascript-reduce/reduce.png&quot; alt=&quot;reduce&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=tgiovqewvOM&quot;&gt;YouTube Vídeo&lt;/a&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;h2 id=&quot;intro&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#intro&quot; aria-label=&quot;intro permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Intro&lt;/h2&gt;
&lt;p&gt;O JavaScript tem diversas funções nativas para manipular arrays. Essas funções permitem que você crie coisas mais complexas sem precisar
de uma biblioteca, de um framework ou de “inventar a roda novamente”.
&lt;strong&gt;A função nativa chamada &lt;code&gt;reduce()&lt;/code&gt; que pode ser usada para reduzir um array.&lt;/strong&gt;
Vamos ver como ela funciona.&lt;/p&gt;
&lt;h2 id=&quot;explicando&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#explicando&quot; aria-label=&quot;explicando permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Explicando&lt;/h2&gt;
&lt;p&gt;Vamos usar o meu array clássico de 5 números para entender como funciona a função &lt;code&gt;reduce()&lt;/code&gt;.:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Usaremos, para chamar,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;numbers.reduce()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A função &lt;code&gt;reduce()&lt;/code&gt; espera receber dentro dela, como parâmetro, outra função.
&lt;br/&gt;Exemplo de uma função para aplicar:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function somaValores(acumulador, valorAtual) {
  return acumulador + valorAtual
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Essa função soma os valores usando o acumulador para armazenar temporariamente o resultado da soma entre os elementos do array representado
pelo parâmetro chamado valorAtual.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;aplicando-na-prática&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#aplicando-na-pr%C3%A1tica&quot; aria-label=&quot;aplicando na prática permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Aplicando na prática&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Inserindo essa nossa função criada como parâmetro na função &lt;code&gt;reduce()&lt;/code&gt; aplicada em nosso array, teremos:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

function somaValores(acumulador, valorAtual) {
  return acumulador + valorAtual
}

var total = numbers.reduce(somaValores)

console.log(total) // 15
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;15
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;aprofundando&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#aprofundando&quot; aria-label=&quot;aprofundando permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Aprofundando&lt;/h3&gt;
&lt;p&gt;A função &lt;code&gt;reduce()&lt;/code&gt; também aceita um segundo parâmetro, que é uma função ou um valor que será aplicado ao acumulador.
Lembrando que acumulador é o primeiro parâmetro passado na função usada para aplicar o &lt;code&gt;reduce()&lt;/code&gt; a um array.
&lt;br/&gt;Exemplo:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

function somaValores(acumulador, valorAtual) {
  return acumulador + valorAtual
}

var total = numbers.reduce(somaValores, 10)

console.log(total) // 25
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;25
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Na prática, não é comum criar uma função separada para usar o &lt;code&gt;reduce()&lt;/code&gt; e sim já criar uma arrow function dentro dos parâmetros,&lt;br/&gt;Exemplo:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

var total = numbers.reduce((acumulador, valorAtual) =&gt; {
  return acumulador + valorAtual
}, 10)

console.log(total) // 25
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;25
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;A função usada para trabalhar com o &lt;code&gt;reduce()&lt;/code&gt; é chamada de &lt;strong&gt;&lt;em&gt;“callback”&lt;/em&gt;&lt;/strong&gt;. Ela pode receber até 4 parâmetros. Um Acumulador, um valor e dois parâmetros opcionais.&lt;br/&gt;Exemplo:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

numbers.reduce(function (acumulador, valorAtual, index, array) {
  return acumulador + valorAtual
})
// 10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;10
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;“callback”&lt;/em&gt;&lt;/strong&gt; será invocada 5 vezes, com os argumentos e valores em cada chamada sendo (passando 0 para valor inicial de acumulador como segundo parâmetro):&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Acumulador&lt;/th&gt;
&lt;th&gt;valorAtual&lt;/th&gt;
&lt;th&gt;index&lt;/th&gt;
&lt;th&gt;array&lt;/th&gt;
&lt;th&gt;valor de retorno&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primeira Chamada&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;[1, 2, 3, 4, 5]&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Segunda Chamada&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;[1, 2, 3, 4, 5]&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terceira Chamada&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;[1, 2, 3, 4, 5]&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quarta Chamada&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;[1, 2, 3, 4, 5]&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quinta Chamada&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;[1, 2, 3, 4, 5]&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;valor retornado pelo reduce será o da última chamada à callback !&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;O &lt;code&gt;reduce()&lt;/code&gt; pode ser uma ferramenta usada para fazer coisas mais complexas, &lt;br/&gt; como:&lt;/p&gt;
&lt;h4 id=&quot;contando-valores-iguais-em-um-array-e-adiciona-los-em-um-objeto&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#contando-valores-iguais-em-um-array-e-adiciona-los-em-um-objeto&quot; aria-label=&quot;contando valores iguais em um array e adiciona los em um objeto permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Contando Valores iguais em um array e adiciona-los em um Objeto&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const nomes = [
  &apos;João&apos;,
  &apos;Maria&apos;,
  &apos;José&apos;,
  &apos;Joana&apos;,
  &apos;José&apos;,
  &apos;João&apos;,
  &apos;Maria&apos;,
  &apos;José&apos;,
  &apos;Joana&apos;,
  &apos;José&apos;
]

const quantidade = nomes.reduce((acumuladorDeNomes, nome) =&gt; {
  if (nome in acumuladorDeNomes) {
    acumuladorDeNomes[nome]++
  } else {
    acumuladorDeNomes[nome] = 1
  }
  return acumuladorDeNomes
}, {})

console.log(quantidade)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;{
  &quot;João&quot;: 2,
  &quot;Maria&quot;: 2,
  &quot;José&quot;: 4,
  &quot;Joana&quot;: 2,
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;recebendo-o-valor-total-de-dentro-de-um-objeto&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#recebendo-o-valor-total-de-dentro-de-um-objeto&quot; aria-label=&quot;recebendo o valor total de dentro de um objeto permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Recebendo o valor total de dentro de um objeto&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const store = [
  {
    product: &apos;Laptop&apos;,
    value: 3500,
    currency: &apos;BRL&apos;,
    count: 3
  },
  {
    product: &apos;Iphone 12&apos;,
    value: 15000,
    currency: &apos;BRL&apos;,
    count: 1
  },
  {
    product: &apos;Teclado Mecânico&apos;,
    value: 500,
    currency: &apos;BRL&apos;,
    count: 12
  }
]

const prevProfits = store.reduce((acc, item) =&gt; {
  return acc + item.value * item.count
}, 0)

console.log(prevProfits)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;31500
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#&quot; aria-label=&quot; permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;h2 id=&quot;referências&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#refer%C3%AAncias&quot; aria-label=&quot;referências permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Referências&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce&quot;&gt;MDN - Mozilla&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;dúvidas&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#d%C3%BAvidas&quot; aria-label=&quot;dúvidas permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Dúvidas?&lt;/h2&gt;
&lt;p&gt;Para qualquer dúvida, sugestões e comentários, lembre-se que esse blog é openSource e seu código é aberto e está &lt;a href=&quot;https://github.com/israelcena/siteblog&quot;&gt;disponível no meu github.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Além disso, você pode usar também a seção comentários aqui em baixo!&lt;/p&gt;
&lt;p&gt;Saudações, &lt;em&gt;Israel Cena&lt;/em&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Resolvendo Problemas de Lógica]]></title><description><![CDATA[Uma maneira fácil para resolver qualquer problema de lógica]]></description><link>https://israelcena.com.br/posts/resolvendo-problemas-de-logica</link><guid isPermaLink="false">https://israelcena.com.br/posts/resolvendo-problemas-de-logica</guid><pubDate>Wed, 11 Aug 2021 04:38:53 GMT</pubDate><content:encoded>&lt;h2 id=&quot;como-resolver-problemas-de-lógica-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#como-resolver-problemas-de-l%C3%B3gica-&quot; aria-label=&quot;como resolver problemas de lógica  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Como Resolver Problemas de Lógica ?&lt;/h2&gt;
&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;/media/resolvendo-problemas/cubo-magico.jpg&quot; alt=&quot;Cubo Mágico&quot;&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;h2 id=&quot;intro&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#intro&quot; aria-label=&quot;intro permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Intro&lt;/h2&gt;
&lt;p&gt;A resolução de problemas de lógica, no começo parecem impossíveis de resolver.&lt;br /&gt;
Porém com essa técnica que aprendi, parecem que alguns problemas ficam&lt;br /&gt; mais fáceis de organizar a lógica para resolvê-los&lt;/p&gt;
&lt;h2 id=&quot;antes-de-tudo&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#antes-de-tudo&quot; aria-label=&quot;antes de tudo permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Antes de tudo&lt;/h2&gt;
&lt;p&gt;É necessário ler com calma o problema, se possível em voz alta.&lt;br /&gt; Entender o que se pede é a parte mais importante.&lt;/p&gt;
&lt;h2 id=&quot;método-5qs&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#m%C3%A9todo-5qs&quot; aria-label=&quot;método 5qs permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Método 5Qs&lt;/h2&gt;
&lt;h3 id=&quot;esse-método-é-composto-por-5-questões&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#esse-m%C3%A9todo-%C3%A9-composto-por-5-quest%C3%B5es&quot; aria-label=&quot;esse método é composto por 5 questões permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Esse método é composto por 5 questões&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Quais são os dados de entrada necessários ?&lt;/li&gt;
&lt;li&gt;O que devo fazer com estes dados ?&lt;/li&gt;
&lt;li&gt;Quais são as restrições deste problema ?&lt;/li&gt;
&lt;li&gt;Qual é o resultado esperado ?&lt;/li&gt;
&lt;li&gt;Qual é sequência de passos para chegar ao resultado esperado (Algoritmo final)?&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;aplicando-o-método-a-um-problema&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#aplicando-o-m%C3%A9todo-a-um-problema&quot; aria-label=&quot;aplicando o método a um problema permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Aplicando o método a um problema&lt;/h3&gt;
&lt;h4 id=&quot;escreva-um-programa-que-ao-iniciar-gera-um-valor-aleatório-de-1-a-10-e-permite-que-o-usuário-chute-um-número-até-que-o-valor-aleatório-gerado-no-início-do-programa-seja-chutado-corretamentebr--o-programa-deve-informar-se-o-chute-foi-acima-abaixo-ou-igual-ao-valor-aleatório-gerado-no-início-do-programa&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#escreva-um-programa-que-ao-iniciar-gera-um-valor-aleat%C3%B3rio-de-1-a-10-e-permite-que-o-usu%C3%A1rio-chute-um-n%C3%BAmero-at%C3%A9-que-o-valor-aleat%C3%B3rio-gerado-no-in%C3%ADcio-do-programa-seja-chutado-corretamentebr--o-programa-deve-informar-se-o-chute-foi-acima-abaixo-ou-igual-ao-valor-aleat%C3%B3rio-gerado-no-in%C3%ADcio-do-programa&quot; aria-label=&quot;escreva um programa que ao iniciar gera um valor aleatório de 1 a 10 e permite que o usuário chute um número até que o valor aleatório gerado no início do programa seja chutado corretamentebr  o programa deve informar se o chute foi acima abaixo ou igual ao valor aleatório gerado no início do programa permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Escreva um programa que ao iniciar gera um valor aleatório de 1 a 10 e permite que o usuário “chute” um número até que o valor aleatório gerado no início do programa seja chutado corretamente.&lt;br /&gt; O programa deve informar se o chute foi acima, abaixo ou igual ao valor aleatório gerado no início do programa&lt;/h4&gt;
&lt;br/&gt;
&lt;p&gt;
1 - Quais são os dados de entrada necessários ?
&lt;p&gt;valorAleatorio = (1 a 10) &lt;br/&gt;&lt;/p&gt;
&lt;p&gt;valorUsuario = (1 a 10) &lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;2 - O que devo fazer com estes dados ?&lt;/p&gt;
&lt;p&gt;Comparar o valorAleatorio e o valorUsuario &lt;/p&gt;
&lt;p&gt;3 - Quais são as restrições deste problema ?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Os valores deveram ser entre 1 e 10&lt;/li&gt;
&lt;li&gt;O usuário deverá ser capaz de jogar quantas vezes quiser&lt;/li&gt;
&lt;li&gt;o programa não deve ser finalizado até que um valor seja chutado corretamente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;4 - Qual é o resultado esperado ?&lt;/p&gt;
&lt;p&gt;Retornar se a comparação está exata, caso não,
informar se o valor chutado foi maior,
menor ou igual ao valor aleatório gerado
no início do programa&lt;/p&gt;
&lt;p&gt;5 - Qual é sequência de passos para chegar ao resultado esperado (Algoritmo final)?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;O computador gerar um número aleatório&lt;/li&gt;
&lt;li&gt;Solicitar ao usuário que entre com um número&lt;/li&gt;
&lt;li&gt;Armazenar esse número&lt;/li&gt;
&lt;li&gt;Comparar esse número com o número aleatório gerado&lt;/li&gt;
&lt;li&gt;Retornar na tela se o número do usuário foi igual ao numero gerado&lt;/li&gt;
&lt;li&gt;Caso não seja o valor correto, retornar se foi acima ou abaixo do número esperado.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;resolva-qualquer-problema-de-lógica&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#resolva-qualquer-problema-de-l%C3%B3gica&quot; aria-label=&quot;resolva qualquer problema de lógica permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Resolva qualquer problema de lógica&lt;/h4&gt;
&lt;p&gt;Acredito que com esse método, qualquer problema possa ser resolvido. Agora vá e tente você mesmo!&lt;/p&gt;
&lt;h3 id=&quot;dúvidas&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#d%C3%BAvidas&quot; aria-label=&quot;dúvidas permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Dúvidas?&lt;/h3&gt;
&lt;p&gt;Para qualquer dúvida, sugestões e comentários, lembre-se que esse blog é openSource e seu código é aberto e está &lt;a href=&quot;https://github.com/israelcena/siteblog&quot;&gt;disponível no meu github.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Além disso, você pode usar também a seção comentários aqui em baixo!&lt;/p&gt;
&lt;p&gt;Saudações, &lt;em&gt;Israel Cena&lt;/em&gt;. &lt;/p&gt;</content:encoded></item><item><title><![CDATA[Explicando a Função forEach() do JavaScript]]></title><description><![CDATA[Função nativa do JavaScript para executar uma tarefa para cada item do array.]]></description><link>https://israelcena.com.br/posts/js-foreach</link><guid isPermaLink="false">https://israelcena.com.br/posts/js-foreach</guid><pubDate>Fri, 23 Jul 2021 10:43:07 GMT</pubDate><content:encoded>&lt;h2 id=&quot;o-que-faz-o-método-foreach-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#o-que-faz-o-m%C3%A9todo-foreach-&quot; aria-label=&quot;o que faz o método foreach  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;O que faz o método forEach ?&lt;/h2&gt;
&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;/media/forEach.png&quot; alt=&quot;forEach&quot;&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;h2 id=&quot;pequena-introdução&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#pequena-introdu%C3%A7%C3%A3o&quot; aria-label=&quot;pequena introdução permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Pequena Introdução&lt;/h2&gt;
&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;forEach&lt;/em&gt;&lt;/strong&gt;, executará uma determinada tarefa para cada item
&lt;em&gt;(ou seja, elementos armazenados)&lt;/em&gt; de um array. Essa tarefa, deverá ser determinada através de uma função.&lt;/p&gt;
&lt;h2 id=&quot;explicando&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#explicando&quot; aria-label=&quot;explicando permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Explicando&lt;/h2&gt;
&lt;p&gt;Em um array, por exemplo:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Usaremos, para chamar,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;numbers.forEach()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;“forEach()”&lt;/em&gt;&lt;/strong&gt; espera receber dentro dela, como parâmetro, outra função.
&lt;br/&gt;Exemplo:&lt;/p&gt;
&lt;h4 id=&quot;vamos-usar-essa-função-dentro-de-foreach&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#vamos-usar-essa-fun%C3%A7%C3%A3o-dentro-de-foreach&quot; aria-label=&quot;vamos usar essa função dentro de foreach permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Vamos usar essa função dentro de forEach()&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function consoleItem(item) {
  console.log(item)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Essa função faz um &lt;em&gt;console.log()&lt;/em&gt; ou seja, imprime no console, o que lhe foi passada como parâmetro &lt;em&gt;(dentro dos parênteses)&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;aplicando-na-prática&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#aplicando-na-pr%C3%A1tica&quot; aria-label=&quot;aplicando na prática permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Aplicando na prática&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Inserindo essa nossa função criada como parâmetro na função &lt;strong&gt;.forEach()&lt;/strong&gt; aplicada em nosso array, teremos:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

function consoleItem(item) {
  console.log(item)
}

numbers.forEach(consoleItem)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Executando esse script, no console, retorna:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1 2 3 4 5
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;aprofundando&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#aprofundando&quot; aria-label=&quot;aprofundando permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Aprofundando&lt;/h3&gt;
&lt;p&gt;Porém, o mais usual em javascript não é fazer uma função separada &lt;em&gt;somente&lt;/em&gt; para aplicar dentro de forEach() e sim dentro dela &lt;em&gt;(a função forEach)&lt;/em&gt; ja escrever a função como parâmetro:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

numbers.forEach(function consoleItem(item) {
  console.log(item)
})
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Quando executada, essa função exibe o mesmo resultado que a sua anterior.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;1 2 3 4 5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Podemos melhorar ainda mais nosso código usando &lt;strong&gt;&lt;em&gt;arrows functions&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

numbers.forEach(item =&gt; {
  console.log(item)
})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Simplificando a escrita, essa função também pode ser escrita da seguinte maneira:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers = [1, 2, 3, 4, 5]

numbers.forEach(item =&gt; console.log(item))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ela retornará:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1 2 3 4 5
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;dúvidas&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#d%C3%BAvidas&quot; aria-label=&quot;dúvidas permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Dúvidas?&lt;/h2&gt;
&lt;p&gt;Para qualquer dúvida, sugestões e comentários, lembre-se que esse blog é openSource e seu código é aberto e está &lt;a href=&quot;https://github.com/israelcena/siteblog&quot;&gt;disponível no meu github.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Além disso, você pode usar também a seção comentários aqui em baixo!&lt;/p&gt;
&lt;p&gt;Saudações, &lt;em&gt;Israel Cena&lt;/em&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Dicas rápidas 😈 do terminal do linux]]></title><description><![CDATA[Um tutorial rápido de comandos essenciais que você precisa saber após instalar o linux em seu pc.]]></description><link>https://israelcena.com.br/posts/dicas-rapidas-do-terminal-do-linux</link><guid isPermaLink="false">https://israelcena.com.br/posts/dicas-rapidas-do-terminal-do-linux</guid><pubDate>Sat, 11 Apr 2020 11:50:07 GMT</pubDate><content:encoded>&lt;h2 id=&quot;introdução&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#introdu%C3%A7%C3%A3o&quot; aria-label=&quot;introdução permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Umas Rapidinhas 😈😈 para você usar no seu dia a dia no terminal do linux&lt;/p&gt;
&lt;h2 id=&quot;rapidinhas-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#rapidinhas-&quot; aria-label=&quot;rapidinhas  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Rapidinhas 💡💡&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/media/faster.webp&quot; alt=&quot;git&quot; title=&quot;faster&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;dicas-rápidas&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#dicas-r%C3%A1pidas&quot; aria-label=&quot;dicas rápidas permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Dicas rápidas&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Perdeu-se em um diretório? Não sabe onde está? Digite &lt;code&gt;pwd&lt;/code&gt; para exibir seu diretório atual &lt;strong&gt;p&lt;/strong&gt;rint &lt;strong&gt;w&lt;/strong&gt;orking &lt;strong&gt;d&lt;/strong&gt;irectory.&lt;/li&gt;
&lt;li&gt;Deseja calcular seu espaço em disco rapidamente?  &lt;code&gt;df -h&lt;/code&gt; pode lhe dar uma verificação rápida.&lt;/li&gt;
&lt;li&gt;Deseja calcular rapidamente o tamanho de uma pasta ou arquivo?  &lt;code&gt;du -cksh target_name&lt;/code&gt; pode fazer exatamente isso. Deseja calcular o tamanho da pasta atual?  &lt;code&gt;du -cksh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Precisa marcar um arquivo executável? O &lt;code&gt;chmod +x filename&lt;/code&gt; pode fazer isso. Da próxima vez que você executar um arquivo, precisará executar e ele não será marcado como executável, agora você sabe como corrigi-lo.&lt;/li&gt;
&lt;li&gt;Deseja montar um iso como o Daemon-Tools no Windows? O Linux tem essa funcionalidade embutida. Simplesmente crie um diretório em algum lugar, digite /home/justin/isomount e emita o comando &lt;code&gt;mount -o loop /path/to/myisofile.iso /home/justin/isomount&lt;/code&gt; e o conteúdo será montado dentro essa pasta.&lt;/li&gt;
&lt;li&gt;Execute um comando antes, você precisa executá-lo novamente, mas não consegue se lembrar exatamente o que era exatamente? Digite o &lt;code&gt;history&lt;/code&gt; no terminal e ele imprimirá seu histórico de comandos. Deseja limpar seu histórico?  &lt;code&gt;history -c&lt;/code&gt; limpará as informações.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;fechamento&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#fechamento&quot; aria-label=&quot;fechamento permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Fechamento&lt;/h2&gt;
&lt;p&gt;Essas foram as dicas rápidas de hoje pessoal!
Espero que aproveitem.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Dicas Essenciais Para Seu Terminal do Linux 📚📚]]></title><description><![CDATA[Um tutorial de comandos essenciais que você precisa saber após instalar o linux em seu pc.]]></description><link>https://israelcena.com.br/posts/dicas-essenciais-para-seu-terminal-do-linux</link><guid isPermaLink="false">https://israelcena.com.br/posts/dicas-essenciais-para-seu-terminal-do-linux</guid><pubDate>Sat, 11 Apr 2020 11:43:07 GMT</pubDate><content:encoded>&lt;h2 id=&quot;introdução&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#introdu%C3%A7%C3%A3o&quot; aria-label=&quot;introdução permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Introdução&lt;/h2&gt;
&lt;p&gt;7 dicas essensiais para quem está começando a trabalhar com o shell do linux!
Use aproveite, repasse e abuse !&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/tips.jpg&quot; alt=&quot;git&quot; title=&quot;Tips&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;tips-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#tips-&quot; aria-label=&quot;tips  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Tips 💡💡&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Execução de arquivo -&gt; Então você deseja executar arquivos ou programas a partir do terminal? Verifique se o mesmo está marcado como executável. Caso contrário, consulte a Dica rápida nº 4 do post de &lt;a href=&quot;https://israelcena.com.br/posts/dicas-rapidas-do-terminal-do-linux&quot;&gt;dicas rápidas do terminal do linux&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Precisa executar um arquivo no diretório atual após ser marcado como executável? O operador &lt;code&gt;./&lt;/code&gt; pode executar o arquivo como um usuário normal, desde que você não precise de direitos de root. ./ significa literalmente “no diretório atual” para que não funcione em arquivos fora do diretório atual.&lt;/li&gt;
&lt;li&gt;Precisa executar um arquivo que não esteja no diretório atual? Você deve passar o caminho para o programa de execução adequado. Se é um programa python, é &lt;code&gt;python /path/to/file.py&lt;/code&gt; e se é um arquivo shell, é &lt;code&gt;sh /path/to/file&lt;/code&gt; como exemplo. É claro que existem outros programas, mas estes serão os mais comuns para iniciantes.&lt;/li&gt;
&lt;li&gt;Precisa executar um arquivo com direitos de root porque você recebeu uma operação não permitida? Prefixe o comando com &lt;code&gt;sudo&lt;/code&gt;. Assim, no exemplo acima, &lt;code&gt;sudo python /path/to/file&lt;/code&gt; executará o script com direitos de root.&lt;/li&gt;
&lt;li&gt;Precisa executar um programa GUI a partir do terminal? Basta digitar o nome do programa (diferencia maiúsculas de minúsculas!) E ele será iniciado. &lt;strong&gt;Isso tornará o terminal atual inutilizável.&lt;/strong&gt; Fechar o terminal enquanto o programa estiver aberto matará o programa. Uma maneira melhor é colocar o programa em segundo plano, usando program&lt;em&gt;name &amp;#x26;, em seguida, digitando a palavra exit no terminal para fechá-lo e manter o processo em execução.
ficando: `program&lt;/em&gt;name &amp;#x26; exit`.&lt;/li&gt;
&lt;li&gt;Precisa executar um programa GUI com direitos de root no terminal? Prefixe-o com &lt;em&gt;gksudo&lt;/em&gt; ou &lt;em&gt;gksu&lt;/em&gt; e não &lt;em&gt;sudo&lt;/em&gt;. &lt;strong&gt;Usar o sudo para iniciar aplicativos da GUI é um mau hábito e deve ser evitado!&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Não use o sudo simplesmente porque algo recebe “Operation not permitted”.&lt;/strong&gt; Lembre-se do que você está fazendo, pois você pode absolutamente &lt;strong&gt;destruir&lt;/strong&gt; os sistemas executando comandos no lugar errado com direitos de root. Este ponto não pode ser enfatizado o suficiente. Verifique se os arquivos são provenientes de fontes respeitáveis.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;fechamento&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#fechamento&quot; aria-label=&quot;fechamento permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Fechamento&lt;/h2&gt;
&lt;p&gt;Não deixe de ver também &lt;a href=&quot;https://israelcena.com.br/posts/dicas-rapidas-do-terminal-do-linux&quot;&gt;dicas rápidas do terminal do linux&lt;/a&gt;
é quase uma parte 2 desse post !
😃😃😃&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Tutorial Essencial de Shell de 15 Minutos 🕒]]></title><description><![CDATA[Um tutorial rápido de comandos essenciais que você precisa saber após instalar o linux em seu pc.]]></description><link>https://israelcena.com.br/posts/tutorial-essencial-de-shell-de-15-minutos</link><guid isPermaLink="false">https://israelcena.com.br/posts/tutorial-essencial-de-shell-de-15-minutos</guid><pubDate>Sat, 11 Apr 2020 10:43:07 GMT</pubDate><content:encoded>&lt;h2 id=&quot;shell&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#shell&quot; aria-label=&quot;shell permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Shell&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/media/shelllinux/shelllinux.jpeg&quot; alt=&quot;Shell&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;pequena-introdução&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#pequena-introdu%C3%A7%C3%A3o&quot; aria-label=&quot;pequena introdução permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Pequena Introdução&lt;/h2&gt;
&lt;p&gt;Há um momento em que até os usuários mais iniciantes se deparam com o terminal. Ele tem muitos nomes: terminal, shell, console, “prompt de comando”, mesmo como uma transferência daqueles familiarizados com o Windows. Muitas pessoas ficam assustadas com o terminal por algum motivo, então, este tutorial tentará fornecer os comandos mais básicos para permitir a navegação e as ações básicas do sistema a partir do conforto do seu teclado.&lt;/p&gt;
&lt;h2 id=&quot;antes-de-começar&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#antes-de-come%C3%A7ar&quot; aria-label=&quot;antes de começar permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Antes de começar&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Lembrando que esse &lt;a href=&quot;https://israelcena.com.br/category/Tutoriais&quot;&gt;Tutorial&lt;/a&gt; é apenas para usuários de Linux! Vale lembrar também que a versão do seu Linux pode ser diferente! Aqui estou usando o bash do Linux Mint19 MATE version.&lt;/li&gt;
&lt;li&gt;Existem diversas maneiras de iniciar o seu terminal Linux, não vou listar todas as opções disponíveis. Suponho que você possa encontrá-lo no menu ou clicando com o botão direito na área de trabalho.&lt;/li&gt;
&lt;li&gt;Já Existe aqui no blog um post sobre &lt;a href=&quot;https://israelcena.com.br/posts/10-fatos-sobre-o-shell-do-linux&quot;&gt;10 Fatos Sobre o Shell do Linux&lt;/a&gt; que vale apena você Ler também para aprender sobre o Shell do Linux.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;comandos&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#comandos&quot; aria-label=&quot;comandos permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Comandos&lt;/h2&gt;
&lt;h3 id=&quot;cd&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#cd&quot; aria-label=&quot;cd permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;cd&lt;/h3&gt;
&lt;p&gt;cd -&gt; Usado para navegar pelos diretórios. Você pode mover para qualquer local pelo caminho.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd&lt;/code&gt; Isso o levará de volta para sua $HOME (pasta local do seu usuário), é o mesmo que &lt;code&gt;cd ~&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd ..&lt;/code&gt; Isso levará de volta exatamente um diretório. Iniciar em /home/justin/Desktop, &lt;code&gt;cd ..&lt;/code&gt; me colocará em /home/justin. E isso pode ser expandido, &lt;code&gt;cd ../../&lt;/code&gt; a partir da localização da Desktop, em vez disso, moverá-me 2 pastas para trás, da minha Desktop para /home.
&lt;code&gt;cd foldername/&lt;/code&gt; Isto irá avançar para a pasta especificada na sua pasta atual. Tome nota do prefixo ausente / é uma omissão importante. se eu estiver em /home/justin e quiser acessar o Desktop, devo digitar &lt;code&gt;cd Desktop/&lt;/code&gt; sem o / antes do Desktop. Digitar / antes de nos colocar na raiz do sistema de arquivos, que está incorreto.
cd /some/other/path Isso o levará ao caminho da pasta especificada, supondo que ele exista exatamente como digitado. Não esqueça a conclusão da guia! Leia Até o final!&lt;/p&gt;
&lt;h3 id=&quot;ls&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#ls&quot; aria-label=&quot;ls permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ls&lt;/h3&gt;
&lt;p&gt;ls -&gt; Usado para listar o conteúdo da pasta. Você pode ver muitos tipos de atributos de arquivo e pasta.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls&lt;/code&gt; Por si só, ls simplesmente lista todos os seus arquivos na pasta atual.
&lt;code&gt;ls -l&lt;/code&gt; Fornece um formato de listagem mais longo, incluindo proprietários, permissões, tamanho e data de modificação.
&lt;code&gt;ls -a&lt;/code&gt; Exibe arquivos e pastas ocultos, bem como a listagem normal.
&lt;code&gt;ls -al&lt;/code&gt; Combine opções para exibir arquivos ocultos e no formato longo.
&lt;code&gt;ls -h&lt;/code&gt; Mostra os tamanhos dos arquivos em formato legível por humanos (K, M, Gbyte) em vez de bytes.
Você pode exibir arquivos em diretórios em que você não está. Se estou em /home/justin/Desktop e quero exibir um arquivo em /home/justin, posso fazer &lt;code&gt;ls ../&lt;/code&gt; listar arquivos de um diretório (e não precisa voltar para fazer isso.)&lt;/p&gt;
&lt;h3 id=&quot;cp&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#cp&quot; aria-label=&quot;cp permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;cp&lt;/h3&gt;
&lt;p&gt;cp -&gt; Copiar arquivos&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cp file /path/to/folder&lt;/code&gt; Copia o arquivo “file” do local atual ou especificado para o caminho especificado.
&lt;code&gt;cp -r folder /path/to/folder&lt;/code&gt; Copia recursivamente o conteúdo da pasta para outra pasta.
&lt;code&gt;cp *.extension /path/to/folder&lt;/code&gt; Copia os arquivos correspondentes à extensão especificada para a nova pasta. Para copiar todos os arquivos .doc, ele se torna &lt;code&gt;cp *.doc /path/to/folder&lt;/code&gt; e a pasta deve existir.
&lt;code&gt;cp name* /path/to/folder&lt;/code&gt; Copia todos os arquivos que começam com nome ‘name’ na pasta especificada.
Para copiar todos os arquivos começando com example, ele se torna &lt;code&gt;cp example* /path/to/folder&lt;/code&gt; e a pasta deve existir.&lt;/p&gt;
&lt;h3 id=&quot;mv&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#mv&quot; aria-label=&quot;mv permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;mv&lt;/h3&gt;
&lt;p&gt;mv -&gt; Mover arquivos&lt;/p&gt;
&lt;p&gt;A sintaxe de mv é semelhante ao exemplo acima. Vale lembrar que o mv não aceita o sinalizador -r, pois a movimentação de uma pasta também move seu conteúdo. A sintaxe não é exata em todas as instâncias, mas funciona com os exemplos acima. Consulte suas páginas de &lt;strong&gt;&lt;a href=&quot;https://www.gnu.org/software/bash/manual/bash.pdf&quot;&gt;manual&lt;/a&gt;&lt;/strong&gt; original do bash para mais detalhes.&lt;/p&gt;
&lt;h3 id=&quot;rm&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#rm&quot; aria-label=&quot;rm permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;rm&lt;/h3&gt;
&lt;p&gt;rm -&gt; Remover arquivos&lt;/p&gt;
&lt;p&gt;Para todos os efeitos, a remoção de arquivos via rm é permanente. &lt;strong&gt;Ele não usa a lixeira.&lt;/strong&gt; Use com cuidado e verifique se você está excluindo explicitamente o que deseja, não o que pensa que deseja.
&lt;code&gt;arquivo rm&lt;/code&gt; Remova o arquivo especificado do sistema.
&lt;code&gt;pasta rm -r&lt;/code&gt; Remova a pasta especificada do sistema;
&lt;code&gt;pasta rm -rf&lt;/code&gt; Remove a pasta especificada com força do sistema. Este comando pode danificar severamente sua configuração se usado incorretamente, pois não evitará que algo crítico esteja sendo excluído. Se você precisar usar isso, as chances são de que algo mais está quebrado ou ocorreu um erro. Isso deve ser usado apenas como um método absoluto de &lt;strong&gt;último recurso e não é recomendado&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;nano&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#nano&quot; aria-label=&quot;nano permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;nano&lt;/h3&gt;
&lt;p&gt;nano -&gt; editor de texto completo da linha de comando&lt;/p&gt;
&lt;p&gt;Pode-se editar arquivos usando o nano em um terminal para fazer arquivos rápidos e sujos até configurações completas. É útil, mas lembre-se de que ele lida com arquivos de texto sem formatação e arquivos de programação, coisas como documentos do MS Word não abrem corretamente!
Se um arquivo pertence à raiz, ele não é editável como um usuário normal.
O nano deve ser prefixado com sudo para salvar as alterações. Caso contrário, ele será aberto no modo somente leitura.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nano newfile.whatever&lt;/code&gt; O Nano cria um novo arquivo com o nome especificado (newfile.whatever) e o abre para edição.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nano existing_file&lt;/code&gt; O Nano abre o arquivo existente para edição.&lt;/p&gt;
&lt;h4 id=&quot;de-dentro-do-nano&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#de-dentro-do-nano&quot; aria-label=&quot;de dentro do nano permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;De dentro do nano&lt;/h4&gt;
&lt;p&gt;Salve o arquivo usando a combinação de teclas &lt;strong&gt;ctrl + o&lt;/strong&gt; e altere o nome ou pressione enter para manter o mesmo nome. Isso salvará o arquivo.
Saia do nano usando a combinação de teclas &lt;strong&gt;ctrl + x&lt;/strong&gt;. Se você tiver alterações não salvas, ele perguntará se você deseja salvar.&lt;/p&gt;
&lt;h3 id=&quot;mkdir&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#mkdir&quot; aria-label=&quot;mkdir permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;mkdir&lt;/h3&gt;
&lt;p&gt;mkdir -&gt; Criar diretórios&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mkdir nome_da_pasta&lt;/code&gt; Cria a pasta com o nome especificado
&lt;code&gt;mkdir -p /caminho/para/pasta/nome&lt;/code&gt; Cria cada pasta conforme necessário. Para criar a pasta /home/justin/newfolder/2ndfolder, e somente /home/justin existe, o uso do mkdir -p tornará os diretórios newfolder e 2ndfolder.&lt;/p&gt;
&lt;h3 id=&quot;ps&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#ps&quot; aria-label=&quot;ps permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ps&lt;/h3&gt;
&lt;p&gt;ps -&gt; Listar processos&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ps aux&lt;/code&gt; Listar todos os processos detalhadamente em execução no sistema, incluindo usuário, ID do processo (PID) e nome do processo. Usando isso, é possível visualizar sua lista de processos e, se necessário, eliminar processos desnecessários ou paralisados.&lt;/p&gt;
&lt;h3 id=&quot;kill--killall--xkill&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#kill--killall--xkill&quot; aria-label=&quot;kill  killall  xkill permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;kill / killall / xkill&lt;/h3&gt;
&lt;p&gt;kill / killall / xkill -&gt; Mate processos ofensivos.&lt;/p&gt;
&lt;h4 id=&quot;kill&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#kill&quot; aria-label=&quot;kill permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;kill&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;kill PID&lt;/code&gt; PID é um número que faz referência ao processo. Deve-se obter o PID de um comando como ps aux. Se um processo se recusar a morrer, pode-se especificar, alternativamente, &lt;code&gt;kill -9 PID&lt;/code&gt;, que deve encerrar o processo por qualquer meio, mesmo de maneira forçada ou se isso atrapalha o sistema.&lt;/p&gt;
&lt;h4 id=&quot;killall&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#killall&quot; aria-label=&quot;killall permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;killall&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;killall nomedoprograma&lt;/code&gt; Killall mata &lt;em&gt;nomedoprograma&lt;/em&gt; todas as instâncias do referido programa. Se houver, por exemplo, 3 sessões do firefox abertas, o &lt;code&gt;killall firefox&lt;/code&gt; fará exatamente isso; mate todas as sessões do firefox. O kill iria simplesmente pegar o PID especificado do processo do firefox que você deseja matar e matar apenas esse.&lt;/p&gt;
&lt;h4 id=&quot;xkill&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#xkill&quot; aria-label=&quot;xkill permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;xkill&lt;/h4&gt;
&lt;p&gt;O xkill é uma maneira da GUI de clicar e matar o processo. Digitar &lt;code&gt;xkill&lt;/code&gt; deve apresentar um ícone de caveira (ou um X em algumas versões) e a próxima janela clicada será eliminada.&lt;/p&gt;
&lt;h3 id=&quot;pipes-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#pipes-&quot; aria-label=&quot;pipes  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Pipes ”|”&lt;/h3&gt;
&lt;p&gt;Pipes -&gt; A coisa mais útil que você aprenderá no *NIX (Unix, Linux…). Redirecionando a saída de um programa para outra entrada.&lt;/p&gt;
&lt;p&gt;Pipes são representados pela ‘barra reta’, também conhecida como ’| ‘.
É uma chave raramente usada no Windows, geralmente encontrada na tecla barra invertida.
Eles são usados ​​para vincular comandos. As tubulações pegam a saída de um comando e a encaminham para ser usada como entrada para um segundo comando encadeado.
Consulte mais recursos online com informações sobre pipes e seu uso, pois existem volumes.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Quero lhe incentivar a pesquisar mais também!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;-e-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#-e-&quot; aria-label=&quot; e  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&gt; e &gt;&gt;&lt;/h3&gt;
&lt;p&gt;\ &gt; e &gt;&gt; redirecionadores -&gt; Enviar a saída para um arquivo em vez do terminal.&lt;/p&gt;
&lt;p&gt;\ &gt; é usado para &lt;strong&gt;substituir&lt;/strong&gt; o conteúdo dos arquivos existentes no momento e substituí-lo pela saída do novo comando.
\ &gt;&gt; é usado para &lt;strong&gt;acrescentar&lt;/strong&gt; informações aos arquivos existentes no momento. Isso é útil para o log.
Exemplo: &lt;code&gt;ps aux &gt; processes.log&lt;/code&gt; Envia a saída de &lt;em&gt;ps aux&lt;/em&gt; para o arquivo &lt;em&gt;process.log&lt;/em&gt; para visualizar a saída do comando em um editor de texto e substitui o conteúdo atual do arquivo.&lt;/p&gt;
&lt;h3 id=&quot;tee&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#tee&quot; aria-label=&quot;tee permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;tee&lt;/h3&gt;
&lt;p&gt;tee -&gt; Enviar saída para um arquivo e para o terminal&lt;/p&gt;
&lt;p&gt;tee é usado em conjunto com um ’| ‘para pegar a saída do comando e enviá-la para outro lugar. Isso é útil se houver erros que voam pela tela antes de você poder lê-los, dessa forma, o que quer que esteja na tela também é capturado em um arquivo.
Exemplo: &lt;code&gt;dmesg | tee boot.txt&lt;/code&gt; executaria o comando &lt;em&gt;dmesg&lt;/em&gt;, que mostra as informações iniciais de inicialização e o ’ | ‘envia a saída do dmesg para o tee , que faz seu trabalho enviando-o ao terminal e ao arquivo de log boot.txt.&lt;/p&gt;
&lt;h2 id=&quot;conclusão&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#conclus%C3%A3o&quot; aria-label=&quot;conclusão permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Conclusão&lt;/h2&gt;
&lt;p&gt;O Bash do terminal do linux é muito útil para diversos recursos e basta você praticar cada um que com um tempo você estará habituado com ele.&lt;/p&gt;
&lt;p&gt;Não deixe de conferir o meu outro post sobre Bash do linux &lt;a href=&quot;https://israelcena.com.br/posts/dicas-essenciais-para-seu-terminal-do-linu&quot;&gt;Dicas Essencial Para Seu Terminal do Linux&lt;/a&gt;
que é como uma parte 2 desse tutorial!&lt;/p&gt;
&lt;p&gt;Para dicas rápidas acesse &lt;a href=&quot;https://israelcena.com.br/posts/dicas-rapidas-do-terminal-do-linux&quot;&gt;Dicas rápidas do terminal do linux&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[10 Fatos Sobre o Shell do Linux 😲]]></title><description><![CDATA[Aqueles fatos que os iniciantes em Linux não esperavam.]]></description><link>https://israelcena.com.br/posts/10-fatos-sobre-o-shell-do-linux</link><guid isPermaLink="false">https://israelcena.com.br/posts/10-fatos-sobre-o-shell-do-linux</guid><pubDate>Sat, 11 Apr 2020 08:43:07 GMT</pubDate><content:encoded>&lt;h2 id=&quot;fatos&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#fatos&quot; aria-label=&quot;fatos permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Fatos&lt;/h2&gt;
&lt;p&gt;Para iniciantes em Linux o ”&lt;em&gt;Shell do linux&lt;/em&gt;” é uma tela preta muito complicada de operar!
Mas, quando você começa a ler e pesquisar sobre ele, você acaba achando fácil e mais rápido usá-lo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/shelllinux/surprise.jpeg&quot; alt=&quot;Surprise&quot;&gt;&lt;/p&gt;
&lt;p&gt;Espero que com essa lista você aprenda e use o Shell do Linux&lt;/p&gt;
&lt;h2 id=&quot;vamos-aos-fatos&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#vamos-aos-fatos&quot; aria-label=&quot;vamos aos fatos permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Vamos Aos fatos&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Você pode fazer quase tudo em um terminal, o que também faria a partir de uma interface GUI.&lt;/li&gt;
&lt;li&gt;A maioria dos comandos foi projetada primeiro para funcionar no terminal e, em seguida, uma GUI colocada em cima deles. É por isso que algumas &lt;a href=&quot;https://pt.wikipedia.org/wiki/Interface_gr%C3%A1fica_do_utilizador&quot;&gt;GUIs&lt;/a&gt; podem parecer desajeitadas.&lt;/li&gt;
&lt;li&gt;O local padrão para o seu terminal abrir no menu está na sua pasta pessoal, também conhecida como ~&lt;/li&gt;
&lt;li&gt;Seu diretório atual pode ser escrito pelo . &lt;em&gt;“Ponto”&lt;/em&gt;. A maioria dos comandos, quando atuam na seleção de pasta atual, você digita.&lt;/li&gt;
&lt;li&gt;Comandos, locais e arquivos &lt;strong&gt;DIFERENCIAM&lt;/strong&gt; maiúsculas de minúsculas. / home não é o mesmo que / HOME ou / Home.&lt;/li&gt;
&lt;li&gt;Use a tecla Tab para completar os nomes dos arquivos. Se você tiver um nome de arquivo longo intitulado, por exemplo, &lt;em&gt;driver-128947232jaseu.sh&lt;/em&gt;, basta digitar dri e pressionar a tecla Tab que preencherá o restante, desde que você não tenha dois nomes começando com “dri” e, se tiver, adicione outro caractere para torná-lo “driv” e tente novamente.&lt;/li&gt;
&lt;li&gt;Quase todo comando pode ser lido na íntegra usando a página de manual ou digitando -h ou —help após escrever o comando inicial. Essa sintaxe é: &lt;code&gt;man command_name, command_name -h ou command_name --help.&lt;/code&gt;
Decore! man de Manual. Para obter ainda mais informações, você pode usar as informações . É possível procurar um comando usando as informações &lt;em&gt;command_name&lt;/em&gt;. Para a maioria desses comandos que fazem parte do pacote &lt;em&gt;coreutils&lt;/em&gt;, também é possível encontrar informações usando a chamada &lt;code&gt;info coreutils command_name&lt;/code&gt; em que &lt;em&gt;command_name&lt;/em&gt; é substituído pelo comando procurado.&lt;/li&gt;
&lt;li&gt;Quase todo comando também pode exibir explicitamente o que está acontecendo. Isso é feito geralmente pelo &lt;em&gt;-v ou —verbose&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Você pode especificar vários sinalizadores de comando para um comando de cada vez para obter mais informações &lt;em&gt;(consulte por exemplo ls -al)&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Os nomes dos comandos nem sempre são completos devido às limitações de espaço nos velhos tempos do &lt;em&gt;Unix&lt;/em&gt;, eles foram encurtados pois antigamente 1mb era muito espaço.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eu sei que após ler esse post você testou todos os comandos em seu terminal e aprendeu que ele não é tão difícil assim!&lt;/p&gt;
&lt;p&gt;Dúvidas? Críticas? Conselhos?
Deixe tudo nos comentários !&lt;/p&gt;
&lt;p&gt;💁‍♂ Isso é tudo Pessoal!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Hello World]]></title><description><![CDATA[Esse é o meu primeiro post no meu blog]]></description><link>https://israelcena.com.br/posts/hello-world</link><guid isPermaLink="false">https://israelcena.com.br/posts/hello-world</guid><pubDate>Fri, 10 Apr 2020 16:21:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;esse-é-o-meu-primeiro-post-no-meu-blog-&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#esse-%C3%A9-o-meu-primeiro-post-no-meu-blog-&quot; aria-label=&quot;esse é o meu primeiro post no meu blog  permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Esse é o meu primeiro post no meu blog 🥇&lt;/h2&gt;
&lt;p&gt;Então como todo bom desenvolvedor eu deixei o seu título assim — “Hello World”.&lt;/p&gt;
&lt;p&gt;Vou aproveitar a deixa para me apresentar 😁 😁 😁&lt;/p&gt;
&lt;p&gt;Meu nome é Israel e trabalho como desenvolvedor desde 2011 (na época eu era o ‘menino da informática).&lt;/p&gt;
&lt;p&gt;Também sou formado em &lt;strong&gt;Marketing,&lt;/strong&gt; assim sou um profissional 100% especializado em desenvolvimento de produtos.&lt;/p&gt;
&lt;p&gt;Sou uma pessoa apaixonada por tecnologia desde pequeno. Acredito que com bastante trabalho e fé tudo pode ser possível.&lt;/p&gt;
&lt;p&gt;Atualmente trabalho como &lt;strong&gt;Freelancer&lt;/strong&gt;, escrevo artigos e dicas aqui no meu blog.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/israelcena.jpg&quot; alt=&quot;IsraelCena&quot;&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Autoplay Twitter videos with sound]]></title><description><![CDATA[It might be annoying scroll Twitter videos and click on each to hear sound. Here is the quick hack. It will unmute video when you hover and mute again when your cursor is out video.]]></description><link>https://israelcena.com.br/posts/twitter-videos-with-sound</link><guid isPermaLink="false">https://israelcena.com.br/posts/twitter-videos-with-sound</guid><pubDate>Fri, 31 Jan 2020 00:40:32 GMT</pubDate><content:encoded>&lt;p&gt;It might be annoying scroll Twitter videos and click on each to hear sound. Here is the quick hack. It will unmute video when you hover and mute again when your cursor is out video.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href=&quot;https://chrome.google.com/webstore/detail/custom-javascript-for-web/poakhlngfciodnhlhhgnaaelnpjljija&quot;&gt;Custom JavaScript for websites&lt;/a&gt; plugin&lt;/li&gt;
&lt;li&gt;Go to &lt;a href=&quot;https://twitter.com/&quot;&gt;twitter.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open Custom JavaScript for websites plugin and paste this code:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;window.addEventListener(&apos;mouseover&apos;, ({ target }) =&gt; {
  if (target.tagName === &apos;VIDEO&apos;) {
    target.muted = false
  }
})

window.addEventListener(&apos;mouseout&apos;, ({ target }) =&gt; {
  if (target.tagName === &apos;VIDEO&apos;) {
    target.muted = true
  }
})
&lt;/code&gt;&lt;/pre&gt;</content:encoded></item></channel></rss>