Du kender muligvis den grundlæggende brug af historik-kommandoen, men det kan gøre meget mere end det. Bash-historik gemmes normalt i filen ~ /.bash_history. Det giver dig mulighed for at tilbagekalde og genbruge den gemte post på en effektiv måde for at få det bedste ud af bash historikbesparende funktion. Ikke kun dette, men du kan også tilpasse og kontrollere bash-kommandooutputtet på den måde, du ønsker.
I denne artikel vil vi forklare, hvordan man effektivt bruger og tilpasser bash-kommandohistorikken for at få mest muligt ud af dens funktioner.
Vi har brugt Debian 10 til at køre de kommandoer og procedurer, der er nævnt i denne artikel.
Brug af bash-kommandohistorik
1. Visning af bash-historikken
For at se hele historikken over shell-kommandoer kan du køre følgende kommando i Terminal:
$ historieDen viser hele historikken for en bestemt bruger fra historikfilen, der er gemt specielt til den pågældende bruger. Du vil se alle kommandoer, der starter med et nummer, der er tildelt hver af dem. Den viser de ældre kommandoer øverst med nummer 1 og de nyere kommandoer nederst.
2. Søgning efter historikoutput
Du kan også søge efter et bestemt nøgleord fra historikoutputtet. Par historik-kommandoen med grep og et specifikt nøgleord for at søge efter kommandoer, der matcher dit angivne nøgleord som følger:
$ historie | grep [nøgleord]For eksempel, for at liste alle kommandoer, der inkluderer nøgleordet "find", ville kommandoen være:
$ historie | grep find
3. Visning af sidste n kommandoer
Historik-kommandoen viser som standard det sidste 1000 antal kommandoer, der udføres af en bruger. I tilfælde af at du kun vil liste et specifikt nummer, lad os sige n antallet af sidst udførte kommando, kør følgende kommando i Terminal:
$ historie nFor eksempel, for at liste de sidste 7 udførte kommandoer, ville kommandoen være:
$ historie 7For at se antallet af de sidste n run-kommandoer, der inkluderer et bestemt nøgleord, kan du bruge følgende syntaks:
$ historie | grep nøgleord | hale -nEt eksempel på dette ville være at se de sidste 4 udførte kommandoer med nøgleordet “java”.
$ historie | grep java | hale -n
4. Visning af ældste kommandoer
For at se det ældste antal kommandoer kan du bruge følgende syntaks i Terminal:
$ historie | hoved -nFor at se det ældste antal kommandoer, der inkluderer et bestemt nøgleord, skal du bruge følgende syntaks:
$ historie | grep nøgleord | head -nEt eksempel på dette ville være at se de ældste 4 udførte kommandoer med nøgleordet "java".
$ historie | grep java | hoved -4
5. Ryd Bash-historien fuldstændigt
For at fjerne hele bash-historikken skal du køre følgende kommando i Terminal:
$ historie -cwTilpasning af bash-kommandohistorik
For at tilpasse bash-kommandohistorikken bliver vi nødt til at foretage ændringer i ~ /.bashrc-fil. For at redigere ~ /.bashrc-fil, brug følgende kommando:
$ nano ~ /.bashrcNår du er færdig med at ændre filen, skal du bruge Ctrl + O og Ctrl + X for at gemme og lukke nano-editoren.
Kør derefter følgende kommando for at anvende ændringerne:
$ kilde ~ /.bashrc1. Føj dato og tidsstempel til Bash History
Hvis du vil vise dato og tidsstempel sammen med kommandohistorikken, kan du gøre det ved at tilføje følgende linje i ~ /.bashrc:
$ eksport HISTTIMEFORMAT = '% F,% T'Kør nu historie kommando, og den viser kommandohistorikken med tilsvarende data og tidsstempel.
2. Stigende størrelse på Bash History
Bash gemmer som standard 500 kommandoer i historiklisten. Vi kan dog ændre denne værdi ved hjælp af HISTSIZE-værdien.
For at se den aktuelle størrelse af bash-historie skal du køre følgende kommando i Terminal:
$ echo $ HISTSIZETilsvarende er standardstørrelsen på bash-historikfilen 500. Det er det maksimale antal poster, der er indeholdt i historikfilen.
For at øge størrelsen på bash-historien, lad os sige 10000, tilføj følgende linjer i ~ /.bashrc-fil:
$ HISTSIZE = 10000$ HISTFILESIZE = 10000
For at kontrollere, om bash-historikstørrelsen er ændret med succes, skal du køre følgende kommandoer i Terminal:
$ echo $ HISTSIZE$ echo $ HISTFILESIZE
3. Tilføj Bash-kommandoer til historikfilen
Når en bash-session er lukket, kan du vælge at overskrive eller tilføje kommandoerne i historikfilen ved hjælp af variablen histappend. For at se de aktuelle indstillinger skal du køre følgende kommando i Terminal:
$ shopt histappend"On" i output viser, at histappend-indstillingen er aktiveret, og kommandoerne tilføjes i historikfilen i stedet for at overskrive. Mens “off” vises, er indstillingen histappend deaktiveret, og filen overskrives.
Åbn ~ /.bashrc-fil og:
Tilføj følgende linje, hvis du vil føje kommandoerne til historikfilen i stedet for at overskrive:
$ shopt -s histappendEller tilføj følgende linje, hvis du vil deaktivere tilføjelsesindstillingen og vil overskrive filen ved afslutning:
$ shopt -u histappend4. Opbevar straks Bash-historien
Bash gemmer som standard kun sessionen i bash-historikfilen, når sessionen slutter. For at ændre denne standardadfærd og gøre det til øjeblikkeligt at gemme hver kommando, du har udført, kan du gøre brug af PROMPT_COMMAND.
Rediger ~ /.bashrc-fil og tilføj følgende linje:
$ PROMPT_COMMAND = 'historie -a'Nu når du udfører en kommando, føjes den straks til historiefilen.
5. Kontrol Bash-historie
Vi kan styre den måde, bash gemmer vores kommandohistorik gennem HISTCONTROL-variablen. Vi kan specificere det for at ignorere duplikerede poster og / eller for at ignorere poster med førende hvide mellemrum.
- ignorerer mellemrum - fjerner kommandoer, der begynder med en rumhistorikliste.
- ignoredups - fjern duplikatkommandoer.
- ignoreboth - Aktiver både ignoreretups og ignorerer plads
- erasedups - fjern duplikater fra hele listen
For at anvende disse funktioner skal du åbne ~ /.bashrc og tilføj følgende linje med værdier adskilt af tyktarmen som følger:
$ export HISTCONTROL = ignorerer område: ignoreret ups6. Ignorer specifikke kommandoer
Vi kan også kontrollere, hvilke kommandoer der skal ignoreres i historien ved hjælp af en variabel HISTIGNORE. Det er en kolon-adskilt liste over mønstre, hvor vi kan specificere alle de kommandoer, som vi vil ignorere fra historien.
For eksempel, hvis vi ikke ønsker at liste de grundlæggende kommandoer såsom historie, ls, pwd-kommandoer i historiklisten, tilføjer vi følgende linje i ~ /.bashrc-fil:
$ export HISTIGNORE = "historie: ls: pwd:"Med Linux bash-kommandohistorik kan du gøre meget mere end bare at gentage de gamle kommandoer. I denne artikel har vi lært, hvordan man bruger bash-historikken til at se de kommandoer, der tidligere er udført, og også lært at kontrollere den måde, bash gemmer kommandohistorikken.