Edición en la línea de comandos del Shell

De vez en cuando hay ocasiones en las que debemos modificar algo en nuestro comando actual, quizá detectamos un typo al inicio de este o simplemente queremos modificar un comando que buscamos en el historial el historial para que se adapte al contexto de lo que estamos haciendo. La edición en la línea de comandos puede hacer este tipo de actividades de una manera bastante sencilla.

Múltimples Shells, como pueden ser bash, ksh, tcsh y zsh proveen dos modos de edición de línea de comandos. El primero de ellos es emacs, el cual es el que se utiliza por default, y el segundo es vi.

Modo Emacs

Como es de esperarse, en el modo de edición de comandos de emacs, se pueden usar los atajos de teclado que comunmente se utilizan en este editor. Por ejemplo, para moverse al inicio de la línea de comandos se puede teclear ctrl+a, para llamar a un comando anterior se puede utilizar ctrl+p. Algunos de los atajos de teclado más comunes en este modo se listan a continuación:

  • ctrl+b: Mover el cursor hacia la izquierda (atrás).
  • ctrl+f: Mover el cursor hacia la derecha (adelante).
  • ctrl+p: Arriba (línea de comando anterior).
  • ctrl+n: Abajo (siguiente línea de comando).
  • ctrl+e: Moverse al final de la línea.
  • ctrl+a: Moverse al inicio de la línea.
  • ctrl+x ctrl+e: Modificar el comando actual en el editor definido en la variable de entorno $EDITOR o el que esté configurado por default.

Modo Vi

Cuando se utiliza el modo de edición de comandos de vi se inicia en modo de inserción, lo cual quiere decir que se pueden empezar a escribir comandos de inmediato. Para entrar en modo de comandos presione esc. Para moverse al comando anterior, por dar un ejemplo, presione esc k. Para volver al modo de inserción de texto puede hacerlo presionando i, I, a o A. Algunos de los modos más comunes se listan a continuación.

  • esc: Entra en modo de comandos.
  • h: Mueve el cursor hacia la izquierda (atrás).
  • l: Mueve el cursor hacia la derecha (adelante).
  • k: Arriba (línea de comando anterior).
  • j: Abajo (siguiente línea de comando).
  • $: Moverse al final de la línea.
  • ^: Moverse al inicio de la línea.
  • i: Entrar al modo de inserción.
  • a: Entrar al modo de inserción adjuntando texto a la posición actual.
  • I: Entrar al modo de inserción al inicio de la línea de comandos.
  • A: Entrar al modo de inserción al final de la línea de comandos.
  • v: Modificar el comando actual en el editor definido en la variable de entorno $EDITOR o el que esté configurado por default.