Android

Historiekommando i Linux (bash history)

Linux Commands for Beginners 15 - Bash History

Linux Commands for Beginners 15 - Bash History

Innholdsfortegnelse:

Anonim

, vil vi snakke om history , som lar deg se en liste over tidligere utførte kommandoer, søke gjennom listen og manipulere historiefilen.

Bruke history og historieutvidelsene

history er et skall som er innebygd, og oppførselen kan avvike noe fra skall til skall. Vi vil dekke Bash-innebygde versjonen av history .

I sin enkleste form viser history kommandoen hele historielisten med linjenumre når den påberopes uten alternativ eller argument.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Å skrive !n kjører den n-th-kommandoen fra historielisten, og !-n kommandoen linjer tilbake. I følgende eksempel utfører vi kommandoen på linje 467 :

!467

En annen måte å utføre en kommando er å bruke !word Utvidelse av !word . word refererer til den siste kommandoen som begynner med 'word'.

Vanligvis viser history mange linjer med utdata som ikke passer på skjermen. Hvis du vil se utdataene en side om gangen, kan du rør den til et personsøkerprogram som more eller less kommando:

history | less

For å vise de siste n linjene, pass nummeret som et argument til kommandoen. For å vise bare de fem siste linjene fra historielisten, skriver du:

history -5

Bruk piltastene up og down å navigere i oppføringene i listen. Når kommandoen du har søkt etter, vises, trykk Enter å utføre den.

Type !! for å utføre forrige kommando:

!!

Dette er spesielt nyttig når du glemmer å legge en kommando med sudo , og i stedet for å skrive inn kommandoen på nytt kan du skrive:

sudo !!

!-1 er det samme som !! og utfører den siste kommandoen fra historielisten, ! !-2 sekunder til sist, og så videre.

^word1^word2^ utvidelse lar deg kjøre den siste kommandoen og erstatte "word1" med "word2". Hvis du tilfeldigvis skrev sduo command stedet for sudo command kan du gjenta kommandoen ved å bruke riktig ord med:

^sduo^sudo^

Bruk grep kommandoen for å filtrere utdataene. For å se alle kommandoer inkludert "nano" vil du for eksempel kjøre:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Hvis du vil kjøre nano setup.py kommandoen på nytt, skriver du bare:

!356

En annen måte å søke gjennom kommandohistorikken er ved å trykke på Ctrl-R . Spørsmålet endres til følgende, og du kan begynne å søke etter en tidligere utført kommando.

(reverse-i-search)`':

Skallet vil vise en matchende linje. Trykk Ctrl-R igjen for å gå til neste matchede forslag.

Se i Bash-manualen for mer informasjon om History Expansion, modifikatorer og betegnere.

Lagre historielisten

Når du starter en ny økt, leser Bash som standard historielisten fra .bash_history filen. Listen over kommandoer som utføres i den nåværende økten, blir lagret i minnet og lagret i filen når økten er lukket.

Alternativet -a lar deg lagre gjeldende .bash_history i .bash_history filen:

history -a

Alternativet -w skriver den komplette historielisten til historiefilen.

history -w

Rydding av historie

history lar deg fjerne den komplette historielisten eller fjerne bestemte deler.

For å fjerne historielisten bruker du alternativet -c :

history -c

Hvis du vil slette en bestemt linje eller linjer mellom en start- og sluttposisjon fra historielisten, bruker du alternativet -d .

For å fjerne linjene mellom 365 og 375 (inkludert linjene), skriver du for eksempel:

history -d 365 375

Når et negativt heltall brukes, telles linjene tilbake fra slutten av historielisten.

Kommandoene over tømmer historielisten, som er lagret i minnet, men fjerner ikke oppføringer fra .bash_history filen på disken. For å tømme filen, må du skrive historielisten til filen:

history -c history -w

Endre historieoppførsel

Oppførselen til Bash-historien kan defineres ved bruk av flere forskjellige miljøvariabler. Når du endrer historienes oppførsel, angir du variablene i ~/.bashrc eller en hvilken som helst annen konfigurasjonsfil som lastes inn når brukeren logger seg på.

Som standard holder Bash 500 linjer i kommandologgen. HISTSIZE variabelen lar deg endre denne verdien. For å sette den på 10000 legger du til følgende linje i .bashrc filen:

HISTSIZE=10000

HISTCONTROL variabelen godtar en HISTCONTROL liste over verdier som definerer hvordan kommandoene lagres i historielisten:

  • ignorespace - kommandoer som begynner med mellomrom, lagres ikke i historielisten. ignoredups - dupliserte kommandoer lagres ikke. ignoreboth - er en ignoreboth , inkludert både ignorespace og ignoredups .

HISTCONTROL=ignoreboth

Når variabelen HISTTIMEFORMAT er satt, avhenger Bash en tidsstempel for utførelse for kommandoen på hver linje.

Hvis du for eksempel angir:

HISTTIMEFORMAT="%F %T: "

Historikken vises i følgende format:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Konklusjon

history viser en liste over tidligere utførte kommandoer. Du kan for eksempel bruke historikken til å vise en lang kommando du har brukt før, som du ikke kan huske.

historie terminal