Inicio / Blog's y documentación / Blogs / jmedina

En esta serie de articulos vamos a ver varios tips de configuración y de uso del famoso historial de comandos.

El shell del sistema mantiene un historial de los últimos comandos ejecutados, mediante el comando history podemos accesar dicho historial de comandos e incluso interactuar con él.

Usando el comando history nos muestra una lista de los últimos 500 comandos, por ejemplo:

$ history
 (...)
   482  cd samba
   483  ls
   484  cd ..
   485  ls
   486  pwd
   487  sudo mkdir -p /datos/p/proyecto001/share/apps/app001/libs/static/mas/rutas/hasta/el/destino
   488  cd /datos/p/proyecto001/share/apps/app001/libs/static/mas/rutas/hasta/el/destino
   489  cd
   490  cat .bash_local
   491  top
   492  cd bin/
   493  ls
   494  vim bash_colors.sh
   495  sh bash_colors.sh
   496  vim bash_colors.sh
   497  sh bash_colors.sh
   498  bash bash_colors.sh
   499  history

500 son muchos comandos, quizas solo nos interesa obtener una lista de los últimos 10 comandos ejecutados, para obtener solo un número en especifico de entradas del historial pasamos como argumento al comando el número de lineas que desamos ver, por ejemplo:

$ history 10
   493  ls
   494  vim bash_colors.sh
   495  sh bash_colors.sh
   496  vim bash_colors.sh
   497  sh bash_colors.sh
   498  bash bash_colors.sh
   499  history
   500  history 40
   501  history 20
   502  history 10

Esto es bastante úitil cuando no queremos ver en la pantalla la lista de los 500 comandos.

En el shell bash el historial de comandos se guarda en el archivo ~/.bash_history, si desea cambiar el nombre del archivo defina la variable de entorno HISTFILE, por ejemplo:

$ export HISTFILE=~/.mihistorial

Si desea cambiar el valor predeterminado (500) de número de entradas almacenadas en el historial de comandos defina la variable de entorno HISTSIZE, por ejemplo:

$ export HISTSIZE=1000

Recuerde que si desea hacer estos cambios permantentes puede agregar los comandos anteriores a su archivo ~/.bashrc.

En el siguiente articulo de esta serie veremos como sacarle jugo al historial de comandos mediante accesos de teclado y comandos de edición del historial.

En la mayoría de distribuciones Linux que usan el shell bash, precargan en sistema con un prompt bastante generico, el clasico:

bash-prompt-clasico

Aunque no siempre, es posible que nos toque trabajar en directorios con una ruta muy muy muy pero muy larga, en ese caso, con las configuraciones predeterminadas del prompt, el prompt quedaría muy grande y dejaría poco espacio en pantalla para escribir comandos, se vería algo así:

bash-prompt-clasico-prompt-largo

Como podemos ver, queda muy poco espacio para escribir nuestros comandos, además que si usamos comandos con varios argumentos y uno que otro pipe, entonces se vuelve algo poco ilegible.

Aquí les dejo una forma para configurar el prompt en dos líneas, una donde se mostrará el username, hostname y la ruta, la ruta puede tomar todo el espacio que requiera, el prompt quedará en una linea independiente, algo así:

bash-prompt-dos-lineas

comodo y legible :).

Ok para cambiar el prompt es necesario cambiar el valor de la variable de entorno PS1, con algo así:

$ export PS1='[\e[0;32m\u\e[m@\e[0;32m\h\e[m][\e[2;33m\w\e[m]\n\$ '

Si quieren hacerlo permantente, simplemente agregamos la misma linea a nuestro archivo ~/.bashrc.

Si desean cambiar los colores, o agregar más información a su prompt, les recomiendo el howto Bash Prompt HOWTO, ahí se muestra más info sobre los caracteres de control y los codigos de color.

Aquí les dejo una lista de atajos de teclado ó shortcuts que normalmente uso cuando estoy trabajando el shell bash, como soy muy huevon y la verdad me la paseo casi todo el día trabajando en la consola/shell/cli/terminal pues utilzando estos atajos de teclado a la larga me ahorran tiempo en estar escribiendo muchas veces comandos, repitiendo comandos, repitiendo busquedas, etc.

 

  • Ctrl+l Limpia la pantalla, hace lo mismo que el comando clear pero no limpia la linea actual.
  • Ctrl+r Busca un comando tecleado con anterioridad que empiece con las letras que tecleamos.
  • Ctrl+u Limpia desde la posicion actual del cursor hasta el principio de la linea.
  • Ctrl+a Posiciona el cursos al principio de la linea de comandos.
  • Ctrl+e Posiciona el cursos al final de la linea de comandos.
  • Ctrl+-> Mueve el cursor una palabra hacía adelante
  • Ctrl+<- Mueve el cursor una palabra hacía atras.
  • Esc+u Cambia a Mayusculas la palabra adelante del cursor.
  • Esc+t Inverte el orden de dos palabras contiguas.
  • Esc+p Busca en el historial de comandos.
  • Ctrl+c Cancela la ejecucion de el proceso actual.
  • Ctrl+d Hace logout y/o cierra la sesion actual (equivalente al comando exit)
  • Ctrl+h Borra una letra atras del curso (igual que la tecla backspace/retroceso).
  • Ctrl+z Manda el proceso actual al background (segundo plano), el proceso puede ser regresado a primer plano con los comandos: jobs y fb.
  • Esc+p Similar a Ctrl+r

 

Si tienes alguna duda al respecto de estos atajos de teclados ó deseas contribuir con otros atajos utililes no dudes en enviar tus comentarios.

Este es mi blog personal en Compugraf, el objetivo es que sirva como una bitácora con experiencias, tips, noticias relacionadas al software libre y GNU/Linux. Me pueden contactar en:

E-mail: jmedina[aRR0Ba]e-compugraf.com

IM (MSN/Gtalk): jmedina[aRR0Ba]e-compugraf.com

Mis Galerias

Lun Mar Mié Jue Vie Sáb Dom
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30