Slik bruker du historiekommandoen på Linux
Fatmawati Achmad Zaenuri/Shutterstock
Linuxs skall lagrer en historikk over kommandoene du kjører, og du kan søke i den for å gjenta kommandoer du har kjørt tidligere. Når du forstår kommandoen Linux historie og hvordan du bruker den, kan den øke produktiviteten din betydelig.
Manipulere historie
Som George Santayana sa berømt , De som ikke kan huske fortiden, er dømt til å gjenta den. Dessverre, på Linux, hvis du ikke kan huske fortiden, kan du ikke gjenta den, selv om du vil.
I SLEKT 10 grunnleggende Linux-kommandoer for nybegynnere
Det er da Linux |_+_| kommando kommer godt med. Den lar deg se gjennom og gjenta dine tidligere kommandoer. Dette er ikke ment å bare oppmuntre til latskap eller spare tid – det er også en effektivitetsfaktor (og nøyaktighet). Jo lengre og mer komplisert en kommando er, desto vanskeligere er det å huske og skrive uten å gjøre en feil. Det er to typer feil: en som hindrer kommandoen i å fungere, og en som lar kommandoen fungere, men får den til å gjøre noe uventet.
Den |_+_| kommando eliminerer disse problemene. Som de fleste Linux-kommandoer, det er mer i det enn du kanskje tror . Men hvis du lærer hvordan du bruker |_+_| kommando, kan det forbedre bruken din av Linux-kommandolinjen, hver eneste dag. Det er en god investering av tiden din. Det er langt bedre måter å bruke |_+_| kommando enn bare ved å trykke på pil opp gjentatte ganger .
Historiekommandoen
I sin enkleste form kan du bruke |_+_| kommando ved bare å skrive navnet:
history
Annonse
Listen over tidligere brukte kommandoer skrives deretter til terminalvinduet.
Kommandoene er nummerert, med de sist brukte (de med høyest tall) på slutten av listen.
For å se et visst antall kommandoer, kan du sende et tall til |_+_| på kommandolinjen. For eksempel, for å se de siste 10 kommandoene du har brukt, skriv inn følgende:
history
Du kan oppnå samme resultat hvis du rør |_+_| gjennom |_+_| kommando . For å gjøre det, skriv inn følgende:
history
I SLEKT: Hvordan bruke Pipes på Linux
Gjenta kommandoer
Hvis du vil gjenbruke en kommando fra historielisten, skriv inn et utropstegn (!) og nummeret på kommandoen uten mellomrom.
For å gjenta kommando nummer 37, skriver du for eksempel denne kommandoen:
history
Annonse
For å gjenta den siste kommandoen, skriv inn to utropstegn, igjen, uten mellomrom:
history
Dette kan være nyttig når du gir en kommando og glemmer å bruke |_+_| . Skriv inn |_+_|, ett mellomrom, de doble utropstegnene, og trykk deretter Enter.
For det følgende eksempelet skrev vi en kommando som krever |_+_|. I stedet for å skrive inn hele linjen på nytt, kan vi lagre en haug med tastetrykk og bare skrive |_+_|, som vist nedenfor:
history
history
Så du kan skrive inn det tilsvarende tallet fra listen for å gjenta en kommando eller bruke de doble utropstegnene for å gjenta den siste kommandoen du brukte. Men hva om du vil gjenta den femte eller åttende kommandoen?
Du kan bruke ett utropstegn, en bindestrek (-) og nummeret på en tidligere kommando (igjen uten mellomrom) for å gjenta den.
For å gjenta den 13. forrige kommandoen, skriver du følgende:
tail
Søker etter kommandoer etter streng
For å gjenta den siste kommandoen som starter med en bestemt streng, kan du skrive et utropstegn, og deretter strengen uten mellomrom, og deretter trykke Enter.
AnnonseFor å gjenta den siste kommandoen som startet med |_+_|, skriver du for eksempel denne kommandoen:
sudo
Det er imidlertid et element av fare i dette. Hvis den siste kommandoen som startet med |_+_| ikke er den du tror det er, starter du feil kommando.
For å gi et sikkerhetsnett kan du imidlertid bruke |_+_| (print) modifikator, som vist nedenfor:
sudo
Dette instruerer |_+_| for å skrive ut kommandoen til terminalvinduet, i stedet for å utføre den. Dette lar deg se kommandoen før du bruker den. Hvis det er kommandoen du ønsker, trykker du på pil opp og trykker Enter for å bruke den.
Hvis du vil finne en kommando som inneholder en bestemt streng, kan du bruke et utropstegn og spørsmålstegn.
AnnonseFor å finne og utføre den første samsvarende kommandoen som inneholder ordaliasene, skriver du for eksempel denne kommandoen:
sudo
Dette vil finne enhver kommando som inneholder strengaliasene, uavhengig av hvor den vises i strengen.
Interaktivt søk
Et interaktivt søk lar deg hoppe gjennom en liste over samsvarende kommandoer og gjenta den du ønsker.
Bare trykk Ctrl+r for å starte søket.
Mens du skriver inn søketråden, vises den første samsvarende kommandoen. Bokstavene du skriver vises mellom tilbaketikken (`) og apostrofen ('). De samsvarende kommandoene oppdateres etter hvert som du skriver inn hver bokstav.
Hver gang du trykker Ctrl+r, søker du bakover etter neste samsvarende kommando, som vises i terminalvinduet.
Når du trykker Enter, vil den viste kommandoen utføres.
For å redigere en kommando før du utfører den, trykk enten venstre eller høyre piltast.
Annonse
Kommandoen vises på kommandolinjen, og du kan redigere den.
Du kan bruke andre Linux-verktøy for å søke i historikklisten. For eksempel å pipe utdata fra |_+_| inn i |_+_| og søk etter kommandoer som inneholder strengen aliaser du kan bruke denne kommandoen:
sudo !!
Endre den siste kommandoen
Hvis du trenger å fikse en skrivefeil, og deretter gjenta kommandoen, kan du bruke merket (^) for å endre den. Dette er et flott triks å ha i ermet når du staver feil eller ønsker å kjøre en på nytt med et annet kommandolinjealternativ eller parameter.
For å bruke den, skriv (uten mellomrom) en indikator, teksten du vil erstatte, en annen indikator, teksten du vil erstatte den med, en annen indikator, og trykk deretter Enter.
Anta for eksempel at du skriver inn følgende kommando, ved et uhell skriver shhd i stedet for sshd:
sudo
Du kan enkelt rette dette ved å skrive inn følgende:
sudo
Kommandoen utføres med shhd korrigert til sshd.
Slette kommandoer fra historikklisten
Du kan også slette kommandoer fra historikklisten med |_+_| (slett) alternativ. Det er ingen grunn til å beholde den feilstavede kommandoen din i historielisten.
AnnonseDu kan bruke |_+_| for å finne den, send nummeret til |_+_| med |_+_| mulighet for å slette den, og søk deretter på nytt for å sikre at den er borte:
:p
history
history
Du kan også sende en rekke kommandoer til |_+_| alternativ. For å slette alle listeoppføringer fra 22 til 32 (inklusive), skriv inn denne kommandoen:
grep
For å slette bare de siste fem kommandoene, kan du skrive inn et negativt tall, slik:
-d
Manuell oppdatering av historikkfilen
Når du logger på eller åpner en terminaløkt, leses historikklisten inn fra historikkfilen. I Bash er standard historikkfil |_+_|.
Eventuelle endringer du gjør i den nåværende terminalvindusøkten blir bare skrevet til historiefilen når du lukker terminalvinduet eller logger ut.
Anta at du vil åpne et annet terminalvindu for å få tilgang til hele historikklisten, inkludert kommandoer du skrev inn i det første terminalvinduet. Den |_+_| (alle) alternativet lar deg gjøre dette i det første terminalvinduet før du åpner det andre.
For å bruke den, skriv inn følgende:
grep
Kommandoene skrives stille til historiefilen.
AnnonseHvis du vil skrive alle endringer i historikklisten til historikkfilen (hvis du for eksempel har slettet noen gamle kommandoer), kan du bruke |_+_| (skrive) alternativ, slik:
history
Sletter historikklisten
For å fjerne alle kommandoer fra historikklisten, kan du bruke |_+_| (klart) alternativ, som følger:
-d
Hvis du i tillegg vil tvinge disse endringene til historikkfilen, bruk |_+_| alternativ, slik:
-d
Sikkerhet og historikkfilen
Hvis du bruker applikasjoner som krever at du skriver inn sensitiv informasjon (som passord) på kommandolinjen, husk at dette også blir lagret i historikkfilen. Hvis du ikke vil at viss informasjon skal lagres, kan du bruke følgende kommandostruktur for å slette den fra historielisten umiddelbart:
.bash_history
-a
Denne strukturen inkluderer to kommandoer atskilt med semikolon (;). La oss bryte ned dette:
-d
: Maksimalt antall oppføringer historielisten kan inneholde.- Når du logger på eller starter en terminalvindusøkt, fylles historikklisten fra |_+_| fil.
- Når du lukker et terminalvindu, angis maksimalt antall kommandoer i |_+_| lagres i |_+_| fil.
- Hvis |_+_| shell-alternativet er aktivert, er kommandoene lagt til |_+_|. Hvis |_+_| er ikke satt, |_+_| er overskrevet.
- Etter å ha lagret kommandoene fra historielisten til |_+_| , er historikkfilen avkortet slik at den ikke inneholder mer enn |_+_| linjer.
- |_+_|Linjer som begynner med et mellomrom legges ikke til i historikklisten.
- |_+_|Dupliserte kommandoer legges ikke til i historiefilen.
- |_+_|Aktiverer begge de ovennevnte.
HISTSIZE
: Fullstendig dato- og tidsstempel (formater dag-dato-måned-år og time:minutter:sekunder)- & rsaquo; Hvordan tilpasse Bash Shell med shopt
- & rsaquo; Hva er Bash Shell, og hvorfor er det så viktig for Linux?
- › Hva er MIL-SPEC fallbeskyttelse?
- › Datamaskinmappen er 40: Hvordan Xerox Star skapte skrivebordet
- › 5 nettsteder hver Linux-bruker bør bokmerke
- › Slik finner du Spotify Wrapped 2021
- › Funksjoner vs. formler i Microsoft Excel: Hva er forskjellen?
- & rsaquo; Cyber Monday 2021: Beste tekniske tilbud
Du kan bruke |_+_| kommandoen for å sikre at kommandoen som inneholder passordet ble fjernet fra historikklisten.
AnnonseDet er en enda enklere måte å gjøre dette på. Fordi Bash ignorerer linjer som begynner med et mellomrom som standard, inkluderer du bare et mellomrom på begynnelsen av linjen, som følger:
-w
-c
Kommandoen med passordet legges ikke til i historikklisten. Grunnen til at dette trikset fungerer er inneholdt i |_+_| fil.
.bashrc-filen
Den |_+_| filen kjøres hver gang du logger på eller åpner et terminalvindu. Den inneholder også noen verdier som kontrollerer oppførselen til |_+_| kommando. La oss rediger denne filen med |_+_| .
Skriv inn følgende:
-w
Nær toppen av filen ser du to oppføringer:
history
Disse to verdiene samhandler på følgende måter:
Også nær toppen av filen ser du en oppføring for |_+_| verdi.
Du kan angi denne verdien til å gjøre ett av følgende:
Du kan også liste spesifikke kommandoer du ikke vil legge til i historikklisten din. Skillet disse med et kolon (:) og satte dem i anførselstegn (...).
Du vil følge denne strukturen for å legge til en linje i din |_+_| fil, og erstatte kommandoene du vil ignorere:
$()
Bruke tidsstempler
Hvis du vil legge til tidsstempler til historikklisten, kan du bruke |_+_| innstilling. For å gjøre det, legger du bare til en linje som følgende til din |_+_| fil:
history 1
Merk at det er et mellomrom før de avsluttende anførselstegnene. Dette forhindrer tidsstemplet fra å slå opp til kommandoene i kommandolisten.
Nå, når du kjører historiekommandoen, ser du dato- og tidsstempler. Merk at alle kommandoer som var i historikklisten før du la til tidsstemplene vil bli tidsstemplet med dato og klokkeslett for den første kommandoen som mottar et tidsstempel. I dette eksemplet vist nedenfor var dette kommando 118.
Det er et veldig langdrygt tidsstempel. Du kan imidlertid bruke andre tokens enn |_+_| å foredle det. De andre tokenene du kan bruke er:
history 5
:.bashrc
:.bashrc
:history
:gedit
: HISTSIZE
:HISTFILESIZE
:.bash_history
:La oss eksperimentere og bruke noen forskjellige tokens:
.bash_history
Utdataene bruker dag, måned og klokkeslett.
Annonse
Hvis vi fjerner dagen og måneden, vil den bare vise klokkeslettet.
Eventuelle endringer du gjør i |_+_| bruke seg på hele historielisten. Dette er mulig fordi tiden for hver kommando er lagret som antall sekunder fra Unix-epoken . |_+_|direktivet spesifiserer ganske enkelt formatet som brukes til å gjengi det antallet sekunder til en menneskelig lesbar stil, for eksempel:
histappend
Vår produksjon er nå mer håndterlig.
Du kan også bruke |_+_| kommando til revisjon. Noen ganger gjennomgang kommandoer du har brukt tidligere kan hjelpe deg med å identifisere hva som kan ha forårsaket et problem.
Akkurat som du kan i livet, på Linux, kan du bruke |_+_| befaling om å gjenoppleve de gode tidene og lære av de dårlige.
I SLEKT: 37 Viktige Linux-kommandoer du bør kjenne til
I SLEKT: Beste Linux bærbare datamaskiner for utviklere og entusiaster
LES NESTEDave McKay brukte først datamaskiner da stanset papirtape var på moten, og han har programmert siden. Etter over 30 år i IT-bransjen er han nå teknologijournalist på heltid. I løpet av sin karriere har han jobbet som frilansprogrammerer, leder for et internasjonalt programvareutviklingsteam, prosjektleder for IT-tjenester og sist som databeskyttelsesansvarlig. Hans forfatterskap har blitt publisert av howtogeek.com, cloudsavvyit.com, itenterpriser.com og opensource.com. Dave er en Linux-evangelist og forkjemper for åpen kildekode.
Les hele bio