GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar los comandos del historial de Bash

Bash tiene una rica historia. Es decir, es un caparazón antiguo con un ancestro aún más antiguo (el caparazón Bourne), pero también tiene una gran history Comando que supera a todas las demás interfaces de historial de shell en función de su número de funciones. La versión Bash de history permite búsquedas inversas, recuperación rápida, reescritura del historial y más.

La history El comando no es como muchos otros comandos. Es posible que esté acostumbrado a que los comandos sean archivos ejecutables ubicados en ubicaciones comunes a nivel del sistema como /usr/bin , /usr/local/bin , o ~/bin . El history incorporado el comando no está en tu PATH y no tiene ubicación física:

$ which history

which: no history in [PATH]

En su lugar, history es una función integrada del propio shell:

$ type history
history is a shell builtin
$ help history
history: history [-c] [-d offset] [n] or
history -anrw [filename] or
history -ps arg [arg...]

Display or manipulate the history list.
[...]

Por esa razón, la función de historial en cada shell es única, por lo que lo que usa en Bash puede no funcionar en Tcsh o Fish o Dash, y lo que usa en esos puede no funcionar en Bash. En algunos casos, saber lo que Bash puede hacer puede inspirar a los usuarios de otros shells a crear trucos interesantes para clonar el comportamiento de Bash, y puede desbloquear características de Bash que nunca supo que existían.

Ver tu historial de Bash

El uso más básico y frecuente de la history El comando es ver un historial de su sesión de shell:

$ echo "hello"
hello
$ echo "world"
world
$ history
  1  echo "hello"
  2  echo "world"
  3  history

Designadores de eventos

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Los designadores de eventos buscan en su historial por evento. Un evento en este contexto es un comando registrado en su historial, delineado por un carácter de nueva línea. En otras palabras, es una línea, marcada con un número de índice como referencia.

Los designadores de eventos en su mayoría comienzan con un signo de exclamación, a veces también llamado bang (! ).

Para volver a ejecutar un comando de su historial, use el signo de exclamación seguido inmediatamente (sin espacios) por el número de índice del comando que desea. Por ejemplo, suponga que la línea 1 contiene el comando echo "hello" y desea volver a ejecutarlo:

$ !1
echo "hello"
hello

Puede utilizar el posicionamiento relativo proporcionando un número negativo de líneas desde su posición actual en el historial. Por ejemplo, para retroceder tres entradas en el historial:

$ echo "foo"
foo
$ echo "bar"
bar
$ echo "baz"
baz
$ !-3
echo "foo"
foo

Si solo retrocedes una línea, puedes usar la abreviatura !! en lugar de !-1 . ¡Eso es un ahorro de una sola pulsación de tecla!

$ echo "foo"
$ !!
echo "foo"
foo

También puede buscar una cadena específica a través de las entradas, a la inversa, para ejecutar un comando. Para buscar un comando empezando con una cadena específica, use un signo de exclamación seguido inmediatamente (sin espacio) por la cadena que desea buscar:

$ echo "foo"
$ true
$ false
$ !echo
echo "foo"
foo

También puede buscar un comando que contenga una cadena en cualquier posición (no solo al principio). Para hacer eso, usa ! más la cadena que está buscando, como de costumbre, pero rodee la cadena con signos de interrogación en cada extremo. Puede omitir el signo de interrogación final si sabe que la cadena está seguida inmediatamente por un carácter de nueva línea (lo que significa que es lo último que escribió antes de presionar Retorno ):

$ echo "foo"
$ true
$ false
$ !?foo?
echo "foo"
foo

Sustitución de cadena

Similar a buscar cadenas al comienzo de una línea, puede buscar una cadena y reemplazarla con una nueva cadena, cambiando el comando:

$ echo "hello"
hello
$ echo "world"
world
$ ^hello^foo
echo "foo"
foo

Hacer útil el historial

En Bash, el comando de historial es capaz de hacer mucho más de lo que se ha cubierto aquí, pero este es un buen comienzo para acostumbrarse a usar su historial en lugar de tratarlo simplemente como una referencia. Usa el history Comando a menudo y vea cuánto puede hacer sin tener que escribir comandos. ¡Puede que te sorprendas a ti mismo!


Linux
  1. Cómo usar el comando de historial en Linux

  2. Cómo borrar el historial de línea de comandos BASH en Linux

  3. Cómo borrar el historial de Bash en Linux

  4. ¿Cómo puedo usar comandos con alias con xargs?

  5. Cómo:¿Historial ilimitado de Bash/shell?

Cómo usar el comando de lectura Bash

Cómo usar comandos personalizados en LibreOffice

Cómo usar operadores de prueba de archivos Bash en Linux

Cómo instalar FFmpeg en Linux y usar comandos

3 consejos útiles sobre cómo usar el comando de historial en Linux

Cómo usar los comandos FTP de Linux