<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SIMOTRONE WEB PAGE &#187; bash</title>
	<atom:link href="http://www.simotrone.it/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simotrone.it</link>
	<description>Simotrone is back!</description>
	<lastBuildDate>Fri, 30 Jul 2010 05:47:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bash brace expansion</title>
		<link>http://www.simotrone.it/2009/11/24/bash-brace-expansion/</link>
		<comments>http://www.simotrone.it/2009/11/24/bash-brace-expansion/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 06:50:30 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[brace expansion]]></category>
		<category><![CDATA[seq]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[trucchi]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2433</guid>
		<description><![CDATA[Di recente mi sono imbattuto in un problemino minchione: avere una sequenza di numeri in ordine inverso (cioè non da 1 a 20 ma da 20 a 1). Fin qui tutto easy.
Di solito se devo avere una sequenza uso appunto seq:

$ seq 1 10

Che stampa appunto i numeri da 1 a 10.
Il problema è che [...]]]></description>
			<content:encoded><![CDATA[<p>Di recente mi sono imbattuto in un problemino minchione: avere una sequenza di numeri in ordine inverso (cioè non da 1 a 20 ma da 20 a 1). Fin qui tutto easy.</p>
<p>Di solito se devo avere una sequenza uso appunto <a href="http://linux.die.net/man/1/seq">seq</a>:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">$ <span class="kw2">seq</span> <span class="nu0">1</span> <span class="nu0">10</span></div>
</div>
<p>Che stampa appunto i numeri da 1 a 10.<br />
Il problema è che il contrario non mi funzionava.</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">$ <span class="kw2">seq</span> <span class="nu0">10</span> <span class="nu0">1</span></div>
</div>
<p>Nada.</p>
<p>Comunque, mentre cogitavo su questo e quello, e mentre mischiavo seq con sort mi sono imbattuto in una finezza bash che non conoscevo: la <a href="http://snap.nlc.dcccd.edu/reference/bash1/features_11.html">brace expansion</a>.</p>
<p>Le brace expansion permettono di creare un output multiplo:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ <span class="kw3">echo</span> <span class="br0">&#123;</span>Zio,Gastone<span class="br0">&#125;</span>Paperone<br />
ZioPaperone GastonePaperone</div>
</div>
<p>In effetti anche:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ <span class="kw3">echo</span> <span class="br0">&#123;</span><span class="nu0">20</span>..<span class="nu0">1</span><span class="br0">&#125;</span><br />
<span class="nu0">20</span> <span class="nu0">19</span> <span class="nu0">18</span> <span class="nu0">17</span> <span class="nu0">16</span> <span class="nu0">15</span> <span class="nu0">14</span> <span class="nu0">13</span> <span class="nu0">12</span> <span class="nu0">11</span> <span class="nu0">10</span> <span class="nu0">9</span> <span class="nu0">8</span> <span class="nu0">7</span> <span class="nu0">6</span> <span class="nu0">5</span> <span class="nu0">4</span> <span class="nu0">3</span> <span class="nu0">2</span> <span class="nu0">1</span></div>
</div>
<p>e</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ <span class="kw3">echo</span> <span class="nu0">0</span><span class="br0">&#123;</span><span class="nu0">1</span>..<span class="nu0">20</span><span class="br0">&#125;</span><br />
<span class="nu0">01</span> <span class="nu0">02</span> <span class="nu0">03</span> <span class="nu0">04</span> <span class="nu0">05</span> <span class="nu0">06</span> <span class="nu0">07</span> <span class="nu0">08</span> <span class="nu0">09</span> <span class="nu0">010</span> <span class="nu0">011</span> <span class="nu0">012</span> <span class="nu0">013</span> <span class="nu0">014</span> <span class="nu0">015</span> <span class="nu0">016</span> <span class="nu0">017</span> <span class="nu0">018</span> <span class="nu0">019</span> <span class="nu0">020</span></div>
</div>
<p>Inoltre si possono creare più concatenazioni:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ <span class="kw1">for</span> stringa <span class="kw1">in</span> <span class="br0">&#123;</span>A..C<span class="br0">&#125;</span><span class="br0">&#123;</span><span class="nu0">1</span>..<span class="nu0">3</span><span class="br0">&#125;</span><span class="br0">&#123;</span>x..z<span class="br0">&#125;</span>; <span class="kw1">do</span> <span class="kw3">echo</span> -n <span class="st0">&quot;$stringa &quot;</span>; <span class="kw1">done</span><br />
A1x A1y A1z A2x A2y A2z A3x A3y A3z B1x B1y B1z B2x B2y B2z B3x B3y B3z C1x C1y C1z C2x C2y C2z C3x C3y C3z</div>
</div>
<p>Perchè possono risultare comode?<br />
Beh, ad esempio, come spiegato nella pagina linkata, per questo:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ <span class="kw2">ls</span> /usr/lib/<span class="kw2">perl</span><span class="br0">&#123;</span><span class="nu0">5</span>,/<span class="nu0">5.10</span><span class="br0">&#125;</span>/Data/<br />
/usr/lib/<span class="kw2">perl</span>/<span class="nu0">5.10</span>/Data/:<br />
Dumper.pm</p>
<p>/usr/lib/perl5/Data/:<br />
Alias.pm</div>
</div>
<p>o questo</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ <span class="kw2">mkdir</span> -v tmp/<span class="br0">&#123;</span><span class="kw3">test</span>,a,z<span class="br0">&#125;</span><br />
<span class="kw2">mkdir</span>: created directory <span class="st0">&#8216;tmp/test&#8217;</span><br />
<span class="kw2">mkdir</span>: created directory <span class="st0">&#8216;tmp/a&#8217;</span><br />
<span class="kw2">mkdir</span>: created directory <span class="st0">&#8216;tmp/z&#8217;</span></p>
<p>sim@idrogeno:~$ <span class="kw2">rmdir</span> -v tmp/<span class="br0">&#123;</span><span class="kw3">test</span>,a,z<span class="br0">&#125;</span><br />
<span class="kw2">rmdir</span>: removing directory, <span class="st0">&#8216;tmp/test&#8217;</span><br />
<span class="kw2">rmdir</span>: removing directory, <span class="st0">&#8216;tmp/a&#8217;</span><br />
<span class="kw2">rmdir</span>: removing directory, <span class="st0">&#8216;tmp/z&#8217;</span></div>
</div>
<p> <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><span id="more-2433"></span><br />
Per la cronaca, seq &#8220;alla rovescia&#8221; non mi funzionava perchè non avevo letto bene il manuale.<br />
La sintassi di seq è semplice: </p>
<pre>$ seq [OPTION] LAST
$ seq [OPTION] FIRST LAST
$ seq [OPTION] FIRST INCREMENT LAST</pre>
<p>Se FIRST o INCREMENT sono omessi, di default prendono il valore 1. Come si può capire facilmente, quindi seq 10 1 non ha senso. (Ah, fra le opzioni c&#8217;e&#8217; &#8211;format che permette di stampare con dei placeholder stile printf.)</p>
<p>Quindi per avere quello che voglio è necessario usare:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">$ <span class="kw2">seq</span> <span class="nu0">10</span> <span class="nu0">-1</span> <span class="nu0">1</span></div>
</div>
<p>Con sort:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">$ <span class="kw2">seq</span> <span class="nu0">1</span> <span class="nu0">20</span> | <span class="kw2">sort</span> -rn<br />
<span class="re3"># Attenzione, è diverso da <span class="kw2">seq</span> <span class="nu0">1</span> <span class="nu0">20</span> | <span class="kw2">sort</span> -r</span></div>
</div>
<p>Con tac (il contrario di cat):</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">$ <span class="kw2">seq</span> <span class="nu0">1</span> <span class="nu0">20</span> | <span class="kw2">tac</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/11/24/bash-brace-expansion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Preparazione di rodio</title>
		<link>http://www.simotrone.it/2009/05/06/preparazione-di-rodio/</link>
		<comments>http://www.simotrone.it/2009/05/06/preparazione-di-rodio/#comments</comments>
		<pubDate>Wed, 06 May 2009 06:55:04 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[rodio]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=1837</guid>
		<description><![CDATA[Il bello di una box nuova, è che ce la si può personalizzare.
Dopo aver ricompilato il kernel (quello FreeBSD m&#8217;è sembrato molto più semplice di quello Linux), rodio è stata sottoposta ad alcune modifiche necessarie.
Installazione dai ports della shell bash, del bash completition e di vim, per cominciare.
Altra cosa utile, è stato attivare il server [...]]]></description>
			<content:encoded><![CDATA[<p>Il bello di una box nuova, è che ce la si può personalizzare.<br />
Dopo aver ricompilato il kernel (quello FreeBSD m&#8217;è sembrato molto più semplice di quello Linux), <strong>rodio</strong> è stata sottoposta ad alcune modifiche <em>necessarie</em>.</p>
<p>Installazione dai ports della shell bash, del bash completition e di vim, per cominciare.</p>
<p>Altra cosa utile, è stato attivare il server ssh.</p>
<pre>In /etc/rc.conf aggiungere la riga:
sshd_enable="YES"
Poi:
# /etc/rc.d/sshd start</pre>
<p>Altri programmi installati: lsof, mutt, nmap, portaudit, ssh2, wget.</p>
<p>E poi il webserver&#8230; Per provare questa volta mi sono dedicato a <a href="http://www.lighttpd.net/">lighttpd</a> &#8211; e mi è parso davvero simpatico. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
(Grazie Jack per la dritta di secoli fa&#8230; che ho deciso di sfruttare ora.)</p>
<p>Riferimenti:<br />
* <a href="http://www.freebsd.org/docs.html">Documentazione su FreeBSD</a><br />
* <a href="http://www.freebsddiary.org/">FreeBSD Diary</a><br />
* Info su <a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/openssh.html">Openssh</a>.</p>
<p>Se invece che compilare ogni singolo <a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html">port</a>, si preferisce prendere i pacchetti precompilati, leggere <a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/packages-using.html">qua</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/05/06/preparazione-di-rodio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colori del prompt</title>
		<link>http://www.simotrone.it/2008/08/13/colori-del-prompt/</link>
		<comments>http://www.simotrone.it/2008/08/13/colori-del-prompt/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 06:38:04 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[colori]]></category>
		<category><![CDATA[prompt]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=679</guid>
		<description><![CDATA[Già tempo addietro avevo parlato dei colori di ls, legati indissolubilmente a quelli di bash.
Ho deciso di sistemare un po&#8217; il prompt di root e user sulle diverse macchine (vedi ~/.bashrc, variabile PS1), anche se non sono ancora del tutto convinto. Visto che mi piacciono gli sfondi scuri (con scritte chiare), ho scelto il rosa [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/img/prompt-color.jpg"><img src="/wp-content/img/prompt-color.th.jpg" alt="Colori dei prompt" align="right"/></a>Già tempo addietro avevo parlato dei <a href="http://www.simotrone.it/2008/01/06/usrbindircolors/">colori di ls</a>, legati indissolubilmente a quelli di bash.</p>
<p>Ho deciso di sistemare un po&#8217; il prompt di root e user sulle diverse macchine (vedi <strong>~/.bashrc</strong>, variabile <strong>PS1</strong>), anche se non sono ancora del tutto convinto. Visto che mi piacciono gli sfondi scuri (con scritte chiare), ho scelto il rosa per il percorso, e il ciano per le utenze; le box hanno colori diversi (per ora): idrogeno è giallo, neon è verde, radon lo farò blu chiaro.<br />
Non sono ancora convinto di voler tutto questo arcobaleno, ma magari mi setterò presto su qualcosa di leggibile.</p>
<p>Per la cronaca: l&#8217;utenza su Idrogeno ha la PS che segue:</p>
<blockquote><p>PS1=&#8217;\[\033[0;36m\]\u\[\033[1;00m\]@\[\033[1;33m\]\h\[\033[00m\]:\[\033[1;35m\]\w\[\033[00m\]\$ &#8216;</p></blockquote>
<p>mentre Neon ha questa:</p>
<blockquote><p>PS1=&#8217;\[\033[0;36m\]\u\[\033[1;00m\]@\[\033[1;32m\]\h\[\033[1;00m\]:\[\033[1;35m\]\w\[\033[1;00m\]\$ &#8216;</p></blockquote>
<p>Aggiungo il link ad un&#8217;utile guida di debianizzati.org: <a href="http://guide.debianizzati.org/index.php/Colorare_bash">Colorare bash</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2008/08/13/colori-del-prompt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fork Bomb</title>
		<link>http://www.simotrone.it/2008/02/03/fork-bomb/</link>
		<comments>http://www.simotrone.it/2008/02/03/fork-bomb/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 10:50:41 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[It's all, folks!]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[fork bomb]]></category>
		<category><![CDATA[malaware]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/2008/02/03/fork-bomb/</guid>
		<description><![CDATA[Ho avuto modo di vedere una semplice fork bomb all&#8217;opera.
Mi sembrava una cosa curiosa, e pensavo di scriverci un post&#8230; Poi ho aperto wikipedia&#8230;  E vabbè. Qui c&#8217;è già tutto.  
Fatto sta, che è meglio non scrivere

  ){:&#124;:&#38;};:

in console.
]]></description>
			<content:encoded><![CDATA[<p>Ho avuto modo di vedere una semplice <strong>fork bomb</strong> all&#8217;opera.</p>
<p>Mi sembrava una cosa curiosa, e pensavo di scriverci un post&#8230; Poi ho aperto wikipedia&#8230;  E vabbè. <a href="http://it.wikipedia.org/wiki/Fork_bomb" target="_blank">Qui</a> c&#8217;è già tutto. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Fatto sta, che è meglio <u>non</u> scrivere</p>
<blockquote>
<pre> <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ){:|:&amp;};:</pre>
</blockquote>
<p>in console.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2008/02/03/fork-bomb/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
