El shell almacena los comandos ejecutados en un archivo de texto localizado en el directorio de inicio del usuario. el nombre de este archivo difiere en función del shell utilizado. Podemos recuperar los comandos almacenados en este archivo, shell ofrece dos opciones: emacs y vi. Estas dos opciones son mutuamente excluyentes, es decir, la activación de una desactiva la otra. en ksh, ambas están desactivadas por defecto. En bash, la opción emacs está activada por defecto.
Configuración por defecto en ksh
Configuración por defecto en bash
Configurar la recuperación de comandos en ksh
Opción vi
El shell nos ofrece el uso de comandos idénticos a los que tiene el editor vi para recuperar y, eventualmente modificar los comandos almacenados en el archivo ~/.sh_history. Para conseguir esto debemos activarlo con la opción:
A partir de este momento, hay que imaginarse que se está dentro del editor vi. Ciertas acciones se ejecutan en modo comando, otras en modo inserción. La siguiente tabla agrupa los comandos principales que nos permite gestionar el histórico.
Acciones en modo inserción
Encontramos que es el modo por defecto. El modo inserción permite introducir o modificar un comando.
Acciones en modo comando
Opción emacs
El shell ofrece el uso de comandos idénticos a los del editor emacs para recuperar y, eventualmente, modificar los comandos almacenados en el archivo ~/.sh_history. Para ello debemos activar la opción:
Veamos la tabla siguiente donde se agrupan los comandos principales que permiten gestionar el histórico.
Ventaja de la opción emacs
Para los que no estamos familiarizados con las opciones vi y emacs, todos estos comandos nos pueden parecer complicados. En este caso, se recomienda usar el modo emacs ya que con una configuración suplementaria.
Veamos la representación de las flechas:
Con el comando alias podemos realizar las correspondencias entre las flechas del teclado y los comandos del modo emacs.
A continuación veremos el modo de hacerlo:
A continuación en el siguiente ejemplo creará la correspondencia entre la flecha hacia arriba y el comando emacs para ascender en el histórico: ^p.
Veamos a continuación lo que tiene que aparecer en pantalla:
Veamos los caracteres que fueron necesarios para obtener la línea anterior:
Seguimos el procedimiento para las demás teclas:
Mostrar alias:
Utilizamos una tubería y los comandos introducidos:
Configurar la recuperación de los comandos en bash
En bash, la gestión del histórico es mucho más simple. Como en ksh, las opciones emacs y vi están disponibles, la opción emacs está activada por defecto. La correspondencia entre los comandos emacs y las flechas del teclado es automática.
El usuario que utilice la opción vi, almacena los comandos en ~/.bash_history. Podemos ver el archivo tecleando:
Veremos nuestro editor (en mi caso utilice el editor gedit) los comandos almacenados en el historial de bash.
Completar los nombres de archivo
Esta funcionalidad nos la ofrece ksh y bash. Pulsando las teclas adecuadas, el shell puede completar automáticamente un nombre de archivo o proponer la lista de los archivos disponibles en un directorio determinado.
Completar en el shell bash
Ejemplo
Veamos una lista del directorio actual:
Si tecleamos la primera letra de un nombre de archivo seguida del carácter de tabulación, el bash completa automáticamente la entrada por el nombre del archivo del directorio actual que comience por la letra que elijamos, con la condición de que el directorio no contenga más de uno, que es caso que nos ocupa:
Si hay nombres de ficheros que comienzan con las mismas letras, el shell no completa, en cambio, si pulsamos dos veces el tabulador, el shell muestra las distintas posibilidades.
Completar en el shell ksh
Modo vi
Veamos los ejemplos siguientes muestran las teclas que permiten gestionar el completado de los nombres de archivo cuando un usuario trabaja con ksh configurado en modo vi.
Ejemplo
La lista de los archivos del directorio actual es el siguiente:
Tecleando la primera letra de un nombre de archivo seguido de Escape «|«, el ksh completa automáticamente la entrada por el nombre de archivo del directorio actual que comienza por la letra e, con la condición de de que el directorio no contenga más de uno, que es el caso que nos ocupa:
Para completar pulsamos la tecla Esc y «\» comenzando el auto completado:
Cuando tenemos múltiples posibilidades, apretar la tecla Esc «=» permite listar las distintas posibilidades.
Modo emacs
Veamos los ejemplos siguientes que muestran las teclas que permiten gestionar el completado de los nombres de archivo cuando un usuario trabaja con ksh configurado en modo emacs (set -o emacs)
Ejemplo
La lista de archivos del directorio actual es:
Veamos cuando hay múltiples posibilidades:
Tabla resumen
Debe estar conectado para enviar un comentario.