GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare i comandi della cronologia di Bash

Bash ha una ricca storia. Cioè, è una vecchia shell con un antenato ancora più vecchio (la Bourne shell), ma ha anche una grande history comando che supera tutte le altre interfacce della cronologia della shell in base al numero di funzionalità. La versione Bash della history consente ricerche inverse, richiamo rapido, riscrittura della cronologia e altro.

La history comando non è come molti altri comandi. Potresti essere abituato a comandi come file eseguibili collocati in posizioni comuni a livello di sistema come /usr/bin , /usr/local/bin o ~/bin . La history incorporata il comando non è nel tuo PATH e non ha una posizione fisica:

$ which history

which: no history in [PATH]

Invece, history è una funzione incorporata della shell stessa:

$ 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.
[...]

Per questo motivo, la funzione cronologia in ogni shell è unica, quindi ciò che usi in Bash potrebbe non funzionare in Tcsh o Fish o Dash e ciò che usi in quelli potrebbe non funzionare in Bash. In alcuni casi, sapere cosa può fare Bash può ispirare gli utenti di altre shell a creare hack interessanti per clonare il comportamento di Bash e potrebbe sbloccare funzionalità di Bash che non sapevi esistessero.

Visualizza la cronologia di Bash

L'uso più elementare e frequente della history il comando serve per visualizzare una cronologia della sessione della shell:

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

Designatori di eventi

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

I designatori di eventi effettuano ricerche nella cronologia per evento. Un evento in questo contesto c'è un comando registrato nella cronologia, delineato da un carattere di nuova riga. In altre parole, è una riga, contrassegnata da un numero di indice di riferimento.

I designatori di eventi iniziano principalmente con un punto esclamativo, a volte chiamato anche bang (! ).

Per eseguire nuovamente un comando dalla cronologia, utilizzare il punto esclamativo seguito immediatamente (senza spazi) dal numero di indice del comando desiderato. Ad esempio, supponiamo che la riga 1 contenga il comando echo "hello" e vuoi eseguirlo di nuovo:

$ !1
echo "hello"
hello

Puoi utilizzare il posizionamento relativo fornendo un numero negativo di righe dalla tua posizione attuale nella cronologia. Ad esempio, per tornare indietro di tre voci nella cronologia:

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

Se stai tornando indietro di una sola riga, puoi usare l'abbreviazione !! invece di !-1 . Questo è un risparmio di un'intera sequenza di tasti!

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

Puoi anche cercare una stringa specifica attraverso le voci, al contrario, per eseguire un comando. Per cercare un comando avvio con una stringa specifica, usa un punto esclamativo seguito immediatamente (senza spazio) dalla stringa che vuoi cercare:

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

Puoi anche cercare un comando contenente una stringa in qualsiasi posizione (non solo all'inizio). Per farlo, usa ! più la stringa che stai cercando, come al solito, ma circonda la stringa con punti interrogativi su entrambe le estremità. Puoi omettere il punto interrogativo finale se sai che la stringa è immediatamente seguita da un carattere di nuova riga (il che significa che è l'ultima cosa che hai digitato prima di premere Invio ):

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

Sostituzione di stringhe

Simile alla ricerca di stringhe all'inizio di una riga, puoi cercare una stringa e sostituirla con una nuova stringa, modificando il comando:

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

Rendi utile la cronologia

In Bash, il comando cronologia è in grado di fare molto di più di quanto è stato trattato qui, ma questo è un buon inizio per abituarsi a usare la tua storia invece di trattarla solo come riferimento. Usa la history comando spesso e vedere quanto puoi fare senza dover digitare comandi. Potresti sorprenderti!


Linux
  1. Come cambiare Cron Shell (sh To Bash)?

  2. Come modificare il numero di comandi archiviati in Bash History

  3. come usare kill SIGUSR2 in bash?

  4. Come eseguire il timeout di un gruppo di comandi in Bash

  5. Procedura:cronologia Bash/shell illimitata?

Come utilizzare il comando di lettura Bash

Come usare i comandi personalizzati in LibreOffice

Come utilizzare gli operatori di test di file Bash in Linux

Come installare FFmpeg in Linux e utilizzare i comandi

3 consigli utili su come utilizzare il comando cronologia in Linux

Come usare i comandi FTP di Linux