Skall

Få det beste ut av Linux Bash History

Få det beste ut av Linux Bash History

Linux-kommandolinje - Terminalen, som alle skjell, holder en historie med kommandoer som tidligere ble utført av en bruker. Denne historikken er vedvarende og forblir i minnet selv når vi starter systemet på nytt. Disse lagrede kommandoene kan tilbakekalles og gjenbrukes av oss på den mest optimale måten for effektivt å bruke historiens lagringsfunksjon for de fleste skjell.

Linux bash kommer med en veldig kraftig kommando kalt "historie". Denne kommandoen er en innebygd bash-kommando, som brukes til å trekke ut historikkinformasjonen om kommandoer som er utført av Linux-brukere i alle tidligere økter. I denne opplæringen vil vi gjøre det mulig å få mest mulig ut av skallhistorikken din ved å lære riktig bruk av historikkommandoen. Linux lagrer kommandohistorikken for en bestemt bruker i en fil ~ /.bash_history som standard.

Vi vil bruke Terminal-applikasjonen til Linux for å kjøre kommandoene som er nevnt i denne opplæringen.

Vise hele historikken

En bruker kan se hele historikken for hans / hennes skallkommandoer fra historikkfilen som er lagret eksklusivt for den brukeren ved å bruke følgende enkle kommando:

$ historie

Historikken blir skrevet ut på skjermen i følgende standardformat:

På bildet ovenfor kan du se en liste over alle kommandoer med et nummer tildelt hver av dem. Nummer 1-kommandoen tilsvarer den første kommandoen du kjørte, og den sist nummererte kommandoen representerer den siste kommandoen du utførte.

Hvis du har kjørt mange kommandoer siden du brukte bash, vil du observere at det vil være hundrevis og til og med tusenvis av disse kommandoene som vises her. For å få tilgang til noen få relevante kommandoer, kan du filtrere resultatene som vises av historikkfunksjonen. Du kan også tilpasse historikkommandoen for å vise et bestemt antall kommandoer for deg.

Filtrering av historikkutgangen

Hvis du vil filtrere historikkutgangen din basert på et bestemt nøkkelord som du kanskje har brukt i de forrige kommandoene, kan du bruke historikkommandoen som følger:

$ historie | grep [nøkkelord]

Eksempel: I dette eksemplet vil jeg bare vise ping-kommandoene jeg noensinne har kjørt i skallet. Derfor vil jeg bruke følgende kommando:

$ historie | grep ping

Du kan se at utdataene mine nå bare viser kommandoene, inkludert søkeordet mitt "ping" Annonse

Vise et antall nylige kommandoer

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

ELLER

N Antall nylige kommandoer

Du kan se et spesifikt antall nylig kjørte kommandoer gjennom følgende kommando:

$ historie | hale -n

Eksempel:

I dette eksemplet vil jeg se de tre siste kommandoene jeg kjørte, med nøkkelordet 'ping':

$ historie | grep ping | hale -3

Utgangen viser bare de tre nylige ping-kommandoene i stedet for hele historikken

N Antall eldste kommandoer

Du kan se et spesifikt antall av de eldste kjørekommandoene gjennom følgende kommando:

$ historie | hodet -n

Eksempel:

I dette eksemplet vil jeg se de eldste tre kommandoene jeg kjørte, med nøkkelordet 'ping':

$ historie | grep ping | hode -3

Utgangen viser bare de 3 eldste ping-kommandoene i stedet for hele historikken

Liste alle kommandoer med dato og tidsstempel

Hvis du ønsker å se kommandoprogrammet ditt sammen med dato og tidsstempel, kan du bruke følgende eksportkommando:

$ export HISTTIMEFORMAT = "% F,% T"

Nå når du ønsker å se historikken, er det bare å kjøre historikkommandoen for å se utdataene i følgende format:

Vær oppmerksom på at denne endringen i format er midlertidig, og at den vil bli gjenopprettet til forrige standard når du lukker økten.

Navigere kommandoer fra historien

Mens du er på kommandolinjen, kan du navigere gjennom tidligere kjørte kommandoer og også huske noen nylig brukte kommandoer ved å oppgi et nøkkelord.

Bla gjennom kommandoer

Du kan bruke følgende tastaturkontroller til å navigere gjennom historikkommandoer

Pil opp / Ctrl + PVed å bruke disse kontrollene kan du vise forrige kommando du brukte. Du kan trykke på disse kontrollene flere ganger for å gå tilbake til en bestemt kommando i historien.
Pil ned / Ctrl + NVed hjelp av disse kontrollene kan du vise neste kommando du brukte. Du kan trykke på disse kontrollene flere ganger for å gå videre til en bestemt kommando i historikken.
Alt + RHvis du redigerer en kommando som du har hentet fra historikken, på en nåværende linje, kan du bruke denne kontrollen til å tilbakestille den til den opprinnelige kommandoen.

Henter kommandoer

Du kan tilbakekalle, kjøre eller velge å ikke kjøre en bestemt kommando fra historikken, ved hjelp av følgende kontroller:

Ctrl + RVed å bruke denne kontrollen kan du huske en kommando fra historikken ved å spesifisere en søkestreng.
Ctrl + OVed hjelp av denne kontrollen kan du kjøre kommandoen du tilbakekalte gjennom Ctrl + R
Ctrl + GVed å bruke denne kontrollen kan du avslutte historikken uten å kjøre kommandoen du husket via Ctrl + R

Eksempel:

I dette eksemplet trykket jeg på ctrl + R og ga deretter søkestrengen 'ar'. Historikken viste kommandoen 'arch'.

Da jeg kjørte kommandoen 'arch' ved å trykke på ctrl + O, viste den CPU-arkitekturen til systemet mitt:

Bruke Bash-historien

Den virkelige magien i bash-historien er ved å bruke forskjellige kommandoer og tilpasse selve historikkommandoen for å utnytte historiefunksjonen best mulig:

Kjører kommandoer fra historien

$ !#

Eksempel:

Her kjører jeg kommando nummer 95 fra historien min:

$ !95

Utgangen viser resultatet av 'lscpu' som ble oppført som kommando nummer 95 i min bash-historie. Denne kommandoen viser CPU- og operativsystemspesifikasjonene mine.

$ !!

Eksempel:

Her kan du se at jeg kjørte kommandoen 'arch'. Ved å kjøre ovennevnte kommando kan jeg kjøre kommandoen 'arch' for å se CPU-arkitekturen min på følgende måte:

$ ![nøkkelord]

Eksempel:

Jeg vil bruke følgende kommando for å kjøre den siste kommandoen med nøkkelordet 'dconf' på nytt:

$ !dconf

Du kan bekrefte i det følgende bildet på nytt at det var den siste dconf-kommandoen jeg hadde kjørt.

Bruke argumenter fra tidligere kommandoer

Linux bash lar deg kjøre en ny kommando ved å bruke argumenter fra forrige kommando. Det er spesielt nyttig når du vil unngå å skrive inn lange eller kompliserte argumenter på nytt. Du kan bruke følgende kommando for dette formålet:

Bruker det siste argumentet fra forrige kommando

$ [Kommando] !$

Variabelen !$ har det siste argumentet fra forrige kommando lagret i den.

Eksempel:

I dette eksemplet vil jeg lage en fil med et langt navn.

Nano [longnameOfaFile]

Jeg vil deretter kopiere den til et annet sted ved å unngå å skrive det lange navnet på nytt som følger:

Cp !$ [destinasjonsmappe]

Du kan se at jeg klarte å kopiere en fil uten å skrive inn filnavnet på nytt ved å bruke variabelen !$

Bruker det første argumentet fra forrige kommando

Noen ganger er bare det første argumentet fra forrige kommando nyttig i den nåværende.

I så fall kan du bruke følgende kommando:

$ [kommando] !^

Eksempel:

I det følgende eksemplet kjørte jeg ping-kommandoen ved å spesifisere vertsnavnet og en telling som argumenter. Nå vil jeg bruke vertsnavnet (første argument) i stedet for 2 (det siste argumentet) i min nye kommando. Jeg vil bruke følgende kommando for dette formålet:

$ ping !^

Bruker alle argumentene fra forrige kommando

Du kan også bruke alle argumentene fra forrige kommando ved å bruke følgende kommando:

$ !*

Bruker ett argument fra en historikkommando

Du kan også bruke kommandoer fra historikken din ved å bruke argumentene på nytt. Bruk følgende kommando for dette formålet:

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

Eksempel:

$ ekko !cp: 2

Denne kommandoen tar følgende parametere:

kommando: ekko

Nøkkelord: cp

#: 2 (andre argument for kommandoen)

Følgende utgang viser det andre argumentet til den siste cp-kommandoen jeg kjørte:

Bruker alle argumenter fra en historikkommando

Følgende kommando lagrer alle argumentene fra den søkte historikkommandoen og bruker dem i den gjeldende kommandoen:

$ kommando ![nøkkelord]: *

Eksempel:

I den følgende kommandoen vil jeg skrive ut alle argumentene til den siste cp-kommandoen ved å bruke ekkokommandoen som følger:

$ ekko ![cp]: *

Endre og kjøre tidligere kommandoer

Hvis du skrev feil på en kommando eller ønsker å kjøre en kommando på nytt ved å endre tekst i den; følgende er måten å gjøre det på:

$ ^ [forrige tekst] ^ [ny tekst]

Eksempel:

Jeg skrev feil på kommandoen 'grep' som 'gep' og nå vil jeg kjøre kommandoen ved å rette på teksten:

$ ^ gep ^ grep

Nå kan du se at den korrigerte kommandoen min vil kjøre som følger:

Tømmer historie

For å slette historien til din bash, bruk følgende kommando:

$ historie -c

Denne kommandoen vil fjerne historikken din og fjerne alt innholdet fra filen ~ /.bash_history

I denne veiledningen har vi lært at selv om det ikke er så nyttig å skrive ut hele historikkinnholdet, er det den virkelige spillveksleren å optimalisere utdataene gjennom kommandoene vi lærte. Å øve sammen med denne artikkelen vil gjøre det mulig å se de nøyaktige kommandoene du vil, kjøre og bruke disse kommandoene på nytt, og også bruke argumenter fra tidligere kjørte kommandoer for å optimalisere nye.

Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...