<?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>Mundo Geek &#187; terminal</title>
	<atom:link href="http://mundogeek.net/etiqueta/terminal/feed/" rel="self" type="application/rss+xml" />
	<link>http://mundogeek.net</link>
	<description>Mundo geek, bitácora sobre todo lo geek: software, gadgets, tecnología, internet, ...</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:09:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cómo desplazarse por la consola como un experto</title>
		<link>http://mundogeek.net/archivos/2007/12/17/como-desplazarse-por-la-consola-como-un-experto/</link>
		<comments>http://mundogeek.net/archivos/2007/12/17/como-desplazarse-por-la-consola-como-un-experto/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 13:06:50 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/12/17/como-desplazarse-por-la-consola-como-un-experto/</guid>
		<description><![CDATA[Hay situaciones en las que el uso de cd para moverse entre los directorios del sistema se puede hacer bastante pesado, incluso con el autocompletado en bash. Se han propuesto multitud de soluciones a este problema: el uso de CDPATH, la creación de alias para los directorios más utilizados, los comandos pushd, popd y dirs; [...]]]></description>
			<content:encoded><![CDATA[<p>Hay situaciones en las que el uso de cd para moverse entre los directorios del sistema se puede hacer bastante pesado, incluso con el <a href="http://mundogeek.net/archivos/2007/06/29/sugerencias-en-bash-pulsando-tab-una-sola-vez/" title="Autocompletado en bash">autocompletado en bash</a>.</p>
<p>Se han propuesto multitud de soluciones a este problema: el uso de <a href="http://mundogeek.net/archivos/2007/06/25/tus-directorios-a-un-solo-paso-la-variable-de-entorno-cdpath/" title="CDPATH">CDPATH</a>, la creación de <a href="http://mundogeek.net/archivos/2004/05/30/alias-no-es-una-serie-de-televisin/" title="Alias Linux">alias</a> para los directorios más utilizados, los comandos pushd, popd y dirs; CDargs, etc. <span id="more-1302"></span></p>
<h2>cd como un experto</h2>
<p>Empecemos por lo más sencillo y veamos que cd es un poco más complejo de lo que parece. Mucha gente sabe del autocompletado de bash, gracias al cual basta con escribir parte del nombre del directorio y pulsar Tab para que la consola complete el directorio (si no hay varias posibilidades, en caso contrario tendríamos que pulsar dos veces Tab para verlas). También es muy común el uso de rutas relativas: si estamos en /home/zootropo y queremos desplazarnos a /home/zootropo/videos no es necesario escribir la segunda ruta en su totalidad, sino que podemos escribir simplemente cd videos. Incluso es normal ver a novatos usando atajos como <em>cd ..</em> para desplazarse al directorio superior y <em>cd ~</em> o <em>cd</em> para desplazarse al directorio de usuario.</p>
<p>Lo que es menos común, y muy útil para el tema que nos ocupa es el uso de <em>cd -</em>. Este flag tan útil no hace otra cosa que movernos al último directorio en el que estuvimos.</p>
<p class="code">zootropo@genua:~$ cd /etc/X11/<br />
zootropo@genua:/etc/X11$ cd<br />
zootropo@genua:~$ cd -<br />
/etc/X11<br />
zootropo@genua:/etc/X11$ pwd<br />
/etc/X11</p>
<p>De esta forma podemos movernos entre dos directorios rápidamente.</p>
<p>Por otro lado, si lo que necesitamos es desplazarnos a un directorio tan solo un momento para ejecutar un comando y luego seguir trabajando en el directorio actual, también podríamos usar &#038;&#038;, que ejecuta dos comandos, uno detrás de otro, de forma condicional (and con cortocircuito):</p>
<p class="code">cd /etc/X11/ &#038;&#038; cat xorg.conf</p>
<p>y rodearlo con paréntesis, que hace que los comandos se ejecuten en una subshell</p>
<p class="code">(cd /etc/X11/ &#038;&#038; cat xorg.conf)</p>
<p>de esta forma se ejecutará el comando en una subshell distinta, por lo que el cd no nos afectará, y será como si nunca nos hubiéramos desplazado.</p>
<p>Pero, ¿qué ocurre si queremos movernos entre varios directorios? ¿qué podemos hacer si queremos desplazarnos, por ejemplo, al penúltimo directorio que visitamos? la combinación pushd, popd y dirs, nos proporciona una alternativa válida.</p>
<h2>pushd, popd y dirs</h2>
<p>pushd funciona como un cd normal, moviéndonos al directorio especificado, pero además, como su nombre indica, introduce dicho directorio en una pila.</p>
<p class="code">pushd /etc/X11/</p>
<p>popd también funciona como un cd, pero el directorio al que nos mueve es el que extrae de la pila, y dado que la pila es una estructura LIFO (Last In, First Out o lo que es lo mismo, el último en introducirse es el primero en extraerse) al escribir este comando nos moveremos al último directorio añadido a la pila.</p>
<p class="code">popd</p>
<p>También es posible indicar qué elemento de la pila queremos utilizar mediante un índice. Por ejemplo:</p>
<p class="code">popd +2</p>
<p>extraería el tercer elemento (el índice del primer elemento es 0). También podemos utilizar índices negativos, como -2, contando al revés.</p>
<p>Por último dirs nos sirve para imprimir el contenido de la pila:</p>
<p class="code">zootropo@genua:/etc/X11$ dirs<br />
/etc/X11 ~</p>
<p>Al comando dirs también se le puede pasar un índice para imprimir tan solo el directorio seleccionado por el índice.</p>
<p>La desventaja del uso de pushd y popd es que cada vez que hacemos un popd el directorio se borra de la pila, y si quisiéramos volver a utilizarlo tendríamos que volver a guardarlo en la pila, lo cual va en contra de la rapidez que buscamos y que nos impulsó a usarlos en primer lugar.</p>
<p>Existe una alternativa que consiste en aprovecharnos de la característica de la indexación de dirs. El comando</p>
<p class="code">dirs +0</p>
<p>mostraría el primer elemento de la pila.</p>
<p>Basta con usar este directorio como argumento para cd para poder movernos a los directorios almacenados sin que se borren de la pila:</p>
<p class="code">cd `dirs +0`</p>
<p>Sin embargo, por alguna extraña razón, cuando el directorio que seleccionamos con dirs es el directorio home, que se almacena como ~, este pequeño truco no funciona, sino que tendríamos que usar el flag -l para que dirs muestre la ruta completa del directorio home en lugar de ~.</p>
<p class="code">cd `dirs -l +0`</p>
<p>Podríamos ahorrarnos tener que escribir el flag -l con un alias, e incluso crear alias como</p>
<p class="code">alias cd=&#8221;pushd&#8221;<br />
alias cd1=&#8221;cd `dirs -l +1`&#8221;</p>
<p>de forma que al escribir cd1 nos desplazáramos al penúltimo directorio introducido con nuestro cd-pushd.</p>
<p>Sin embargo, hay alternativas más sencillas, como CDargs.</p>
<h2>CDargs</h2>
<p>CDargs se encuentra en los repositorios de Ubuntu, así que instalarlo en esta distro es tan sencillo como escribir:</p>
<p class="code">sudo aptitude install cdargs</p>
<p>También es conveniente añadir las funciones para bash ya creadas que vienen con la aplicación editando el .bashrc:</p>
<p class="code">gedit ~/.bashrc</p>
<p>y añadiendo la siguiente línea, que hace un source del archivo correspondiente (asegúrate de que el archivo se instaló en esa ruta y modifica la línea adecuadamente si no es así)</p>
<blockquote><p>source /usr/share/doc/cdargs/examples/cdargs-bash.sh</p></blockquote>
<p>Reinicia la consola y podemos empezar a jugar.</p>
<p>Si escribimos el comando</p>
<p class="code">cv</p>
<p>en la consola, se lanzará la interfaz gráfica en ncurses de CDargs, un pequeño explorador de archivos en modo consola.</p>
<p><img src="http://mundogeek.net/wp-content/cdargs.png" alt="CDargs" title="CDargs"/></p>
<p>Primero seleccionamos el directorio que nos interesa con las flechas de arriba y abajo, con Avance página y Retroceso de página, con Inicio y Fin o pulsando el número asociado. Si solo queremos hacer un cd a ese directorio, pulsamos enter. Si queremos hacer un cd a un directorio que está contenido dentro del directorio seleccionado, pulsamos la flecha derecha para que CDargs muestre su contenido, y por último, si queremos movernos a un directorio superior, pulsamos la flecha izquierda. Para salir de la interfaz sin hacer nada, pulsamos la tecla &#8216;q&#8217;. Si queremos ver archivos ocultos, pulsamos la tecla &#8216;.&#8217;.</p>
<p>CDargs también incluye un sistema de marcadores. Para utilizarlo nos desplazaremos al directorio que queramos añadir a nuestros favoritos y escribimos</p>
<p class="code">ca <em>etiqueta</em></p>
<p>Por ejemplo:</p>
<p class="code">cd /home/zootropo/videos<br />
ca vid</p>
<p>Después basta escribir</p>
<p class="code">cv <em>etiqueta</em></p>
<p>para desplazarnos al directorio que guardamos en marcadores con dicha etiqueta.</p>
<p>Podemos ver los marcadores que hemos creado desde la interfaz gráfica de CDargs, pulsando la tecla Tab para cambiar entre el modo de marcadores y el modo explorador.</p>
<p>Por último, quizás os interese echar un vistazo a los gestores de archivo de modo consola, como GNU Midnight Commander</p>
<p class="code">sudo aptitude install mc</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/12/17/como-desplazarse-por-la-consola-como-un-experto/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Yakuake, Tilda y&#8230; Guake</title>
		<link>http://mundogeek.net/archivos/2007/09/29/yakuake-tilda-y-guake/</link>
		<comments>http://mundogeek.net/archivos/2007/09/29/yakuake-tilda-y-guake/#comments</comments>
		<pubDate>Sat, 29 Sep 2007 11:00:50 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[guake]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[tilda]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[yakuake]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/09/29/yakuake-tilda-y-guake/</guid>
		<description><![CDATA[Hace tiempo hablé sobre YaKuake y Tilda, un par de aplicaciones que despliegan una consola desde la parte superior de la pantalla al pulsar una determinada combinación de teclas. Mucho más cómodo que tener que pulsar el icono de la consola cada vez (aunque también podríamos asignarle una combinación de teclas). Guake es una nueva [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo hablé sobre <a href="http://mundogeek.net/archivos/2007/05/14/yakuake-y-tilda-consolas-desplegables-en-linux/" title="YaKuake y Tilda, consolas desplegables en Linux">YaKuake y Tilda</a>, un par de aplicaciones que despliegan una consola desde la parte superior de la pantalla al pulsar una determinada combinación de teclas. Mucho más cómodo que tener que pulsar el icono de la consola cada vez (aunque también podríamos asignarle una combinación de teclas).</p>
<p><a href="http://guake-gnome-vte.sourceforge.net/" title="Guake">Guake</a> es una nueva alternativa que promete aunar lo mejor de los dos mundos. Veremos en qué queda.</p>
<p>Por ahora podéis probarlo instalando el <a href="http://gnu.gabrielfalcao.com/guake_0.1-1_i386.deb">paquete deb</a> disponible para Ubuntu o bien descargando y compilando el <a href="http://gnu.gabrielfalcao.com/guake-0.1.tar.gz">código fuente</a>.</p>
<p>Después de instalarlo ejecutaremos el siguiente comando para añadir las claves correspondientes a gconf:</p>
<p class="code">gconftool-2 &#8211;install-schema-file=/usr/etc/gconf/schemas/guake.schemas</p>
<p>y podremos iniciarlo desde Aplicaciones -> Accesorios -> Guake Terminal o escribiendo el comando <code>guake</code> en la terminal.</p>
<p>Para mostrar la consola basta con pulsar F12.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/09/29/yakuake-tilda-y-guake/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

