<?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>Nideaderedes &#187; linux</title>
	<atom:link href="http://nideaderedes.urlansoft.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://nideaderedes.urlansoft.com</link>
	<description>Un blog hecho por mí y para mí</description>
	<lastBuildDate>Thu, 10 Jun 2010 18:46:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Convierte ficheros de vídeo a 3gp con Mobile Media converter</title>
		<link>http://nideaderedes.urlansoft.com/2009/10/23/convierte-ficheros-de-video-a-3gp-con-mobile-media-converter/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/10/23/convierte-ficheros-de-video-a-3gp-con-mobile-media-converter/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 07:00:23 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[chorradillas]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[3gp]]></category>
		<category><![CDATA[avi]]></category>
		<category><![CDATA[convertir]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=899</guid>
		<description><![CDATA[Mobile Media Converter es un fantástico programa que nos permite convertir archivos de sonido y vídeo a diferentes formatos, incluido el 3gp muy usado en los dispositivos móviles. Es un software muy fácil de usar, muy recomendable.
Existen versiones para Linux (hay un paquete .deb que se puede usar para Ubuntu) y Windows.
Se puede descargar de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.miksoft.net/mobileMediaConverter.htm">Mobile Media Converter</a> es un fantástico programa que nos permite convertir archivos de sonido y vídeo a diferentes formatos, incluido el 3gp muy usado en los dispositivos móviles. Es un software muy fácil de usar, muy recomendable.</p>
<p>Existen versiones para Linux (hay un paquete .deb que se puede usar para Ubuntu) y Windows.</p>
<p>Se puede descargar de aquí:</p>
<p><a href="http://www.miksoft.net/mobileMediaConverter.htm">http://www.miksoft.net/mobileMediaConverterDown.htm</a></p>
<p>Como curiosidad, entontré en los <a href="http://ubuntuforums.org/showthread.php?t=1117699">foros de Ubuntu</a> este script para convertir ficheros .avi a un formato adecuado para móviles:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> mobile; <span style="color: #007800;">IFS=</span>$<span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span> ; <span style="color: #000000; font-weight: bold;">for</span> f <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000;">-1</span> <span style="color: #000000; font-weight: bold;">*</span>.avi<span style="color: #000000; font-weight: bold;">`</span> ; <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #007800;">FILE=</span>$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">basename</span> <span style="color: #ff0000;">&quot;$f&quot;</span> .avi<span style="color: #7a0874; font-weight: bold;">&#41;</span> ; mencoder <span style="color: #ff0000;">&quot;$FILE.avi&quot;</span> -oac lavc -lavcopts <span style="color: #007800;">acodec=</span>libmp3lame:<span style="color: #007800;">abitrate=</span><span style="color: #000000;">64</span> -ovc lavc -lavcopts <span style="color: #007800;">vcodec=</span>mpeg4:<span style="color: #007800;">vpass=</span><span style="color: #000000;">1</span>:<span style="color: #007800;">vbitrate=</span><span style="color: #000000;">200</span> -ffourcc DX50 -vf <span style="color: #007800;">scale=</span><span style="color: #000000;">400</span>:<span style="color: #000000;">240</span> -o <span style="color: #ff0000;">&quot;mobile/$FILE.avi&quot;</span>; <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">30</span>; mencoder <span style="color: #ff0000;">&quot;$FILE.avi&quot;</span> -oac lavc -lavcopts <span style="color: #007800;">acodec=</span>libmp3lame:<span style="color: #007800;">abitrate=</span><span style="color: #000000;">64</span> -ovc lavc -lavcopts <span style="color: #007800;">vcodec=</span>mpeg4:<span style="color: #007800;">vpass=</span><span style="color: #000000;">2</span>:<span style="color: #007800;">vbitrate=</span><span style="color: #000000;">200</span> -ffourcc DX50 -vf <span style="color: #007800;">scale=</span><span style="color: #000000;">400</span>:<span style="color: #000000;">240</span> -o <span style="color: #ff0000;">&quot;mobile/$FILE.avi&quot;</span>; <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">&quot;frameno.avi&quot;</span>; <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">&quot;divx2pass.log&quot;</span>; <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">30</span>; <span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/10/23/convierte-ficheros-de-video-a-3gp-con-mobile-media-converter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatizar la conexión a sFTP</title>
		<link>http://nideaderedes.urlansoft.com/2009/09/25/automatizar-la-conexion-a-sftp/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/09/25/automatizar-la-conexion-a-sftp/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 10:11:58 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[privacidad-y-seguridad]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[sftp]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=906</guid>
		<description><![CDATA[En este artículo os voy a contar cómo descargar ficheros mediante sFTP (FTP encriptado) de manera automatizada; es decir, sin tener que andar ejecutando el comando ni tener que meter la clave a mano cada vez.
El script es bien sencillito:

#!/bin/bash
&#160;
# Aquí ponemos los datos de conexión
USUARIO=usuario
CLAVE=clave
HOST=miftp.com
PUERTO=22
&#160;
lftp -p${PUERTO} -u ${USUARIO},${CLAVE} sftp://${HOST} &#60;&#60; CMD
get copia_seguridad.bz2 copia_seguridad.bz2
bye
CMD

Basta con [...]]]></description>
			<content:encoded><![CDATA[<p>En este artículo os voy a contar cómo descargar ficheros mediante sFTP (FTP encriptado) de manera automatizada; es decir, sin tener que andar ejecutando el comando ni tener que meter la clave a mano cada vez.</p>
<p>El script es bien sencillito:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Aquí ponemos los datos de conexión</span>
<span style="color: #007800;">USUARIO=</span>usuario
<span style="color: #007800;">CLAVE=</span>clave
<span style="color: #007800;">HOST=</span>miftp.com
<span style="color: #007800;">PUERTO=</span><span style="color: #000000;">22</span>
&nbsp;
lftp -p<span style="color: #800000;">${PUERTO}</span> -u <span style="color: #800000;">${USUARIO}</span>,<span style="color: #800000;">${CLAVE}</span> sftp:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #800000;">${HOST}</span> <span style="color: #000000; font-weight: bold;">&lt;&lt;</span> CMD
get copia_seguridad.bz2 copia_seguridad.bz2
bye
CMD</pre></div></div>

<p>Basta con que sustituyas estos datos por los de tu servidor:</p>
<pre>
USUARIO=usuario
CLAVE=clave
HOST=miftp.com
PUERTO=22
</pre>
<p>El puerto se puede dejar el de ssh por defecto, pero en varios servidores me he encontrado que usan uno distinto así que la opción para especificar el puerto es muy útil para mí.</p>
<p>lftp (sophisticated file transfer program) es el que se va a encargar de identificarse en el servidor mediante sftp. Todo lo que escribamos entre <<CMD y CMD serán los comandos que se enviarán al servidor sFTP.</p>
<p>Me he pasado un buen rato hasta que he conseguido ponerlo en marcha así que lo dejo aquí por si a alguien le puede servir de ayuda.</p>
<p><a href="http://www.keopx.net/ubuntu/conectar-por-ssh-sin-password/">Aquí</a> podéis ver otra forma de hacerlo</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/09/25/automatizar-la-conexion-a-sftp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introducción a Bash: control de flujo en nuestro script (if/else)</title>
		<link>http://nideaderedes.urlansoft.com/2009/05/25/introduccion-a-bash-control-de-flujo-en-nuestro-script/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/05/25/introduccion-a-bash-control-de-flujo-en-nuestro-script/#comments</comments>
		<pubDate>Mon, 25 May 2009 07:00:22 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=870</guid>
		<description><![CDATA[Hoy vamos a añdadir un poco más de salsa a nuestra introdicción a Bash. Vamos a ver cómo funciona el if/else.
La estructura de un if/else en bash es la siguiente:

if &#91; condicion &#93;; then
      ...
else
      ...
fi

(el &#8220;else&#8221; es opcional).
Ojo, los corchetes deben ir siempre separados [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy vamos a añdadir un poco más de salsa a nuestra introdicción a Bash. Vamos a ver cómo funciona el if/else.</p>
<p>La estructura de un if/else en bash es la siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> condicion <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      ...
<span style="color: #000000; font-weight: bold;">else</span>
      ...
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>(el &#8220;else&#8221; es opcional).</p>
<p>Ojo, los corchetes deben ir siempre separados de la condición por un espacio.</p>
<h2>Comparaciones aritméticas:</h2>
<p>Aquí tenéis una lista de comparaciones que se pueden hacer entre números.</p>
<ul>
<li> -lt : menor que (less than)</li>
<li>-gt : mayor que (greater than)</li>
<li>-le : menor o igual (less or equal)</li>
<li>-ge : mayor o igual (greater or equal)</li>
<li>-eq : igual a (equal)</li>
<li>-ne : distinto de (not equal)</li>
</ul>
<h2>Compraraciones con cadenas</h2>
<ul>
<li> = : igual</li>
<li> != : distinto</li>
<li>&lt; : menor que</li>
<li>&gt; : mayor que</li>
<li>-n c1 : se cumple si la cadena c1 no está vacía</li>
<li>-z s1 : se cumple si la cadena c1 está vacía</li>
</ul>
<h2>If anidados</h2>
<p>Desde luego, se pueden usar if/else dentro de otros if/else, se pueden anidar sin problemas.</p>
<h2>Ejemplo</h2>
<p>Y para ilustrar todo esto vamos a ver un sencillo ejemplo que espera que le pasemos una palabra como parámetro:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> -eq <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Dime algo, por favor&quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> $<span style="color: #000000;">1</span> = <span style="color: #ff0000;">'hola'</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Hola! que tal?&quot;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;No te entiendo, solo entiendo la palabra 'hola'&quot;</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>Si lo guardamos en un fichero llamado if.sh y le damos permisos de ejecución (chmod +x if.sh) esto es lo que responderá dependiendo de qué parámetros usemos:</p>
<pre>
$ ./if.sh
Dime algo, por favor
</pre>
<pre>
$ ./if.sh nada
No te entiendo, solo entiendo la palabra 'hola'
</pre>
<pre>
$ ./if.sh hola
Hola! que tal?
</pre>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/05/25/introduccion-a-bash-control-de-flujo-en-nuestro-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Renombrar varios ficheros a la vez con PyRenamer</title>
		<link>http://nideaderedes.urlansoft.com/2009/05/21/renombrar-varios-ficheros-a-la-vez-con-pyrenamer/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/05/21/renombrar-varios-ficheros-a-la-vez-con-pyrenamer/#comments</comments>
		<pubDate>Thu, 21 May 2009 07:00:40 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[heramientas]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ficheros]]></category>
		<category><![CDATA[pyrenamer]]></category>
		<category><![CDATA[renombrador]]></category>
		<category><![CDATA[renombrar]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=855</guid>
		<description><![CDATA[PyRenamer es un sencillísimo programa (sencillo de usar) que te permite renombrar un montón de ficheros de golpe. Ya expliqué hace un tiempo cómo cambiar la extensión de varios archivos de golpe desde la consola, pero seguramente este programa le resultará mucho más cómodo a la mayoría.
El programa está disponible bajo licencia GPL y, dado [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.infinicode.org/code/pyrenamer/">PyRenamer</a> es un sencillísimo programa (sencillo de usar) que te permite renombrar un montón de ficheros de golpe. Ya expliqué hace un tiempo <a href="http://nideaderedes.urlansoft.com/2006/10/11/cambiar-la-extension-de-varios-archivos-en-linux/">cómo cambiar la extensión de varios archivos de golpe desde la consola</a>, pero seguramente este programa le resultará mucho más cómodo a la mayoría.</p>
<p>El programa está disponible bajo licencia GPL y, dado que está escrito en Python, debería funcionar en casi cualquier sistema operativo que disponga de Python y PyGtk (yo sólo lo he probado en mi Ubuntu).</p>
<p>Supongamos que queremos renombrar varios archivos con el siguiente formato:</p>
<p>Nombre serie &#8211; 1&#215;01 &#8211; El comienzo.avi<br />
Nombre serie &#8211; 1&#215;02 &#8211; La continuación.avi<br />
Nombre serie &#8211; 1&#215;03 &#8211; El final.avi</p>
<p>al siguiente formato:</p>
<p>1&#215;01 &#8211; El comienzo.avi<br />
1&#215;02 &#8211; La continuación.avi<br />
1&#215;03 &#8211; El final.avi</p>
<p>Podemos hacerlo siguiendo estos pasos:</p>
<p>Paso 0) Instalar el PyRenamer en nuestra máquina evidentemente.</p>
<p>1) Arrancar el programa.</p>
<p>2) Ir al directorio que contiene los archivos que queremos renombrar.</p>
<p>3) Seleccionamos la pestaña &#8220;Patrones&#8221;.</p>
<p>4) En &#8220;Patrón de selección de archivos&#8221; podemos dejar el &#8220;*&#8221; que viene por defecto o podemos cambiarlo para trabajar sólo con los archivos que nos interesen.</p>
<p>5) En &#8220;patrón de nombre de archivo original&#8221; escribimos:</p>
<pre>Nombre serie - {#}x{#} - {X}</pre>
<p>Las llaves sirven para indicar la parte que cambia:</p>
<p>{#} &#8211; Sirve para indicar un número<br />
{X} &#8211; Sirve para indicar letras</p>
<p>6) En &#8220;patrón de nombre de archivo nuevo:</p>
<pre>{1}x{2} - {3}</pre>
<p>{1}, {2}, {3} son las coincidencias que ha encontrado en la cadena original, las partes que ha encontrado entre llaves.</p>
<p>En el primer caso:</p>
<pre>Nombre serie - {#}x{#} - {X}</pre>
<p>Con el fichero:</p>
<pre>Nombre serie - 1x01 - El comienzo.avi</pre>
<p>El primer {#} recogerá el &#8220;1&#8243;, el segundo {#} recogerá el &#8220;01&#8243; y {X} recogerá &#8220;El comienzo.avi&#8221;. Con lo que el nombre resultará en:</p>
<pre>1x01 - El comienzo.avi</pre>
<p>7) Pinchamos el botón &#8220;previsualizar&#8221; para ver si el renombrado se hace como esperábamos.</p>
<p>8 ) Hacemos click en renombrar y listo.</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/05/21/renombrar-varios-ficheros-a-la-vez-con-pyrenamer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a bash: Pasar argumentos a un script bash</title>
		<link>http://nideaderedes.urlansoft.com/2009/05/15/introduccion-a-bash-pasar-argumentos-a-un-script-bash/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/05/15/introduccion-a-bash-pasar-argumentos-a-un-script-bash/#comments</comments>
		<pubDate>Fri, 15 May 2009 07:00:59 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[consola]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=842</guid>
		<description><![CDATA[En esta segunda entrega de la miniguía de bash vamos a ver cómo pasar argumentos (o parámetros a un script bash).
En la primera entrega vimos cómo crear un fichero y hacerlo ejecutable. Siguiendo esas instrucciones puedes crear un fichero llamado parametros.sh y copiar lo siguiente:

#!/bin/bash
echo $1

Si invocamos el script con el siguiente comando:
parametros.sh primero
el resultado [...]]]></description>
			<content:encoded><![CDATA[<p>En esta segunda entrega de la miniguía de bash vamos a ver cómo pasar argumentos (o parámetros a un script bash).</p>
<p>En la <a href="http://nideaderedes.urlansoft.com/2009/04/27/introduccion-a-bash-crear-un-sencillo-script/">primera entrega</a> vimos cómo crear un fichero y hacerlo ejecutable. Siguiendo esas instrucciones puedes crear un fichero llamado parametros.sh y copiar lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #000000;">1</span></pre></div></div>

<p>Si invocamos el script con el siguiente comando:</p>
<pre>parametros.sh primero</pre>
<p>el resultado sería:</p>
<pre>primero</pre>
<p>Como vemos, el argumento &#8220;primero&#8221; ha quedado almacenado en la variable $1 (sí, con bash se pueden usar variables ¿no es maravilloso?).</p>
<p>El siguiente comando:</p>
<pre>parametros.sh primero segundo</pre>
<p>Nos mostrará lo mismo que antes:</p>
<pre>primero</pre>
<p>Los argumentos en bash se separan por un espacio, de tal forma &#8220;segundo&#8221; sería el segundo argumento. Para recogerlo y mostrarlo tendríamos que modificar nuestro script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #000000;">2</span></pre></div></div>

<p>Para recoger el tercer argumento usaríamos $3 y así sucesivamente.</p>
<p>Existe una variable, $#, que se crea automáticamente que contiene el número de argumentos que se han pasado al script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Total argumentos: $#&quot;</span></pre></div></div>

<p>al llamarlo con:</p>
<pre>parametros.sh primero segundo</pre>
<p>mostrará:</p>
<pre>Total argumentos: 2</pre>
<p>También se crea automáticamente otra variable, $@, que es un array que contiene todos los argumentos. Si hacemos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #000000; font-weight: bold;">@</span></pre></div></div>

<p>nos mostará todos los argumentos:</p>
<pre>parametros.sh primero segundo</pre>
<p>resultado:</p>
<pre>primero segundo</pre>
<p>Ya veremos en otra entrega cómo trabajar con este y otros arrays.</p>
<h2>¿Qué utilidad tiene esto de los argumentos?</h2>
<p>Los argumentos dan una gran flexibilidad a nuestros scripts ya que mediante ellos podemos indicar con qué fichero o directorio queremos trabajar o especificar un usuario por ejemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/05/15/introduccion-a-bash-pasar-argumentos-a-un-script-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Por qué no se guardan los archivos ocultos en mi archivo TAR?</title>
		<link>http://nideaderedes.urlansoft.com/2009/05/11/%c2%bfpor-que-no-se-guardan-los-archivos-ocultos-en-mi-archivo-tar/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/05/11/%c2%bfpor-que-no-se-guardan-los-archivos-ocultos-en-mi-archivo-tar/#comments</comments>
		<pubDate>Mon, 11 May 2009 07:00:33 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=565</guid>
		<description><![CDATA[Probablemente te habrás encontrado alguna vez con este problema al crear un archivo tar: los archivos ocultos en la carpeta &#8220;raíz&#8221; no se almacenan.
Suponiendo que tienes una carpeta &#8216;prueba/&#8217; que contiene los siguientes archivos:

.fichero1
fichero2
fichero3

Si haces:
tar cf test.tar prueba/*
no se copiará el archivo .fichero1
Sin embargo si hacemos:
tar cf test.tar prueba/
Sí que se copiará.
Parece una tontería, pero [...]]]></description>
			<content:encoded><![CDATA[<p>Probablemente te habrás encontrado alguna vez con este problema al crear un archivo tar: los archivos ocultos en la carpeta &#8220;raíz&#8221; no se almacenan.</p>
<p>Suponiendo que tienes una carpeta &#8216;prueba/&#8217; que contiene los siguientes archivos:</p>
<pre>
.fichero1
fichero2
fichero3
</pre>
<p>Si haces:</p>
<pre>tar cf test.tar prueba/*</pre>
<p>no se copiará el archivo .fichero1</p>
<p>Sin embargo si hacemos:</p>
<pre>tar cf test.tar prueba/</pre>
<p>Sí que se copiará.</p>
<p>Parece una tontería, pero si no te das cuenta puedes perder un montón de tiempo.</p>
<p>Por cierto esto lo encontré <a href="http://www.linuxquestions.org/questions/linux-newbie-8/how-to-tar-dot-files-354591/">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/05/11/%c2%bfpor-que-no-se-guardan-los-archivos-ocultos-en-mi-archivo-tar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La consola de Linux: averiguar a qué grupos pertenece un usuario</title>
		<link>http://nideaderedes.urlansoft.com/2009/05/04/la-consola-de-linux-averiguar-a-que-grupos-pertenece-un-usuario/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/05/04/la-consola-de-linux-averiguar-a-que-grupos-pertenece-un-usuario/#comments</comments>
		<pubDate>Mon, 04 May 2009 07:00:29 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=826</guid>
		<description><![CDATA[Para saber a qué grupos pertenece un usuario basta con usar el siguiente comando:

groups gorka

y nos mostrará un listado con todos los grupos a los que pertenece.
]]></description>
			<content:encoded><![CDATA[<p>Para saber a qué grupos pertenece un usuario basta con usar el siguiente comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">groups</span> gorka</pre></div></div>

<p>y nos mostrará un listado con todos los grupos a los que pertenece.</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/05/04/la-consola-de-linux-averiguar-a-que-grupos-pertenece-un-usuario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a bash: crear un sencillo script</title>
		<link>http://nideaderedes.urlansoft.com/2009/04/27/introduccion-a-bash-crear-un-sencillo-script/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/04/27/introduccion-a-bash-crear-un-sencillo-script/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 07:00:07 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[consola]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=817</guid>
		<description><![CDATA[Con este artículo voy a iniciar una corta serie de artículos para aprender a escribir sencillos scripts de bash.
Bash es un intérprete de comandos de Linux. Los que han trabajado con Windows/MS-Dos les sonarán seguramente los archivos .bat. Estos scripts bash son algo muy similar.
Para crear nuestro primer script debemos crear un fichero, por ejemplo [...]]]></description>
			<content:encoded><![CDATA[<p>Con este artículo voy a iniciar una corta serie de artículos para aprender a escribir sencillos scripts de bash.</p>
<p><a href="http://es.wikipedia.org/wiki/Bash">Bash</a> es un <a href="http://es.wikipedia.org/wiki/Shell_de_Unix">intérprete de comandos de Linux</a>. Los que han trabajado con Windows/MS-Dos les sonarán seguramente los archivos .bat. Estos scripts bash son algo muy similar.</p>
<p>Para crear nuestro primer script debemos crear un fichero, por ejemplo primero.sh y copiamos el siguiente contenido:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Eh, este es mi primer script bash&quot;</span></pre></div></div>

<p>Ahora tenemos que hacerlo &#8220;ejecutable&#8221;, para ello teclearemos en la consola:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x primero.<span style="color: #c20cb9; font-weight: bold;">sh</span></pre></div></div>

<p>y ahora podemos ejecutarlo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash">.<span style="color: #000000; font-weight: bold;">/</span>primero.<span style="color: #c20cb9; font-weight: bold;">sh</span></pre></div></div>

<p>Y ahora vamos a darle un poco más de gracia al asunto. En un script podemos usar los mismos comandos que si estuviéramos en la consola de Linux, por ejemplo: ls -las. Vamos a modificar el script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Este es el listado de directorios y ficheros:&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span> -las</pre></div></div>

<p>Más adelante veremos que se pueden pasar parámetros a un script bash, se pueden usar variables, bucles, condiciones, arrays, etc&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/04/27/introduccion-a-bash-crear-un-sencillo-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bash: listar los usuarios de un ordenador</title>
		<link>http://nideaderedes.urlansoft.com/2009/04/24/bash-listar-los-usuarios-de-un-ordenador/</link>
		<comments>http://nideaderedes.urlansoft.com/2009/04/24/bash-listar-los-usuarios-de-un-ordenador/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 07:00:54 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=813</guid>
		<description><![CDATA[Dado que últimamente estoy haciendo bastantes cosillas con bash voy a poner una serie de &#8220;truquillos&#8221; aquí.
NOTA: El ejemplo que propongo aquí es un copia/pega de un script que creé para un servidor y una finalidad muy concretas.
En cierto servidor necesitaba tener un listado de los usuarios. Una posibilidad puede ser ir al directorio home [...]]]></description>
			<content:encoded><![CDATA[<p>Dado que últimamente estoy haciendo bastantes cosillas con bash voy a poner una serie de &#8220;truquillos&#8221; aquí.</p>
<p>NOTA: El ejemplo que propongo aquí es un copia/pega de un script que creé para un servidor y una finalidad muy concretas.</p>
<p>En cierto servidor necesitaba tener un listado de los usuarios. Una posibilidad puede ser ir al directorio home y ver allí los usuarios (cada usuario tendrá un directorio &#8216;home&#8217;).</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #000000; font-weight: bold;">for</span> directorio <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/*</span>; <span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> .<span style="color: #000000; font-weight: bold;">/</span>actualizador_cada.<span style="color: #c20cb9; font-weight: bold;">sh</span> <span style="color: #007800;">$directorio</span>.
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>dará como resultado: </p>
<pre>
/home/gorka
/home/alumno
/home/lost+found
/home/mysql
...
</pre>
<p>Si queremos que no nos muestre &#8216;/home&#8217; podemos eliminar esa parte de cada directorio usando una subcadena:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #800000;">${directorio:6}</span></pre></div></div>

<p>(esto mostrará una subcadena de $directorio desde la posición 6 hasta el final)</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #000000; font-weight: bold;">for</span> directorio <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/*</span>; <span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #800000;">${directorio:6}</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>dará como resultado: </p>
<pre>
gorka
alumno
lost+found
mysql
...
</pre>
<p>NOTA: esto funciona en un sistema en el que los usuarios tengan directorios &#8216;home&#8217; iguales a su nombres de usuario.</p>
<p>Seguramente verás que hay algunos usuarios que no te interesan (en mi caso sólo me interesaban los usuarios &#8220;reales&#8221;) así que añadí unas líneas para eliminar los que no interesaban (mysql, lost+found, etc&#8230;):</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #007800;">usuarios_no_validos=</span><span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #ff0000;">'mysql'</span> <span style="color: #ff0000;">'lost+found'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">for</span> directorio <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/*</span>; <span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #007800;">valido=</span><span style="color: #000000;">1</span>
	<span style="color: #007800;">usuario=</span><span style="color: #800000;">${directorio:6}</span>
	<span style="color: #000000; font-weight: bold;">for</span> usuario_no_valido <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #800000;">${usuarios_no_validos[@]}</span>; <span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$usuario_no_valido</span> = <span style="color: #007800;">$usuario</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
			<span style="color: #007800;">valido=</span><span style="color: #000000;">0</span>
		<span style="color: #000000; font-weight: bold;">fi</span>
	<span style="color: #000000; font-weight: bold;">done</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$valido</span> -eq <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$usuario</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2009/04/24/bash-listar-los-usuarios-de-un-ordenador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: Recuperar un archivo que tiene un nombre con caracteres extraños</title>
		<link>http://nideaderedes.urlansoft.com/2008/11/06/linux-recuperar-un-archivo-que-tiene-un-nombre-con-caracteres-extranos/</link>
		<comments>http://nideaderedes.urlansoft.com/2008/11/06/linux-recuperar-un-archivo-que-tiene-un-nombre-con-caracteres-extranos/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 07:00:26 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=677</guid>
		<description><![CDATA[En alguna ocasión me ha ocurrido que se suben a algún servidor archivos en cuyo nombre hay caracteres con una codificación diferente a la que usa el servidor. Si el servidor no puede traducirlos a su codificación los dejará &#8220;tal cual&#8221; pero luego será un dolor de cabeza acceder a ese archivo.
Por ejemplo, si un [...]]]></description>
			<content:encoded><![CDATA[<p>En alguna ocasión me ha ocurrido que se suben a algún servidor archivos en cuyo nombre hay caracteres con una codificación diferente a la que usa el servidor. Si el servidor no puede traducirlos a su codificación los dejará &#8220;tal cual&#8221; pero luego será un dolor de cabeza acceder a ese archivo.</p>
<p>Por ejemplo, si un usuario sube un archivo con el nombre:</p>
<pre>sin-título.jpg</pre>
<p>es posible (dependiendo de tu servidor) que se almacene como:</p>
<pre>sin-t�tulo.jpg</pre>
<p>Quizá se te ocurra renombrarlo para que tenga un nombre más adecuado haciendo:</p>
<pre>mv sin-título.jpg sin-titulo.jpg</pre>
<p>o:</p>
<pre>mv sin-t�tulo.jpg sin-titulo.jpg</pre>
<p>Lo más seguro es que no te funcione ninguno de estos métodos. Pero tranquilo, antes de abrirte la cabeza y arrancarte el cerebro con una cuchara prueba lo siguiente:</p>
<pre>more sin-t�tulo.jpg > sin-titulo.jpg</pre>
<p>es posible que te funcione ¡suerte!</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2008/11/06/linux-recuperar-un-archivo-que-tiene-un-nombre-con-caracteres-extranos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
