Skal

Få det bedste ud af Linux Bash History

Få det bedste ud af Linux Bash History

Linux-kommandolinje - Terminalen holder som alle skaller en historie med kommandoer, der tidligere blev udført af en bruger. Denne historie er vedholdende og forbliver i hukommelsen, selv når vi genstarter vores system. Disse lagrede kommandoer kan tilbagekaldes og genbruges af os på den mest optimale måde til effektivt at bruge historikbesparende funktion for de fleste skaller.

Linux bash kommer med en meget kraftig kommando kaldet "historie". Denne kommando er en indbygget bash-kommando, der bruges til at udtrække historikoplysningerne om kommandoer, der er blevet udført af Linux-brugere i alle de foregående sessioner. I denne vejledning giver vi dig mulighed for at få mest muligt ud af din shellhistorie ved at lære den korrekte brug af kommandoen historie. Linux gemmer kommandohistorikken for en bestemt bruger i en fil ~ /.bash_history som standard.

Vi bruger Terminal-applikationen af ​​Linux til at køre de kommandoer, der er nævnt i denne vejledning.

Visning af hele historikken

En bruger kan se hele historikken for sine shell-kommandoer fra historikfilen, der udelukkende er gemt for den bruger ved hjælp af følgende enkle kommando:

$ historie

Historikken udskrives på skærmen i følgende standardformat:

I ovenstående billede kan du se en liste over alle kommandoer med et nummer tildelt hver af dem. Nummer 1-kommandoen svarer til den første kommando, du kørte, og den sidst nummererede kommando repræsenterer den seneste kommando, du udførte.

Hvis du har kørt mange kommandoer, siden du brugte bash, vil du bemærke, at der vil være hundreder og endda tusinder af disse kommandoer, der vises her. For at få adgang til et par relevante kommandoer kan du filtrere de resultater, der vises med historikfunktionen. Du kan også tilpasse historik-kommandoen til at vise et bestemt antal kommandoer til dig.

Filtrering af historikoutput

Hvis du vil filtrere din historikoutput baseret på et specifikt nøgleord, som du muligvis har brugt i de tidligere kommandoer, kan du bruge historik-kommandoen som følger:

$ historie | grep [nøgleord]

Eksempel: I dette eksempel vil jeg kun se de ping-kommandoer, jeg nogensinde har kørt i skallen. Derfor vil jeg bruge følgende kommando:

$ historie | grep ping

Du kan se, at min output nu kun viser kommandoerne inklusive mit søgeord "ping" Annonce

Visning af et antal nylige kommandoer

Du kan også se et bestemt antal kommandoer, for eksempel:

ELLER

N Antal nylige kommandoer

Du kan se et bestemt antal nyligt kørte kommandoer ved hjælp af følgende kommando:

$ historie | hale -n

Eksempel:

I dette eksempel vil jeg se de sidste 3 kommandoer, jeg kørte med nøgleordet 'ping':

$ historie | grep ping | hale -3

Outputtet viser kun de 3 seneste ping-kommandoer i stedet for hele historikken

N Antal ældste kommandoer

Du kan se et bestemt antal af de ældste kørekommandoer ved hjælp af følgende kommando:

$ historie | hoved -n

Eksempel:

I dette eksempel vil jeg se de ældste 3 kommandoer, jeg kørte, med nøgleordet 'ping':

$ historie | grep ping | hoved -3

Outputtet viser kun de 3 ældste ping-kommandoer i stedet for hele historikken

Liste over alle kommandoer med dato og tidsstempel

Hvis du ønsker at se din kommandohistorik sammen med dato og tidsstempel, skal du bruge følgende eksportkommando:

$ eksport HISTTIMEFORMAT = "% F,% T"

Når du nu vil se historikken, skal du bare køre kommandoen historie for at se output i følgende format:

Bemærk, at denne ændring i format er midlertidig, og at den gendannes til den tidligere standard, når du lukker sessionen.

Navigering af kommandoer fra historikken

Mens du er på kommandolinjen, kan du navigere gennem tidligere kørte kommandoer og også huske nogle nyligt anvendte kommandoer ved at angive et nøgleord.

Rul gennem kommandoer

Du kan bruge følgende tastaturkontroller til at navigere gennem historik-kommandoer

Pil op / Ctrl + PVed hjælp af disse kontroller kan du få vist den forrige kommando, du brugte. Du kan trykke på disse kontroller flere gange for at gå tilbage til en bestemt kommando i historien.
Pil ned / Ctrl + NVed hjælp af disse kontroller kan du få vist den næste kommando, du brugte. Du kan trykke på disse kontroller flere gange for at komme videre til en bestemt kommando i historikken.
Alt + RHvis du redigerer en kommando, som du har trukket fra historikken, på en nuværende linje, kan du bruge denne kontrol til at vende den tilbage til den oprindelige kommando.

Henter kommandoer

Du kan huske, køre eller vælge ikke at køre en bestemt kommando fra historikken ved hjælp af følgende kontrolelementer:

Ctrl + RVed hjælp af denne kontrol kan du huske en kommando fra historikken ved at angive en søgestreng.
Ctrl + OVed hjælp af denne kontrol kan du køre den kommando, du huskede via Ctrl + R
Ctrl + GVed hjælp af denne kontrol kan du afslutte historikken uden at køre den kommando, du huskede via Ctrl + R

Eksempel:

I dette eksempel trykkede jeg på ctrl + R og leverede derefter søgestrengen 'ar'. Historikken viste kommandoen 'arch'.

Da jeg kørte kommandoen 'arch' ved at trykke på ctrl + O, viste den CPU-arkitekturen i mit system:

Brug af Bash-historien

Den virkelige magi i bash-historien er ved at bruge forskellige kommandoer og tilpasse selve historik-kommandoen for at gøre bedst mulig brug af historiefunktionen:

Kører kommandoer fra historien

$ !#

Eksempel:

Her kører jeg kommandoenummer 95 fra min historie:

$ !95

Outputtet viser resultatet af 'lscpu', som blev opført som kommandonummer 95 i min bash-historie. Denne kommando viser mine CPU- og operativsystemspecifikationer.

$ !!

Eksempel:

Her kan du se, at jeg kørte kommandoen 'arch'. Ved at køre ovennævnte kommando kan jeg køre kommandoen 'arch' igen for at se min CPU-arkitektur som følger:

$ ![nøgleord]

Eksempel:

Jeg vil bruge følgende kommando til at genkøre den sidste kommando med nøgleordet 'dconf' i den:

$ !dconf

Du kan bekræfte i det følgende billede igen, at det var den sidste dconf-kommando, jeg havde kørt.

Brug af argumenter fra tidligere kommandoer

Linux bash giver dig mulighed for at køre en ny kommando ved hjælp af argumenter fra den forrige kommando. Det er især nyttigt, når du vil undgå at indtaste lange eller komplicerede argumenter igen. Du kan bruge følgende kommando til dette formål:

Brug af det sidste argument fra den forrige kommando

$ [Kommando] !$

Variablen !$ har det sidste argument fra den forrige kommando gemt i det.

Eksempel:

I dette eksempel opretter jeg en fil med et langt navn.

Nano [langnavnOfaFil]

Jeg kopierer det derefter til et andet sted ved at undgå at skrive det lange navn igen som følger:

Cp !$ [destinationsmappe]

Du kan se, at jeg var i stand til at kopiere en fil uden at indtaste filnavnet igen ved hjælp af variablen !$

Brug af det første argument fra den forrige kommando

Nogle gange er kun det første argument fra den forrige kommando nyttigt i det aktuelle.

I så fald kan du bruge følgende kommando:

$ [kommando] !^

Eksempel:

I det følgende eksempel kørte jeg ping-kommandoen ved at angive værtsnavnet og en optælling som argumenter. Nu vil jeg bruge værtsnavnet (første argument) snarere end 2 (det sidste argument) i min nye kommando. Jeg vil bruge følgende kommando til dette formål:

$ ping !^

Brug af alle argumenter fra den forrige kommando

Du kan også bruge alle argumenter fra den forrige kommando ved at bruge følgende kommando:

$ !*

Brug af et argument fra en historik-kommando

Du kan også bruge kommandoer fra din historie ved at genbruge deres argumenter. Brug følgende kommando til dette formål:

$ [kommando] ![nøgleord]: #

Eksempel:

$ ekko !cp: 2

Denne kommando tager følgende parametre:

kommando: ekko

Nøgleord: cp

#: 2 (andet argument i kommandoen)

Følgende output viser det 2. argument for den sidste cp-kommando, jeg kørte:

Brug af alle argumenter fra en historik-kommando

Den følgende kommando gemmer alle argumenter fra den søgte historik-kommando og bruger dem i den aktuelle kommando:

$ kommando ![nøgleord]: *

Eksempel:

I den følgende kommando vil jeg udskrive alle argumenterne for den sidste cp-kommando ved hjælp af ekkokommandoen som følger:

$ ekko ![cp]: *

Ændring og kørsel af tidligere kommandoer

Hvis du indtastede en kommando forkert, eller du vil køre en kommando igen ved at ændre noget tekst i den; følgende er måde at gøre det på:

$ ^ [forrige tekst] ^ [ny tekst]

Eksempel:

Jeg skrev forkert kommandoen 'grep' som 'gep' og nu vil jeg køre kommandoen ved at rette teksten:

$ ^ gep ^ grep

Nu kan du se, at min rettede kommando kører korrekt som følger:

Rydning af historik

For at slette historien om din bash skal du bruge følgende kommando:

$ historie -c

Denne kommando rydder din historie og fjerner alt indhold fra filen ~ /.bash_history

I denne vejledning har vi lært, at mens udskrivning af hele historikindholdet måske ikke er så nyttigt, er det den rigtige spilskifter at optimere output via de kommandoer, vi lærte. Øvelse sammen med denne artikel giver dig mulighed for at se de nøjagtige kommandoer, du vil, genkøre og genbruge disse kommandoer og også bruge argumenter fra tidligere kørte kommandoer for at optimere nye.

Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...