Com executar una comanda de Linux sense desar-la a l'historial


Per defecte, totes les ordres que executeu al vostre terminal són emmagatzemades per l'intèrpret d'ordres (intèrpret d'ordres) en un fitxer determinat anomenat fitxer d'historial o historial d'ordres de l'intèrpret d'ordres. A Bash (les distribucions de Linux en tenen 500.

Per comprovar la mida de l'historial a Bash, executeu aquesta ordre:

$ echo $HISTSIZE

Per veure les ordres més antigues que heu executat, podeu utilitzar l'ordre history per mostrar l'historial d'ordres de shell:

$ history

De vegades, és possible que vulgueu desactivar l'intèrpret d'ordres de registre d'ordres al seu historial d'ordres. Podeu fer-ho de la següent manera.

Suprimeix una ordre de Linux de l'historial després d'executar-se

Podeu suprimir una ordre immediatament de l'historial de l'intèrpret d'ordres després d'executar-la a la línia d'ordres afegint-hi l'ordre history -d $ (history 1).

La subordre $ (history 1) recupera l'última entrada de l'historial a la sessió de terminal actual, on 1 és el desplaçament i l'opció -d ajuda a suprimeix-ho.

Qualsevol ordre executada normalment es desa a l'historial de l'intèrpret d'ordres.

$ echo "This command is saved in history"
$ history | tail

Tanmateix, quan afegiu l'ordre history -d $ (history 1) a una línia d'ordres, s'elimina immediatament de l'historial de l'intèrpret d'ordres tal com es mostra a la captura de pantalla següent:

$ echo "This command is not saved in history";history -d $(history 1)
$ history | tail

Una altra manera d'evitar que l'intèrpret d'ordres desi una ordre a l'historial és prefixar l'ordre amb un espai. Però això depèn completament del valor de la variable d'intèrpret d'ordres $HISTCONTROL definida al fitxer d'inici de ~/.bashrc Bash. S'hauria de configurar per tenir un d'aquests valors: ignorespace o ignoreboth, perquè aquest mètode funcioni.

Podeu comprovar el valor de la variable $HISTCONTROL tal com es mostra.

$ echo $HISTCONTROL
OR
$ cat ~/.bashrc | grep $HISTCONTROL

Si s'estableix la variable de l'intèrpret d'ordres esmentada anteriorment, qualsevol ordre amb un espai prefixat no es desa a l'historial:

$ echo "This command is not prefixed with space, it will be saved in history!"
$ echo "This command is prefixed with space, it will not be saved in history!"

Aquí hi ha alguns altres articles interessants sobre la història de Bash i les ordres d'historial:

  • 2 maneres de tornar a executar les darreres ordres executades a Linux
  • Com esborrar l'historial de la línia d'ordres BASH a Linux
  • Definiu la data i l'hora per a cada comanda que executeu a l'historial de Bash

Això és tot de moment! Utilitzeu el formulari de comentaris a continuació per compartir els vostres pensaments amb nosaltres sobre aquest tema. Fins la propera vegada, queda amb nosaltres.