<?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>Bitelia &#187; modificadores</title> <atom:link href="http://bitelia.com/tag/modificadores/feed" rel="self" type="application/rss+xml" /><link>http://bitelia.com</link> <description>Software y Web 2.0</description> <lastBuildDate>Wed, 15 Feb 2012 00:58:41 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Cómo utilizar más eficazmente el historial de la terminal</title><link>http://bitelia.com/2009/11/como-utilizar-eficazmente-historial-terminal</link> <comments>http://bitelia.com/2009/11/como-utilizar-eficazmente-historial-terminal#comments</comments> <pubDate>Thu, 19 Nov 2009 09:00:33 +0000</pubDate> <dc:creator>Jorge Suárez</dc:creator> <category><![CDATA[Guías/Trucos]]></category> <category><![CDATA[Software Libre]]></category> <category><![CDATA[bash]]></category> <category><![CDATA[designadores de eventos]]></category> <category><![CDATA[designadores de palabras]]></category> <category><![CDATA[gnu/linux]]></category> <category><![CDATA[Historial]]></category> <category><![CDATA[modificadores]]></category> <category><![CDATA[shell]]></category> <category><![CDATA[terminal]]></category> <guid
isPermaLink="false">http://bitelia.com/?p=38545</guid> <description><![CDATA[El entorno de la terminal en GNU/Linux almacena las órdenes que escribimos, de forma que podemos utilizar las flechas para movernos por las entradas anteriores, modificarlas según nuestras necesidades y volverlas a ejecutar. Sin embargo, hay algunos atajos que nos lo ponen todavía más fácil. Hoy hablaremos de tres elementos: los designadores de eventos, los designadores de palabras y los modificadores. ¿Te suena todo a chino? No te preocupes, es normal. Poniendo un poco de atención y teniendo al lado una terminal con la que practicar enseguida dominarás todas estas...]]></description> <content:encoded><![CDATA[<p><img
src="http://s2.bitelia.com/files/2009/11/terminal.jpg" alt="Una terminal dentro de una terminal. Un chiste que nunca se ha hecho antes." title="Una terminal dentro de una terminal. Un chiste que nunca se ha hecho antes." width="339" height="331" class="alignright size-full wp-image-38602" /></p><p>El entorno de la terminal en <a
href="http://bitelia.com/tag/gnu/linux">GNU/Linux</a> almacena las órdenes que escribimos, de forma que podemos utilizar las flechas para movernos por las entradas anteriores, modificarlas según nuestras necesidades y volverlas a ejecutar. Sin embargo, hay algunos atajos que nos lo ponen <strong>todavía más fácil</strong>.</p><p>Hoy hablaremos de <strong>tres elementos</strong>: los <em>designadores de eventos</em>, los <em>designadores de palabras</em> y los <em>modificadores</em>. ¿Te suena todo a chino? No te preocupes, es normal. Poniendo un poco de atención y teniendo al lado una terminal con la que practicar enseguida dominarás todas estas técnicas que, si utilizas la terminal a menudo, seguro que te interesan.</p><p><span
id="more-38545"></span></p><p>El primer elemento que veremos son los <strong>designadores de eventos</strong>, un nombre un tanto barroco que en realidad se refiere a reemplazos por líneas del historial. Solo deberemos poner un símbolo «<em>!</em>» seguido del número de líneas que queremos retroceder en el historial, o seguido de la búsqueda que deseemos hacer.</p><ul><li><strong>!-1</strong> o <strong>!!</strong> es reemplazado por el contenido de la línea anterior.</li><li><strong>!-3</strong> es reemplazado por el contenido de hace tres líneas.</li><li><strong>!vlc</strong> es reemplazado por el contenido de la última línea que empezaba por <em>vlc</em>.</li><li><strong>!?vlc?</strong> es reemplazado por el contenido de la última que contenía <em>vlc</em>.</li><li><strong>!#</strong> es reemplazado por el contenido de la línea en la que estamos desde el principio hasta ese punto.</li></ul><p>El segundo elemento de esta receta son los <strong>designadores de palabras</strong>, que se utilizan en conjunción con los anteriores para referirse a palabras dentro de las líneas seleccionadas con los <em>designadores de eventos</em> que acabamos de ver. Se encadenan mediante un símbolo «<em>:</em>».</p><ul><li>!!<strong>:0-2</strong> se refiere al rango de palabras desde la primera a la tercera de la línea anterior.</li><li>!!<strong>:3</strong> se refiere a la cuarta palabra, mientras que !!<strong>:$</strong> a la última.</li></ul><p>Por último, están los <strong>modificadores</strong>, que pueden utilizarse para modificar esas palabras o líneas, que es lo más interesante de todo este asunto, a mi parecer. Se utilizan como los <em>designadores de palabras</em>, encadenados con un símbolo «<em>:</em>» cada uno.</p><ul><li>!!:$<strong>:h</strong> quita el componente final de la última palabra de la línea anterior, suponiendo que es una ruta a un archivo.</li><li>!!:$<strong>:t</strong> hace lo contrario, quita todos los componentes de la ruta salvo el último.</li><li>!!:$<strong>:r</strong> y !!:$<strong>:e</strong> hacen lo mismo que los dos anteriores, pero con extensiones de archivos.</li><li>!!:$<strong>:s/<em>viejo</em>/<em>nuevo</em>/</strong> o <strong>^viejo^nuevo</strong> sustituye <em>viejo</em> por <em>nuevo</em>.</li></ul><p>Cuando utilices los <em>designadores de eventos</em> verás la línea resultante ya con todos los reemplazos hechos después que pulses la tecla <em>intro</em>, así puedes ir viendo los resultados de tus acciones. De todas formas unos ejemplos nunca están de más, así que:</p><pre><code>cat /etx/apt/sources.list
^etx^etc
cp !!:$ !!:$:t:h
</code></pre><p>En la primera línea lo que hago es intentar listar el contenido del archivo «<em>/etc/apt/sources.list</em>», pero me equivoco. En la segunda línea corrijo el primer comando, cambiando «<em>etx</em>» por «<em>etc</em>». Rizando un poco el rizo, en la tercera línea copio «<em>/etc/apt/sources.list</em>» en el archivo «<em>sources</em>» del directorio actual.</p><pre><code>sudo cp /etc/apt/sources.list !#:$.bak
</code></pre><p>En este otro ejemplo, estoy haciendo una copia de seguridad de «<em>/etc/apt/sources.list</em>» en «<em>/etc/apt/sources.list.bak</em>» pero en lugar de volver a escribir el archivo por segunda vez, utilizo el <em>designador de evento</em> que me devuelve toda la línea escrita hasta ese punto «<em>!#</em>», obtengo solo la última palabra «<em>:$</em>» y finalmente le añado el «<em>.bak</em>».</p><p>Vía: <a
href="http://rwmj.wordpress.com/2009/11/16/tip-and-in-the-shell/">Richard WM Jones</a> | Foto original: <a
href="http://www.flickr.com/photos/hyougushi/211781912/">Hyougushi</a></p> ]]></content:encoded> <wfw:commentRss>http://bitelia.com/2009/11/como-utilizar-eficazmente-historial-terminal/feed</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
