<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jonathan Diaz</title>
    <description>The latest articles on DEV Community by Jonathan Diaz (@tath4n).</description>
    <link>https://dev.to/tath4n</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F828189%2F2802b4cd-0267-47ad-b63b-f3232f4df9ae.jpeg</url>
      <title>DEV Community: Jonathan Diaz</title>
      <link>https://dev.to/tath4n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tath4n"/>
    <language>en</language>
    <item>
      <title>Como crear tu primer script en bash</title>
      <dc:creator>Jonathan Diaz</dc:creator>
      <pubDate>Thu, 10 Mar 2022 04:33:04 +0000</pubDate>
      <link>https://dev.to/tath4n/como-crear-tu-primer-script-en-bash-2e1d</link>
      <guid>https://dev.to/tath4n/como-crear-tu-primer-script-en-bash-2e1d</guid>
      <description>&lt;p&gt;Linux es increíble, aun recuerdo la primera vez que vi la terminal no entendía nada, pero poco a poco fui amándola&lt;/p&gt;

&lt;h3&gt;
  
  
  Empecemos creando nuestro archivo
&lt;/h3&gt;

&lt;p&gt;Primero me ubicare en mi directorio personal con el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home/tathan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;luego creare un directorio donde guardare todos mis scripts en bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;scripts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;seguido ingresare a mi nuevo directorio scripts&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;scripts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ya teniendo mi directorio de scripts, creare con touch un archivo con el nombre de &lt;em&gt;hola_mundo.sh&lt;/em&gt; y a su vez lo abriré, para esto utilizare el editor vim&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;hola_mundo.sh &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; vim hola_mundo.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En la primera línea indicaremos que se comporte como un archivo bash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ya teniendo esto podremos empezar a escribir la lógica de nuestro script, como es nuestro primer script bash vamos hacer algo sencillo como indicar que cuando llamemos a nuestro script nos retorne &lt;em&gt;Hola mundo, este es mi primer script en bash&lt;/em&gt;, entonces nuestra segunda línea seria&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'Hola mundo, este es mi primer script en bash'&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Guardaremos y nuestro script quedaría de la siguiente manera&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'Hola mundo, este es mi primer script en bash'&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ahora para ejecutarlo solo debemos correr el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sh hola_mundo.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2MaA4mKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/li2058004m7ekjhh5zz5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2MaA4mKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/li2058004m7ekjhh5zz5.png" alt="Image description" width="455" height="70"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ya hicimos nuestro primer script en bash y lo podemos ejecutar desde nuestra carpeta de scripts pero que sucede si nos salimos de nuestra carpeta y ejecutamos nuestro script?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sh: 0: can&lt;span class="s1"&gt;'t open hola_mundo.sh
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para poder utilizar nuestro script desde cualquier parte de nuestra maquina tenemos que hacer lo siguiente&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos a copiar nuestro script en la carpeta

&lt;code&gt;/usr/bin&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo cp&lt;/span&gt; /home/tath4n/scripts/hola_mundo.sh /usr/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Luego debemos darle permisos de ejecución a nuestro script
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;o+c /usr/bin/hola_mundo.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;con esto ya podemos ejecutar nuestro script desde cual quier parte de nuestra maquina
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home/tath4n/Documents &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sh hola_mundo.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;o también lo podemos ejecutar de la siguiente manera&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hola_mundo.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;para el ejemplo hicimos algo muy sencillo pero se imaginan tener un script para automatizar una tarea muy recurrente que realicemos y que nos tome mucho tiempo, lo ejecutaríamos cuando deseemos y nos ahorraríamos ese tiempo para realizar otras labores.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como por ejemplo crear múltiples usuarios
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nv"&gt;userfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/tath4n/userlist 
&lt;span class="nv"&gt;username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /tmp/userlist | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;'A-Z'&lt;/span&gt;  &lt;span class="s1"&gt;'a-z'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$username&lt;/span&gt;@123

&lt;span class="k"&gt;for &lt;/span&gt;user &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;$username&lt;/span&gt;
&lt;span class="k"&gt;do
       &lt;/span&gt;useradd &lt;span class="nv"&gt;$user&lt;/span&gt;
       &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$password&lt;/span&gt; | passwd &lt;span class="nt"&gt;--stdin&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;
&lt;span class="k"&gt;done

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt; /tmp/userlist&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; usuarios creados"&lt;/span&gt; 
&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt; /tmp userlist&lt;span class="si"&gt;)&lt;/span&gt; /etc/passwd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;hasta la proxima...&lt;/p&gt;

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