Más sitios de Hipertextual

ALT1040

La guía del geek

AppleWeblog

El medio no oficial de Apple en castellano

Bitelia

Todo sobre software y la web

BlogCorazón

Ningún famoso a salvo

Cuchara Sónica

No podemos vivir sin la música

Ecetia

Un amor poco natural por los videojuegos

Extracine

Reunimos estrellas y talento: el celuloide se hace digital

Gizmología

La tecnología y los gadgets no tienen secretos

Gizmóvil

Absolutamente todo sobre teléfonos móviles

hiperDEF

Alta Definición (HD), 3D y equipos HiFi

Monkeyzen

Cosas que nos gustan

MotorFull

El mundo del motor

TVlia

La nueva televisión

Sección Deportiva

Apasionados por el fútbol

Vivir México

Contamos el pulso de una ciudad intensa

Cómo utilizar más eficazmente el historial de la terminal

Por Jorge Suárez el 19/11/2009 @10:00

Una terminal dentro de una terminal. Un chiste que nunca se ha hecho antes.

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 técnicas que, si utilizas la terminal a menudo, seguro que te interesan.

El primer elemento que veremos son los designadores de eventos, un nombre un tanto barroco que en realidad se refiere a reemplazos por líneas del historial. Solo deberemos poner un símbolo «!» seguido del número de líneas que queremos retroceder en el historial, o seguido de la búsqueda que deseemos hacer.

  • !-1 o !! es reemplazado por el contenido de la línea anterior.
  • !-3 es reemplazado por el contenido de hace tres líneas.
  • !vlc es reemplazado por el contenido de la última línea que empezaba por vlc.
  • !?vlc? es reemplazado por el contenido de la última que contenía vlc.
  • !# es reemplazado por el contenido de la línea en la que estamos desde el principio hasta ese punto.

El segundo elemento de esta receta son los designadores de palabras, que se utilizan en conjunción con los anteriores para referirse a palabras dentro de las líneas seleccionadas con los designadores de eventos que acabamos de ver. Se encadenan mediante un símbolo «:».

  • !!:0-2 se refiere al rango de palabras desde la primera a la tercera de la línea anterior.
  • !!:3 se refiere a la cuarta palabra, mientras que !!:$ a la última.

Por último, están los modificadores, 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 designadores de palabras, encadenados con un símbolo «:» cada uno.

  • !!:$:h quita el componente final de la última palabra de la línea anterior, suponiendo que es una ruta a un archivo.
  • !!:$:t hace lo contrario, quita todos los componentes de la ruta salvo el último.
  • !!:$:r y !!:$:e hacen lo mismo que los dos anteriores, pero con extensiones de archivos.
  • !!:$:s/viejo/nuevo/ o ^viejo^nuevo sustituye viejo por nuevo.

Cuando utilices los designadores de eventos verás la línea resultante ya con todos los reemplazos hechos después que pulses la tecla intro, así puedes ir viendo los resultados de tus acciones. De todas formas unos ejemplos nunca están de más, así que:

cat /etx/apt/sources.list
^etx^etc
cp !!:$ !!:$:t:h

En la primera línea lo que hago es intentar listar el contenido del archivo «/etc/apt/sources.list», pero me equivoco. En la segunda línea corrijo el primer comando, cambiando «etx» por «etc». Rizando un poco el rizo, en la tercera línea copio «/etc/apt/sources.list» en el archivo «sources» del directorio actual.

sudo cp /etc/apt/sources.list !#:$.bak

En este otro ejemplo, estoy haciendo una copia de seguridad de «/etc/apt/sources.list» en «/etc/apt/sources.list.bak» pero en lugar de volver a escribir el archivo por segunda vez, utilizo el designador de evento que me devuelve toda la línea escrita hasta ese punto «!#», obtengo solo la última palabra «:$» y finalmente le añado el «.bak».

Vía: Richard WM Jones | Foto original: Hyougushi

Entradas relacionadas

Referencias

Comentarios





Todos los comentarios están sujetos a nuestras políticas de comentarios.

Información sobre comentarios

¡Gracias por dejarnos tus comentarios! — por favor intenta mantener tu opinión relacionada con la anotación, no usar insultos, agresiones, o faltas de respeto al autor y otros participantes de la discusión, en caso de no hacerlo tu comentario podría ser borrado.

Existe mucha más información en nuestra política de comentarios.